Advertisement
Guest User

eltek-distributed-mib.inc.php

a guest
Nov 5th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.74 KB | None | 0 0
  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. // enterprises.eltek.eltekDistributedPlantV7.acDistribution.acVoltage1.0 = INTEGER: 227
  15. // enterprises.eltek.eltekDistributedPlantV7.acDistribution.acVoltage2.0 = INTEGER: 227
  16. // enterprises.eltek.eltekDistributedPlantV7.acDistribution.acVoltage3.0 = INTEGER: 0
  17. // .1.3.6.1.4.1.12148.9.6.1.0 = 235
  18. // .1.3.6.1.4.1.12148.9.6.2.0 = 235
  19. // .1.3.6.1.4.1.12148.9.6.3.0 = 237
  20.  
  21. $list[] = array('oid' => '.1.3.6.1.4.1.12148.9.6.1.0', 'descr' => 'AC Voltage 1', 'index' => '1', 'type' => 'acVoltage');
  22. $list[] = array('oid' => '.1.3.6.1.4.1.12148.9.6.2.0', 'descr' => 'AC Voltage 2', 'index' => '2', 'type' => 'acVoltage');
  23. $list[] = array('oid' => '.1.3.6.1.4.1.12148.9.6.3.0', 'descr' => 'AC Voltage 3', 'index' => '3', 'type' => 'acVoltage');
  24.  
  25. foreach ($list as $entry)
  26. {
  27.  
  28.   $value = snmp_get_oid($device, $entry['oid'], 'ELTEK-DISTRIBUTED-MIB');
  29.  
  30.   if (is_numeric($value))
  31.   {
  32.     discover_sensor('voltage', $device, $entry['oid'], $entry['index'], 'eltek-distributed-mib_acVoltage', $entry['descr'], 1, $value);
  33.   }
  34.  
  35. }
  36.  
  37. //    [rectifierStatusID] => 2
  38. //    [rectifierStatusStatus] => normal
  39. //    [rectifierStatusOutputCurrent] => 42
  40. //    [rectifierStatusOutputVoltage] => 5430
  41. //    [rectifierStatusTemp] => 32
  42. //    [rectifierStatusType] => FLATPACK2 48/2000 HE
  43. //    [rectifierStatusSKU] => 241115.105
  44. //    [rectifierStatusSerialNo] => 1051711xxxx
  45. //    [rectifierStatusRevisionLevel] => 2.1
  46.  
  47. //.1.3.6.1.4.1.12148.9.5.5.2.1.1.1 = 2
  48. //.1.3.6.1.4.1.12148.9.5.5.2.1.2.1 = normal
  49. //.1.3.6.1.4.1.12148.9.5.5.2.1.3.1 = 42
  50. //.1.3.6.1.4.1.12148.9.5.5.2.1.4.1 = 5429
  51. //.1.3.6.1.4.1.12148.9.5.5.2.1.5.1 = 32
  52. //.1.3.6.1.4.1.12148.9.5.5.2.1.6.1 = FLATPACK2 48/2000 HE
  53. //.1.3.6.1.4.1.12148.9.5.5.2.1.7.1 = 241115.105
  54. //.1.3.6.1.4.1.12148.9.5.5.2.1.8.1 = 1051711xxxx
  55. //.1.3.6.1.4.1.12148.9.5.5.2.1.9.1 = 2.1
  56.  
  57. $oids = snmpwalk_cache_oid($device, 'rectifierStatusTable', array(), 'ELTEK-DISTRIBUTED-MIB');
  58. foreach ($oids as $index => $entry)
  59. {
  60.   if ($entry['rectifierStatusStatus'] != 'notPresent')
  61.   {
  62.     $descr = 'Rectifier '.$entry['rectifierStatusID']. ' ('.$entry['rectifierStatusType'].')';
  63.     discover_sensor('voltage', $device, '.1.3.6.1.4.1.12148.9.5.5.2.1.4.'.$index, $index, 'eltek-distributed-mib_rectifierStatusOutputVoltage', $descr, 0.01, $entry['rectifierStatusOutputVoltage']);
  64.     discover_sensor('current', $device, '.1.3.6.1.4.1.12148.9.5.5.2.1.3.'.$index, $index, 'eltek-distributed-mib_rectifierStatusOutputCurrent', $descr, 0.1, $entry['rectifierStatusOutputCurrent']);
  65.     discover_sensor('temperature', $device, '.1.3.6.1.4.1.12148.9.5.5.2.1.5.'.$index, $index, 'eltek-distributed-mib_rectifierStatusTemp', $descr, 1, $entry['rectifierStatusTemp']);
  66.  
  67.     discover_status($device, '.1.3.6.1.4.1.12148.9.5.5.2.1.2.'.$index, 'rectifierStatusStatus.'.$index, 'eltek-distributed-mib_rectifierStatusStatus', $descr, $entry['rectifierStatusStatus']);
  68.   }
  69. }
  70.  
  71. // Note that the units measured may be in Amperes or in Deciamperes depending on global system settings,
  72. // but snmp output not have attribute for detect scale
  73.  
  74. // ELTEK-DISTRIBUTED-MIB::batteryCurrent.0 = INTEGER: 1 Amperes or DeciAmperes
  75. // ELTEK-DISTRIBUTED-MIB::batteryChargeCurrentLimitValue.0 = INTEGER: 20 Amperes or DeciAmperes
  76. // or
  77. // ELTEK-DISTRIBUTED-MIB::batteryCurrent.0 = INTEGER: 5 Amperes or DeciAmperes
  78. // ELTEK-DISTRIBUTED-MIB::batteryChargeCurrentLimitValue.0 = INTEGER: 350 Amperes or DeciAmperes
  79.  
  80. $limit = snmp_get_oid($device, 'batteryChargeCurrentLimitValue.0', 'ELTEK-DISTRIBUTED-MIB');
  81. $value = snmp_get_oid($device, 'batteryCurrent.0',                 'ELTEK-DISTRIBUTED-MIB');
  82.  
  83. $oid      = '.1.3.6.1.4.1.12148.9.3.3.0';
  84. $oid_name = 'batteryCurrent';
  85. $descr    = 'Battery Current';
  86. if ($limit > 100)
  87. {
  88.   // Hack for detect scale, not sure if always correct
  89.   $scale = 0.1;
  90.   $limit *= $scale;
  91. } else {
  92.   $scale = 1;
  93. }
  94.  
  95. $options = ['limit_high' => $limit];
  96.  
  97. discover_sensor_ng($device, 'current', $mib, $oid_name, $oid, '0', NULL, $descr, $scale, $value, $options);
  98.  
  99. $rectCurrent = snmp_get_oid($device, '.1.3.6.1.4.1.12148.9.5.3.0',                 'ELTEK-DISTRIBUTED-MIB');
  100. discover_sensor_ng($device,'current', $mib, 'rectifierTotalCurrent', '.1.3.6.1.4.1.12148.9.5.3.0', 0, NULL, 'Rectifier Total Current', 1, $rectCurrent, []);
  101.  
  102. $rectUtilOptions = ['sensor_unit' => '%'];
  103. $rectUtil = snmp_get_oid($device, '.1.3.6.1.4.1.12148.9.5.4.0',                 'ELTEK-DISTRIBUTED-MIB');
  104. discover_sensor_ng($device,'load', $mib, 'rectifierUtilization', '.1.3.6.1.4.1.12148.9.5.4.0', 0, NULL, 'Rectifier Utilization', 1, $rectUtil, $rectUtilOptions);
  105.  
  106. // EOF
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement