diff --git a/includes/snmp.inc.php b/includes/snmp.inc.php index 4592d0fb49..a7d15ee6c8 100644 --- a/includes/snmp.inc.php +++ b/includes/snmp.inc.php @@ -293,6 +293,10 @@ function snmp_get($device, $oid, $options = null, $mib = null, $mibdir = null) $measure->manager()->recordSnmp($measure->end()); if (preg_match('/(No Such Instance|No Such Object|No more variables left|Authentication failure)/i', $data)) { return false; + } elseif (preg_match('/Wrong Type(.*)should be/', $data)) { + $data = preg_replace('/Wrong Type \(should be .*\): /', '', $data); + + return $data; } elseif ($data || $data === '0') { return $data; } else { diff --git a/tests/data/huaweiups_ups2000.json b/tests/data/huaweiups_ups2000.json index 46ae253413..ce6773a8cb 100644 --- a/tests/data/huaweiups_ups2000.json +++ b/tests/data/huaweiups_ups2000.json @@ -23,6 +23,31 @@ "sensors": { "discovery": { "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "charge", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.2.1.33.1.2.4.0", + "sensor_index": "500", + "sensor_type": "rfc1628", + "sensor_descr": "Battery charge remaining", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 100, + "sensor_limit": 101, + "sensor_limit_warn": null, + "sensor_limit_low": 15, + "sensor_limit_low_warn": 50, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, { "sensor_deleted": 0, "sensor_class": "current", @@ -98,6 +123,56 @@ "rrd_type": "GAUGE", "state_name": null }, + { + "sensor_deleted": 0, + "sensor_class": "frequency", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.2.1.33.1.4.2.0", + "sensor_index": "4.2.0", + "sensor_type": "rfc1628", + "sensor_descr": "Output", + "group": null, + "sensor_divisor": 100, + "sensor_multiplier": 1, + "sensor_current": 5, + "sensor_limit": 5.25, + "sensor_limit_warn": null, + "sensor_limit_low": 4.75, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "frequency", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.2.1.33.1.5.1.0", + "sensor_index": "5.1.0", + "sensor_type": "rfc1628", + "sensor_descr": "Bypass", + "group": null, + "sensor_divisor": 100, + "sensor_multiplier": 1, + "sensor_current": 5, + "sensor_limit": 5.25, + "sensor_limit_warn": null, + "sensor_limit_low": 4.75, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, { "sensor_deleted": 0, "sensor_class": "load", @@ -198,6 +273,31 @@ "rrd_type": "GAUGE", "state_name": null }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.2.1.33.1.2.1.0", + "sensor_index": "0", + "sensor_type": "upsBatteryStatusState", + "sensor_descr": "Battery Status", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 2, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": "0", + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": "upsBatteryStatusState" + }, { "sensor_deleted": 0, "sensor_class": "state", @@ -273,6 +373,31 @@ "rrd_type": "GAUGE", "state_name": null }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.2.1.33.1.2.5.0", + "sensor_index": "1.2.5.0", + "sensor_type": "rfc1628", + "sensor_descr": "Battery", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 270.7, + "sensor_limit": 311.305, + "sensor_limit_warn": null, + "sensor_limit_low": 230.095, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, { "sensor_deleted": 0, "sensor_class": "voltage", @@ -325,6 +450,34 @@ } ], "state_indexes": [ + { + "state_name": "upsBatteryStatusState", + "state_descr": "Unknown", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 3 + }, + { + "state_name": "upsBatteryStatusState", + "state_descr": "Normal", + "state_draw_graph": 0, + "state_value": 2, + "state_generic_value": 0 + }, + { + "state_name": "upsBatteryStatusState", + "state_descr": "Low", + "state_draw_graph": 0, + "state_value": 3, + "state_generic_value": 2 + }, + { + "state_name": "upsBatteryStatusState", + "state_descr": "Depleted", + "state_draw_graph": 0, + "state_value": 4, + "state_generic_value": 2 + }, { "state_name": "upsOutputSourceState", "state_descr": "Other",