1<?php
2/*
3 * LibreNMS
4 *
5 * Copyright (c) 2015 Steve Calv�rio <https://github.com/Calvario/>
6 *
7 * This program is free software: you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.  Please see LICENSE.txt at the top level of
11 * the source code distribution for details.
12 */
13
14echo 'DSM UPS Voltage';
15
16// UPS Device Manufacturer, example return : SNMPv2-SMI::enterprises.6574.4.1.2.0 = STRING: "American Power Conversion"
17$ups_device_manufacturer_oid = '.1.3.6.1.4.1.6574.4.1.2.0';
18$ups_device_manufacturer = str_replace('"', '', snmp_get($device, $ups_device_manufacturer_oid, '-Oqv'));
19// UPS Device Model, example return : SNMPv2-SMI::enterprises.6574.4.1.1.0 = STRING: "Back-UPS RS 900G"
20$ups_device_model_oid = '.1.3.6.1.4.1.6574.4.1.1.0';
21$ups_device_model = str_replace('"', '', snmp_get($device, $ups_device_model_oid, '-Oqv'));
22
23// UPS Input Voltage Value, example return : SNMPv2-SMI::enterprises.6574.4.4.1.1.0 = Opaque: Float: 234.000000
24$ups_input_voltage_oid = '.1.3.6.1.4.1.6574.4.4.1.1.0';
25$ups_input_voltage = snmp_get($device, $ups_input_voltage_oid, '-Oqv');
26if (is_numeric($ups_input_voltage)) {
27    discover_sensor($valid['sensor'], 'voltage', $device, $ups_input_voltage_oid, 'UPSInputVoltageValue', $ups_device_manufacturer . ' ' . $ups_device_model, 'UPS Input Voltage Value', '1', '1', null, null, null, null, $ups_input_voltage);
28}
29
30// UPS Input Voltage Nominal, example return : SNMPv2-SMI::enterprises.6574.4.4.1.4.0 = Opaque: Float: 230.000000
31$ups_input_voltage_nominal_oid = '.1.3.6.1.4.1.6574.4.4.1.4.0';
32$ups_input_voltage_nominal = snmp_get($device, $ups_input_voltage_nominal_oid, '-Oqv');
33if (is_numeric($ups_input_voltage_nominal)) {
34    discover_sensor($valid['sensor'], 'voltage', $device, $ups_input_voltage_nominal_oid, 'UPSInputVoltageNominal', $ups_device_manufacturer . ' ' . $ups_device_model, 'UPS Input Voltage Nominal', '1', '1', null, null, null, null, $ups_input_voltage_nominal);
35}
36
37// UPS Battery Voltage Value, example return : SNMPv2-SMI::enterprises.6574.4.3.2.1.0 = Opaque: Float: 27.000000
38$ups_battery_voltage_oid = '.1.3.6.1.4.1.6574.4.3.2.1.0';
39$ups_battery_voltage = snmp_get($device, $ups_battery_voltage_oid, '-Oqv');
40if (is_numeric($ups_battery_voltage)) {
41    discover_sensor($valid['sensor'], 'voltage', $device, $ups_battery_voltage_oid, 'UPSBatteryVoltage', $ups_device_manufacturer . ' ' . $ups_device_model, 'UPS Battery Voltage', '1', '1', null, null, null, null, $ups_battery_voltage);
42}
43
44// UPS Battery Voltage Nominal, example return : SNMPv2-SMI::enterprises.6574.4.3.2.2.0 = Opaque: Float: 24.000000
45$ups_battery_voltage_nominal_oid = '.1.3.6.1.4.1.6574.4.3.2.2.0';
46$ups_battery_voltage_nominal = snmp_get($device, $ups_battery_voltage_nominal_oid, '-Oqv');
47if (is_numeric($ups_battery_voltage_nominal)) {
48    discover_sensor($valid['sensor'], 'voltage', $device, $ups_battery_voltage_nominal_oid, 'SystemStatus', $ups_device_manufacturer . ' ' . $ups_device_model, 'UPS Battery Voltage Nominal', '1', '1', null, null, null, null, $ups_battery_voltage_nominal);
49}
50