From 664ca1fee3bbc5037b5429c9699242243626e317 Mon Sep 17 00:00:00 2001 From: Josh Baird Date: Fri, 10 Jan 2020 10:52:26 -0500 Subject: [PATCH] Added state sensor for Packetflux Sitemonitor Switch Input (#10994) * Initial stab at switch input state sensor * Fix indentions * Fix indentions * Index updates * More useless changes. * And it finally works. * Open should be a WARNING state. * Update email * Add line * One empty line, not three. * This is getting ridic. * Add test data --- .../sensors/state/sitemonitor.inc.php | 55 +++ tests/data/sitemonitor.json | 466 ++++++++++++++++++ tests/snmpsim/sitemonitor.snmprec | 12 + 3 files changed, 533 insertions(+) create mode 100644 includes/discovery/sensors/state/sitemonitor.inc.php create mode 100644 tests/data/sitemonitor.json diff --git a/includes/discovery/sensors/state/sitemonitor.inc.php b/includes/discovery/sensors/state/sitemonitor.inc.php new file mode 100644 index 0000000000..015af0e7eb --- /dev/null +++ b/includes/discovery/sensors/state/sitemonitor.inc.php @@ -0,0 +1,55 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2020 Josh Baird + * @author Josh Baird + */ + +$switch = snmp_get($device, ".1.3.6.1.4.1.32050.2.1.26.5.3", "-Ovqe"); + +if ($switch) { + //Create State Index + $state_name = 'switchInput'; + $states = [ + ['value' => 0, 'generic' => 1, 'graph' => 1, 'descr' => 'Open'], + ['value' => 1, 'generic' => 0, 'graph' => 1, 'descr' => 'Closed'], + ]; + create_state_index($state_name, $states); + + $sensor_index = 3; + discover_sensor( + $valid['sensor'], + 'state', + $device, + '.1.3.6.1.4.1.32050.2.1.26.5.3', + $sensor_index, + $state_name, + 'Switch Input', + 1, + 1, + null, + null, + null, + null + ); + + create_sensor_to_state_index($device, $state_name, $sensor_index); +} diff --git a/tests/data/sitemonitor.json b/tests/data/sitemonitor.json new file mode 100644 index 0000000000..5ebcef91df --- /dev/null +++ b/tests/data/sitemonitor.json @@ -0,0 +1,466 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.32050.1.1", + "sysDescr": "PacketFlux SiteMonitor Base II", + "sysContact": null, + "version": null, + "hardware": null, + "features": null, + "os": "sitemonitor", + "type": "appliance", + "serial": null, + "icon": "packetflux.png", + "location": null + } + ] + }, + "poller": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.32050.1.1", + "sysDescr": "PacketFlux SiteMonitor Base II", + "sysContact": "", + "version": null, + "hardware": null, + "features": null, + "os": "sitemonitor", + "type": "appliance", + "serial": null, + "icon": "packetflux.png", + "location": "" + } + ] + } + }, + "sensors": { + "discovery": { + "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.4", + "sensor_index": "0", + "sensor_type": "sitemonitor", + "sensor_descr": "Current", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 12.7, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.26.5.3", + "sensor_index": "3", + "sensor_type": "switchInput", + "sensor_descr": "Switch Input", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": null, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "switchInput" + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.0", + "sensor_index": "0", + "sensor_type": "sitemonitor", + "sensor_descr": "Temperature", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 31.6, + "sensor_limit": 51.6, + "sensor_limit_warn": null, + "sensor_limit_low": 21.6, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.5", + "sensor_index": "5", + "sensor_type": "sitemonitor", + "sensor_descr": "Relay on Above", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 100, + "sensor_limit": 120, + "sensor_limit_warn": null, + "sensor_limit_low": 90, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.6", + "sensor_index": "6", + "sensor_type": "sitemonitor", + "sensor_descr": "Relay on Below", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": -100, + "sensor_limit": -80, + "sensor_limit_warn": null, + "sensor_limit_low": -110, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.1", + "sensor_index": "1", + "sensor_type": "sitemonitor", + "sensor_descr": "Shunt Input", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": -2.8, + "sensor_limit": -2.38, + "sensor_limit_warn": null, + "sensor_limit_low": -3.22, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.2", + "sensor_index": "2", + "sensor_type": "sitemonitor", + "sensor_descr": "Power 1", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 46.9, + "sensor_limit": 53.935, + "sensor_limit_warn": null, + "sensor_limit_low": 39.865, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.3", + "sensor_index": "3", + "sensor_type": "sitemonitor", + "sensor_descr": "Power 2", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": 0, + "sensor_limit_warn": null, + "sensor_limit_low": 0, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + } + ], + "state_indexes": [ + { + "state_name": "switchInput", + "state_descr": "Open", + "state_draw_graph": 1, + "state_value": 0, + "state_generic_value": 1 + }, + { + "state_name": "switchInput", + "state_descr": "Closed", + "state_draw_graph": 1, + "state_value": 1, + "state_generic_value": 0 + } + ] + }, + "poller": { + "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.4", + "sensor_index": "0", + "sensor_type": "sitemonitor", + "sensor_descr": "Current", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 12.7, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.26.5.3", + "sensor_index": "3", + "sensor_type": "switchInput", + "sensor_descr": "Switch Input", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 1, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "switchInput" + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.0", + "sensor_index": "0", + "sensor_type": "sitemonitor", + "sensor_descr": "Temperature", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 31.6, + "sensor_limit": 51.6, + "sensor_limit_warn": null, + "sensor_limit_low": 21.6, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.5", + "sensor_index": "5", + "sensor_type": "sitemonitor", + "sensor_descr": "Relay on Above", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 100, + "sensor_limit": 120, + "sensor_limit_warn": null, + "sensor_limit_low": 90, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.6", + "sensor_index": "6", + "sensor_type": "sitemonitor", + "sensor_descr": "Relay on Below", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": -100, + "sensor_limit": -80, + "sensor_limit_warn": null, + "sensor_limit_low": -110, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.1", + "sensor_index": "1", + "sensor_type": "sitemonitor", + "sensor_descr": "Shunt Input", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": -2.8, + "sensor_limit": -2.38, + "sensor_limit_warn": null, + "sensor_limit_low": -3.22, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.2", + "sensor_index": "2", + "sensor_type": "sitemonitor", + "sensor_descr": "Power 1", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 46.9, + "sensor_limit": 53.935, + "sensor_limit_warn": null, + "sensor_limit_low": 39.865, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.32050.2.1.27.5.3", + "sensor_index": "3", + "sensor_type": "sitemonitor", + "sensor_descr": "Power 2", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": 0, + "sensor_limit_warn": null, + "sensor_limit_low": 0, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + } + ], + "state_indexes": [ + { + "state_name": "switchInput", + "state_descr": "Open", + "state_draw_graph": 1, + "state_value": 0, + "state_generic_value": 1 + }, + { + "state_name": "switchInput", + "state_descr": "Closed", + "state_draw_graph": 1, + "state_value": 1, + "state_generic_value": 0 + } + ] + } + } +} diff --git a/tests/snmpsim/sitemonitor.snmprec b/tests/snmpsim/sitemonitor.snmprec index f95f1562b0..ade271ca9e 100644 --- a/tests/snmpsim/sitemonitor.snmprec +++ b/tests/snmpsim/sitemonitor.snmprec @@ -1,2 +1,14 @@ 1.3.6.1.2.1.1.1.0|4|PacketFlux SiteMonitor Base II 1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.32050.1.1 +1.3.6.1.2.1.1.3.0|67|251770296 +1.3.6.1.2.1.1.4.0|4| +1.3.6.1.2.1.1.5.0|4| +1.3.6.1.2.1.1.6.0|4| +1.3.6.1.4.1.32050.2.1.26.5.3|2|1 +1.3.6.1.4.1.32050.2.1.27.5.0|2|316 +1.3.6.1.4.1.32050.2.1.27.5.1|2|-28 +1.3.6.1.4.1.32050.2.1.27.5.2|2|469 +1.3.6.1.4.1.32050.2.1.27.5.3|2|0 +1.3.6.1.4.1.32050.2.1.27.5.4|2|127 +1.3.6.1.4.1.32050.2.1.27.5.5|2|1000 +1.3.6.1.4.1.32050.2.1.27.5.6|2|-1000