From 3d4ad683ad202fd042afb7ab43d1fedaebd07085 Mon Sep 17 00:00:00 2001 From: Matt Peterson Date: Wed, 20 Oct 2021 18:48:51 -0700 Subject: [PATCH] OS support for West Mountain 4005i DC PDU (#12885) * remove ^M from DOS style file * Support for West Mountain 4005i DC PDU * update SVG to include width attributes * try adding reserveAspectRatio="xMinYMin meet" * remove width attribute * removed disabled modules per @Jellyfrog comment * rename per PR * add missing test JSON data * don't attempt to graph or detect uptime, as neither OID is supported * remove file extension * remove specific modules for discovery & polling, as this device isnt buggy enough for justify * Update westmountainradio.yaml * Update westmountainradio.yaml Co-authored-by: Tony Murray --- html/images/os/westmountainradio.svg | 1 + .../discovery/westmountainradio.yaml | 84 +++ includes/definitions/westmountainradio.yaml | 16 + mibs/westmountainradio/RMCU | 523 ++++++++++++++++++ .../westmountainradio_westmountainradio.json | 366 ++++++++++++ ...estmountainradio_westmountainradio.snmprec | 65 +++ 6 files changed, 1055 insertions(+) create mode 100644 html/images/os/westmountainradio.svg create mode 100644 includes/definitions/discovery/westmountainradio.yaml create mode 100644 includes/definitions/westmountainradio.yaml create mode 100644 mibs/westmountainradio/RMCU create mode 100644 tests/data/westmountainradio_westmountainradio.json create mode 100644 tests/snmpsim/westmountainradio_westmountainradio.snmprec diff --git a/html/images/os/westmountainradio.svg b/html/images/os/westmountainradio.svg new file mode 100644 index 0000000000..876d1d8889 --- /dev/null +++ b/html/images/os/westmountainradio.svg @@ -0,0 +1 @@ + diff --git a/includes/definitions/discovery/westmountainradio.yaml b/includes/definitions/discovery/westmountainradio.yaml new file mode 100644 index 0000000000..18bd5813d8 --- /dev/null +++ b/includes/definitions/discovery/westmountainradio.yaml @@ -0,0 +1,84 @@ +mib: RMCU +modules: + os: + hardware: RMCU::version.0 + hardware_regex: '/(?.*) FW Version/' + version: RMCU::version.0 + version_regex: '/FW Version (?.*)/' + sensors: + voltage: + options: + divisor: 1000 + data: + - + oid: RMCU::analog6val-int + num_oid: '.1.3.6.1.4.1.15117.1.4.6.{{ $index }}' + descr: "Input" + low_limit: '8' # exposed in web interface, not MIB + high_limit: '15.5' + current: + options: + divisor: 1000 + data: + - + oid: RMCU::analog1val-int + num_oid: '.1.3.6.1.4.1.15117.1.4.1.{{ $index }}' + index: 1 + descr: "Outlet 1" + - + oid: RMCU::analog2val-int + num_oid: '.1.3.6.1.4.1.15117.1.4.2.{{ $index }}' + index: 2 + descr: "Outlet 2" + - + oid: RMCU::analog3val-int + num_oid: '.1.3.6.1.4.1.15117.1.4.3.{{ $index }}' + index: 3 + descr: "Outlet 3" + - + oid: RMCU::analog4val-int + num_oid: '.1.3.6.1.4.1.15117.1.4.4.{{ $index }}' + index: 4 + descr: "Outlet 4" + - + oid: RMCU::analog5val-int + num_oid: '.1.3.6.1.4.1.15117.1.4.5.{{ $index }}' + index: 5 + descr: "Outlet 5" + state: + data: + - + oid: RMCU::digout1val + num_oid: '.1.3.6.1.4.1.15117.1.2.66.{{ $index }}' + descr: "Outlet 1 State" + states: + - { value: 0, generic: 3, graph: 0, descr: outletOff } + - { value: 1, generic: 0, graph: 0, descr: outletOn } + - + oid: RMCU::digout2val + num_oid: '.1.3.6.1.4.1.15117.1.2.68.{{ $index }}' + descr: "Outlet 2 State" + states: + - { value: 0, generic: 3, graph: 0, descr: outletOff } + - { value: 1, generic: 0, graph: 0, descr: outletOn } + - + oid: RMCU::digout3val + num_oid: '.1.3.6.1.4.1.15117.1.2.70.{{ $index }}' + descr: "Outlet 3 State" + states: + - { value: 0, generic: 3, graph: 0, descr: outletOff } + - { value: 1, generic: 0, graph: 0, descr: outletOn } + - + oid: RMCU::digout4val + num_oid: '.1.3.6.1.4.1.15117.1.2.72.{{ $index }}' + descr: "Outlet 4 State" + states: + - { value: 0, generic: 3, graph: 0, descr: outletOff } + - { value: 1, generic: 0, graph: 0, descr: outletOn } + - + oid: RMCU::digout5val + num_oid: '.1.3.6.1.4.1.15117.1.2.74.{{ $index }}' + descr: "Outlet 5 State" + states: + - { value: 0, generic: 3, graph: 0, descr: outletOff } + - { value: 1, generic: 0, graph: 0, descr: outletOn } diff --git a/includes/definitions/westmountainradio.yaml b/includes/definitions/westmountainradio.yaml new file mode 100644 index 0000000000..0b326008c1 --- /dev/null +++ b/includes/definitions/westmountainradio.yaml @@ -0,0 +1,16 @@ +os: westmountainradio +text: 'West Mountain RMCU' +type: power +mib_dir: westmountainradio +icon: westmountainradio +snmp_bulk: false +bad_snmpEngineTime: true +bad_hrSystemUptime: true +over: + - { graph: device_current, text: Current } + - { graph: device_voltage, text: Voltage } + - { graph: device_state, text: 'Power Status' } +discovery: + - + sysObjectID: + - .1.3.6.1.4.1.15117.1 diff --git a/mibs/westmountainradio/RMCU b/mibs/westmountainradio/RMCU new file mode 100644 index 0000000000..96ed893e5e --- /dev/null +++ b/mibs/westmountainradio/RMCU @@ -0,0 +1,523 @@ +-- MIB. Import this into your MIB Browser software. +-- This is for West Mountain Radio RIGrunner 4005i + +RMCU DEFINITIONS ::= BEGIN + +IMPORTS + --enterprises, IpAddress, Gauge, TimeTicks FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212 + TEXTUAL-CONVENTION FROM SNMPv2-TC + NOTIFICATION-TYPE, Gauge32, Integer32, enterprises, MODULE-IDENTITY FROM SNMPv2-SMI + TRAP-TYPE FROM RFC-1215; + +rr4005i MODULE-IDENTITY + LAST-UPDATED "201710111300Z" + ORGANIZATION "West Mountain Radio" + CONTACT-INFO "www.westmountainradio.com" + DESCRIPTION "West Mountain Radio RIGrunner 4005i" + REVISION "201710111300Z" + DESCRIPTION "Revision" + ::= { enterprises 15117 1 } + +wmr OBJECT IDENTIFIER ::= { enterprises 15117 } + +product OBJECT IDENTIFIER ::= { rr4005i 1 } +control OBJECT IDENTIFIER ::= { rr4005i 2 } +control-ints OBJECT IDENTIFIER ::= { rr4005i 4 } +traps OBJECT IDENTIFIER ::= { rr4005i 3 } + +-- ON-OFF ::= INTEGER { ON(1), OFF(0) } + +FixedDiv1000 ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d-3" + STATUS current + DESCRIPTION "Fixed point, thousandths" + SYNTAX Integer32 + +name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unit name" + ::= { product 1 } + + +version OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software and hardware version" + ::= { product 2 } + +build-date OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Date of software was built" + ::= { product 3 } + + + +analog1name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of analog input #1" + ::= { control 1 } + +analog1val OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #1" + ::= { control 2 } + +analog2name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of analog input #2" + ::= { control 3 } + +analog2val OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #2" + ::= { control 4 } + +analog3name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of analog input #3" + ::= { control 5 } + +analog3val OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #3" + ::= { control 6 } + +analog4name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of analog input #4" + ::= { control 7 } + +analog4val OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #4" + ::= { control 8 } + +analog5name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of analog input #5" + ::= { control 9 } + +analog5val OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #5" + ::= { control 10 } + +analog6name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of analog input #6" + ::= { control 11 } + +analog6val OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #6" + ::= { control 12 } + + + + + +digout1name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of digital output #1" + ::= { control 65 } + +digout1val OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Value of digital output #1" + ::= { control 66 } + +digout2name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of digital output #2" + ::= { control 67 } + +digout2val OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Value of digital output #2" + ::= { control 68 } + +digout3name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of digital output #3" + ::= { control 69 } + +digout3val OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Value of digital output #3" + ::= { control 70 } + +digout4name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of digital output #4" + ::= { control 71 } + +digout4val OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Value of digital output #4" + ::= { control 72 } + +digout5name OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of digital output #5" + ::= { control 73 } + +digout5val OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Value of digital output #5" + ::= { control 74 } + + + + + + + + + + +analog1val-int OBJECT-TYPE + SYNTAX FixedDiv1000 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #1" + ::= { control-ints 1 } + +analog2val-int OBJECT-TYPE + SYNTAX FixedDiv1000 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #2" + ::= { control-ints 2 } + +analog3val-int OBJECT-TYPE + SYNTAX FixedDiv1000 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #3" + ::= { control-ints 3 } + +analog4val-int OBJECT-TYPE + SYNTAX FixedDiv1000 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #4" + ::= { control-ints 4 } + +analog5val-int OBJECT-TYPE + SYNTAX FixedDiv1000 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #5" + ::= { control-ints 5 } + +analog6val-int OBJECT-TYPE + SYNTAX FixedDiv1000 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Value of analog input #6" + ::= { control-ints 6 } + + + + + + + + +trap-auth NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Trap caused by authorization failure" + ::= {traps 1} + +trap-analog-over1 NOTIFICATION-TYPE + OBJECTS {name, analog1val} + STATUS current + DESCRIPTION + "Trap caused by analog input #1 being over threshold" + ::= {traps 2} + +trap-analog-over2 NOTIFICATION-TYPE + OBJECTS {name, analog2val} + STATUS current + DESCRIPTION + "Trap caused by analog input #2 being over threshold" + ::= {traps 3} + +trap-analog-over3 NOTIFICATION-TYPE + OBJECTS {name, analog3val} + STATUS current + DESCRIPTION + "Trap caused by analog input #3 being over threshold" + ::= {traps 4} + +trap-analog-over4 NOTIFICATION-TYPE + OBJECTS {name, analog4val} + STATUS current + DESCRIPTION + "Trap caused by analog input #4 being over threshold" + ::= {traps 5} + +trap-analog-over5 NOTIFICATION-TYPE + OBJECTS {name, analog5val} + STATUS current + DESCRIPTION + "Trap caused by analog input #5 being over threshold" + ::= {traps 6} + +trap-analog-over6 NOTIFICATION-TYPE + OBJECTS {name, analog6val} + STATUS current + DESCRIPTION + "Trap caused by analog input #6 being over threshold" + ::= {traps 7} + + + + + + +trap-analog-under6 NOTIFICATION-TYPE + OBJECTS {name, analog6val} + STATUS current + DESCRIPTION + "Trap caused by analog input #6 being under threshold" + ::= {traps 23} + + +trap-poweron NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by power-on" + ::= {traps 34} + + + + +trap-test NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by user test" + ::= {traps 52} + + + + + +trap-digout-inactive1 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #1 going inactive" + ::= {traps 72} + +trap-digout-inactive2 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #2 going inactive" + ::= {traps 73} + +trap-digout-inactive3 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #3 going inactive" + ::= {traps 74} + +trap-digout-inactive4 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #4 going inactive" + ::= {traps 75} + +trap-digout-inactive5 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #5 going inactive" + ::= {traps 76} + + + +trap-digout-active1 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #1 going active" + ::= {traps 88} + +trap-digout-active2 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #2 going active" + ::= {traps 89} + +trap-digout-active3 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #3 going active" + ::= {traps 90} + +trap-digout-active4 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #4 going active" + ::= {traps 91} + +trap-digout-active5 NOTIFICATION-TYPE + OBJECTS {name} + STATUS current + DESCRIPTION + "Trap caused by digitout output #5 going active" + ::= {traps 92} + + + + + + +trap-analog-urecover6 NOTIFICATION-TYPE + OBJECTS {name, analog6val} + STATUS current + DESCRIPTION + "Trap caused by analog input #6 recovering from under alarm" + ::= {traps 109} + + +trap-analog-orecover1 NOTIFICATION-TYPE + OBJECTS {name, analog1val} + STATUS current + DESCRIPTION + "Trap caused by analog input #1 recovering from over alarm" + ::= {traps 120} + +trap-analog-orecover2 NOTIFICATION-TYPE + OBJECTS {name, analog2val} + STATUS current + DESCRIPTION + "Trap caused by analog input #2 recovering from over alarm" + ::= {traps 121} + +trap-analog-orecover3 NOTIFICATION-TYPE + OBJECTS {name, analog3val} + STATUS current + DESCRIPTION + "Trap caused by analog input #3 recovering from over alarm" + ::= {traps 122} + +trap-analog-orecover4 NOTIFICATION-TYPE + OBJECTS {name, analog4val} + STATUS current + DESCRIPTION + "Trap caused by analog input #4 recovering from over alarm" + ::= {traps 123} + +trap-analog-orecover5 NOTIFICATION-TYPE + OBJECTS {name, analog5val} + STATUS current + DESCRIPTION + "Trap caused by analog input #5 recovering from over alarm" + ::= {traps 124} + +trap-analog-orecover6 NOTIFICATION-TYPE + OBJECTS {name, analog6val} + STATUS current + DESCRIPTION + "Trap caused by analog input #6 recovering from over alarm" + ::= {traps 125} + + + + + + +END diff --git a/tests/data/westmountainradio_westmountainradio.json b/tests/data/westmountainradio_westmountainradio.json new file mode 100644 index 0000000000..6f8a6c7563 --- /dev/null +++ b/tests/data/westmountainradio_westmountainradio.json @@ -0,0 +1,366 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.15117.1", + "sysDescr": "West Mountain Radio RIGrunner 4005i", + "sysContact": "", + "version": "4.08", + "hardware": "RIGRunner 4005i", + "features": null, + "os": "westmountainradio", + "type": "power", + "serial": null, + "icon": "westmountainradio.svg", + "location": "" + } + ] + }, + "poller": "matches discovery" + }, + "sensors": { + "discovery": { + "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.4.1.0", + "sensor_index": "1", + "sensor_type": "westmountainradio", + "sensor_descr": "Outlet 1", + "group": null, + "sensor_divisor": 1000, + "sensor_multiplier": 1, + "sensor_current": 0.22, + "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": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.4.2.0", + "sensor_index": "2", + "sensor_type": "westmountainradio", + "sensor_descr": "Outlet 2", + "group": null, + "sensor_divisor": 1000, + "sensor_multiplier": 1, + "sensor_current": 0.681, + "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": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.4.3.0", + "sensor_index": "3", + "sensor_type": "westmountainradio", + "sensor_descr": "Outlet 3", + "group": null, + "sensor_divisor": 1000, + "sensor_multiplier": 1, + "sensor_current": 0, + "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": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.4.4.0", + "sensor_index": "4", + "sensor_type": "westmountainradio", + "sensor_descr": "Outlet 4", + "group": null, + "sensor_divisor": 1000, + "sensor_multiplier": 1, + "sensor_current": 0, + "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": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.4.5.0", + "sensor_index": "5", + "sensor_type": "westmountainradio", + "sensor_descr": "Outlet 5", + "group": null, + "sensor_divisor": 1000, + "sensor_multiplier": 1, + "sensor_current": 0, + "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.15117.1.2.66.0", + "sensor_index": "0", + "sensor_type": "RMCU::digout1val", + "sensor_descr": "Outlet 1 State", + "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": "RMCU::digout1val" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.2.68.0", + "sensor_index": "0", + "sensor_type": "RMCU::digout2val", + "sensor_descr": "Outlet 2 State", + "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": "RMCU::digout2val" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.2.70.0", + "sensor_index": "0", + "sensor_type": "RMCU::digout3val", + "sensor_descr": "Outlet 3 State", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "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": "RMCU::digout3val" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.2.72.0", + "sensor_index": "0", + "sensor_type": "RMCU::digout4val", + "sensor_descr": "Outlet 4 State", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "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": "RMCU::digout4val" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.2.74.0", + "sensor_index": "0", + "sensor_type": "RMCU::digout5val", + "sensor_descr": "Outlet 5 State", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "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": "RMCU::digout5val" + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.15117.1.4.6.0", + "sensor_index": "0", + "sensor_type": "westmountainradio", + "sensor_descr": "Input", + "group": null, + "sensor_divisor": 1000, + "sensor_multiplier": 1, + "sensor_current": 12.033, + "sensor_limit": 15.5, + "sensor_limit_warn": null, + "sensor_limit_low": 8, + "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": "RMCU::digout1val", + "state_descr": "outletOff", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 3 + }, + { + "state_name": "RMCU::digout1val", + "state_descr": "outletOn", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "RMCU::digout2val", + "state_descr": "outletOff", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 3 + }, + { + "state_name": "RMCU::digout2val", + "state_descr": "outletOn", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "RMCU::digout3val", + "state_descr": "outletOff", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 3 + }, + { + "state_name": "RMCU::digout3val", + "state_descr": "outletOn", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "RMCU::digout4val", + "state_descr": "outletOff", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 3 + }, + { + "state_name": "RMCU::digout4val", + "state_descr": "outletOn", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "RMCU::digout5val", + "state_descr": "outletOff", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 3 + }, + { + "state_name": "RMCU::digout5val", + "state_descr": "outletOn", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + } + ] + }, + "poller": "matches discovery" + } +} diff --git a/tests/snmpsim/westmountainradio_westmountainradio.snmprec b/tests/snmpsim/westmountainradio_westmountainradio.snmprec new file mode 100644 index 0000000000..532b1e3f6c --- /dev/null +++ b/tests/snmpsim/westmountainradio_westmountainradio.snmprec @@ -0,0 +1,65 @@ +1.3.6.1.2.1.1.1.0|4|\"West Mountain Radio RIGrunner 4005i +1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.15117.1 +1.3.6.1.2.1.1.3.0|67|945103 +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.2.1.1.7.0|2|-1 +1.3.6.1.4.1.15117.1.1.1.0|4|4005i #1234 +1.3.6.1.4.1.15117.1.1.2.0|4|RIGRunner 4005i FW Version 4.08 +1.3.6.1.4.1.15117.1.1.3.0|4|16-Sep-19 09:03:27 +1.3.6.1.4.1.15117.1.2.1.0|4|Node 1 +1.3.6.1.4.1.15117.1.2.2.0|4|0.21 Amps +1.3.6.1.4.1.15117.1.2.3.0|4|Node 2 +1.3.6.1.4.1.15117.1.2.4.0|4|0.62 Amps +1.3.6.1.4.1.15117.1.2.5.0|4|Node 3 +1.3.6.1.4.1.15117.1.2.6.0|4|OFF +1.3.6.1.4.1.15117.1.2.7.0|4|Node 4 +1.3.6.1.4.1.15117.1.2.8.0|4|OFF +1.3.6.1.4.1.15117.1.2.9.0|4|Node 5 +1.3.6.1.4.1.15117.1.2.10.0|4|OFF +1.3.6.1.4.1.15117.1.2.11.0|4|Supply +1.3.6.1.4.1.15117.1.2.12.0|4|12.03 Volts +1.3.6.1.4.1.15117.1.2.65.0|4|Node 1 +1.3.6.1.4.1.15117.1.2.66.0|2|1 +1.3.6.1.4.1.15117.1.2.67.0|4|Node 2 +1.3.6.1.4.1.15117.1.2.68.0|2|1 +1.3.6.1.4.1.15117.1.2.69.0|4|Node 3 +1.3.6.1.4.1.15117.1.2.70.0|2|0 +1.3.6.1.4.1.15117.1.2.71.0|4|Node 4 +1.3.6.1.4.1.15117.1.2.72.0|2|0 +1.3.6.1.4.1.15117.1.2.73.0|4|Node 5 +1.3.6.1.4.1.15117.1.2.74.0|2|0 +1.3.6.1.4.1.15117.1.3.1.0|5| +1.3.6.1.4.1.15117.1.3.2.0|5| +1.3.6.1.4.1.15117.1.3.3.0|5| +1.3.6.1.4.1.15117.1.3.4.0|5| +1.3.6.1.4.1.15117.1.3.5.0|5| +1.3.6.1.4.1.15117.1.3.6.0|5| +1.3.6.1.4.1.15117.1.3.7.0|5| +1.3.6.1.4.1.15117.1.3.23.0|5| +1.3.6.1.4.1.15117.1.3.34.0|5| +1.3.6.1.4.1.15117.1.3.52.0|5| +1.3.6.1.4.1.15117.1.3.72.0|5| +1.3.6.1.4.1.15117.1.3.73.0|5| +1.3.6.1.4.1.15117.1.3.74.0|5| +1.3.6.1.4.1.15117.1.3.75.0|5| +1.3.6.1.4.1.15117.1.3.76.0|5| +1.3.6.1.4.1.15117.1.3.88.0|5| +1.3.6.1.4.1.15117.1.3.89.0|5| +1.3.6.1.4.1.15117.1.3.90.0|5| +1.3.6.1.4.1.15117.1.3.91.0|5| +1.3.6.1.4.1.15117.1.3.92.0|5| +1.3.6.1.4.1.15117.1.3.109.0|5| +1.3.6.1.4.1.15117.1.3.120.0|5| +1.3.6.1.4.1.15117.1.3.121.0|5| +1.3.6.1.4.1.15117.1.3.122.0|5| +1.3.6.1.4.1.15117.1.3.123.0|5| +1.3.6.1.4.1.15117.1.3.124.0|5| +1.3.6.1.4.1.15117.1.3.125.0|5| +1.3.6.1.4.1.15117.1.4.1.0|2|220 +1.3.6.1.4.1.15117.1.4.2.0|2|681 +1.3.6.1.4.1.15117.1.4.3.0|2|0 +1.3.6.1.4.1.15117.1.4.4.0|2|0 +1.3.6.1.4.1.15117.1.4.5.0|2|0 +1.3.6.1.4.1.15117.1.4.6.0|2|12033