2, 'generic' => 0, 'graph' => 1, 'descr' => 'enabled'], ['value' => 3, 'generic' => 2, 'graph' => 1, 'descr' => 'disabled'], ]; create_state_index($state_name, $states); discover_sensor($valid['sensor'], 'state', $device, $oid . $codec, $codec, $state_name, $descr, 1, 1, null, null, null, null, $value, 'snmp', $codec); create_sensor_to_state_index($device, $state_name, $codec); } else { break; } } } if (! empty($pre_cache['ups_nut_sensors'])) { /* * All the possible states from https://networkupstools.org/docs/developer-guide.chunked/ar01s04.html#_status_data */ $sensors = [ ['state_name' => 'UPSOnLine', 'genericT' => 0, 'genericF' => 1, 'descr' => 'UPS on line'], ['state_name' => 'UPSOnBattery', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS on battery'], ['state_name' => 'UPSLowBattery', 'genericT' => 2, 'genericF' => 0, 'descr' => 'UPS low battery'], ['state_name' => 'UPSHighBattery', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS high battery'], ['state_name' => 'UPSBatteryReplace', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS the battery needs to be replaced'], ['state_name' => 'UPSBatteryCharging', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS the battery is charging'], ['state_name' => 'UPSBatteryDischarging', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS the battery is discharging'], ['state_name' => 'UPSUPSBypass', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS bypass circuit is active'], ['state_name' => 'UPSRuntimeCalibration', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS is currently performing runtime calibration'], ['state_name' => 'UPSOffline', 'genericT' => 2, 'genericF' => 0, 'descr' => 'UPS is offline and is not supplying power to the load'], ['state_name' => 'UPSUPSOverloaded', 'genericT' => 2, 'genericF' => 0, 'descr' => 'UPS is overloaded.'], ['state_name' => 'UPSUPSBuck', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS is trimming incoming voltage'], ['state_name' => 'UPSUPSBoost', 'genericT' => 1, 'genericF' => 0, 'descr' => 'UPS is boosting incoming voltage'], ['state_name' => 'UPSForcedShutdown', 'genericT' => 2, 'genericF' => 0, 'descr' => 'UPS forced shutdown'], ]; foreach ($sensors as $index => $sensor) { $sensor_oid = 9 + $index; $oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.7.117.112.115.45.110.117.116.' . strval($sensor_oid); $value = current($pre_cache['ups_nut_sensors']['ups-nut.' . $sensor_oid]); if (! empty($value) or $value == '0') { $state_name = $sensor['state_name']; $descr = $sensor['descr']; $states = [ ['value' => 0, 'generic' => $sensor['genericF'], 'graph' => 1, 'descr' => 'False'], ['value' => 1, 'generic' => $sensor['genericT'], 'graph' => 1, 'descr' => 'True'], ]; create_state_index($state_name, $states); //Discover Sensors discover_sensor($valid['sensor'], 'state', $device, $oid, $sensor_oid, $state_name, $descr, '1', '1', null, null, null, null, $value, 'snmp', $sensor_oid); //Create Sensor To State Index create_sensor_to_state_index($device, $state_name, $sensor_oid); } } }