From 30c95b7a769dff374f7dd987633a4d085350ca36 Mon Sep 17 00:00:00 2001 From: Nick Peelman Date: Sat, 28 Oct 2023 17:34:16 -0400 Subject: [PATCH] Add Support for Samlex America PSR-1200-48 Inverters (#15515) --- html/images/os/samlex.png | Bin 0 -> 22663 bytes includes/definitions/discovery/samlex.yaml | 211 +++++ includes/definitions/samlex.yaml | 13 + mibs/samlex/SAMLEXAMERICA-MIB | 537 +++++++++++++ tests/data/samlex_psr-1200-48.json | 846 +++++++++++++++++++++ tests/snmpsim/samlex_psr-1200-48.snmprec | 31 + 6 files changed, 1638 insertions(+) create mode 100644 html/images/os/samlex.png create mode 100644 includes/definitions/discovery/samlex.yaml create mode 100755 includes/definitions/samlex.yaml create mode 100644 mibs/samlex/SAMLEXAMERICA-MIB create mode 100644 tests/data/samlex_psr-1200-48.json create mode 100644 tests/snmpsim/samlex_psr-1200-48.snmprec diff --git a/html/images/os/samlex.png b/html/images/os/samlex.png new file mode 100644 index 0000000000000000000000000000000000000000..00ff859a3b36b2793c00c0ca8dd0a0d1012b9782 GIT binary patch literal 22663 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 M07*qoM6N<$f?O^uQUCw| literal 0 HcmV?d00001 diff --git a/includes/definitions/discovery/samlex.yaml b/includes/definitions/discovery/samlex.yaml new file mode 100644 index 0000000000..92ac3246be --- /dev/null +++ b/includes/definitions/discovery/samlex.yaml @@ -0,0 +1,211 @@ +mib: SAMLEXAMERICA-MIB +modules: + os: + hardware: SAMLEXAMERICA-MIB::model.0 + version: SAMLEXAMERICA-MIB::version.0 + sensors: + temperature: + data: + - + oid: tempDD + num_oid: .1.3.6.1.4.1.49075.1.3.3.8.{{ $index }} + index: tempDD.{{ $index }} + descr: DC-to-DC + - + oid: tempDA + num_oid: .1.3.6.1.4.1.49075.1.3.3.9.{{ $index }} + index: tempDA.{{ $index }} + descr: DC-to-AC + state: + data: + - + oid: fan + num_oid: '.1.3.6.1.4.1.49075.1.3.3.1.{{ $index }}' + descr: Fan + index: 'fan.{{ $index }}' + state_name: fanStatus + states: + - { descr: off, graph: 0, value: 0, generic: 0 } + - { descr: on, graph: 0, value: 1, generic: 0 } + - + oid: inverterMode + num_oid: '.1.3.6.1.4.1.49075.1.3.3.2.{{ $index }}' + descr: Inverter Mode + index: 'inverterMode.{{ $index }}' + state_name: inverterMode + states: + - { descr: offline, graph: 0, value: 0, generic: 0 } + - { descr: online, graph: 0, value: 1, generic: 0 } + - + oid: transferType + num_oid: '.1.3.6.1.4.1.49075.1.3.3.3.{{ $index }}' + descr: Transfer Type + index: 'transferType.{{ $index }}' + state_name: transferTypes + states: + - { descr: synchronized, graph: 0, value: 0, generic: 0 } + - { descr: unsynchronized, graph: 0, value: 1, generic: 0 } + - + oid: byPassRelay + num_oid: '.1.3.6.1.4.1.49075.1.3.3.4.{{ $index }}' + descr: Bypass Relay + index: 'byPassRelay.{{ $index }}' + state_name: transferTypes + states: + - { descr: grid, graph: 0, value: 0, generic: 0 } + - { descr: inverter, graph: 0, value: 1, generic: 0 } + - + oid: gridAC + num_oid: '.1.3.6.1.4.1.49075.1.3.3.5.{{ $index }}' + descr: Grid AC + index: 'gridAC.{{ $index }}' + state_name: gridACStatus + states: + - { descr: non-existent, graph: 0, value: 0, generic: 3 } + - { descr: detect, graph: 0, value: 1, generic: 1 } + - { descr: present, graph: 0, value: 2, generic: 1 } + - { descr: sync, graph: 0, value: 3, generic: 0 } + - { descr: wont-sync, graph: 0, value: 4, generic: 2 } + - + oid: warningFanFault + num_oid: '.1.3.6.1.4.1.49075.1.3.6.1.{{ $index }}' + descr: Fan Fault + index: 'warningFanFault.{{ $index }}' + state_name: warningFanFaultStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningOverVoltageAlarm + num_oid: '.1.3.6.1.4.1.49075.1.3.6.2.{{ $index }}' + descr: Over Voltage Alarm + index: 'warningOverVoltageAlarm.{{ $index }}' + state_name: warningOverVoltageAlarmStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningUnderVoltageAlarm + num_oid: '.1.3.6.1.4.1.49075.1.3.6.3.{{ $index }}' + descr: Under Voltage Alarm + index: 'warningUnderVoltageAlarm.{{ $index }}' + state_name: warningUnderVoltageAlarmStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningOverload + num_oid: '.1.3.6.1.4.1.49075.1.3.6.4.{{ $index }}' + descr: Overload + index: 'warningOverload.{{ $index }}' + state_name: warningOverloadStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningOverTemperature + num_oid: '.1.3.6.1.4.1.49075.1.3.6.5.{{ $index }}' + descr: Temperature + index: 'warningOverTemperature.{{ $index }}' + state_name: warningOverTemperatureStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningShortCircuit + num_oid: '.1.3.6.1.4.1.49075.1.3.6.6.{{ $index }}' + descr: Short Circuit + index: 'warningShortCircuit.{{ $index }}' + state_name: warningShortCircuitStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningOverVoltageProtection + num_oid: '.1.3.6.1.4.1.49075.1.3.6.7.{{ $index }}' + descr: Overvoltage Protection + index: 'warningOverVoltageProtection.{{ $index }}' + state_name: warningOverVoltageProtectionStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + - + oid: warningUnderVoltageProtection + num_oid: '.1.3.6.1.4.1.49075.1.3.6.8.{{ $index }}' + descr: Undervoltage Protection + index: 'warningUnderVoltageProtection.{{ $index }}' + state_name: warningUnderVoltageProtectionStatus + states: + - { descr: normal, graph: 0, value: 0, generic: 0 } + - { descr: warning, graph: 0, value: 1, generic: 1 } + + power: + data: + - + oid: power + num_oid: '.1.3.6.1.4.1.49075.1.3.1.4.{{ $index }}' + descr: 'Inverter Power' + index: 'power.{{ $index }}' + divisor: 10 + frequency: + data: + - + oid: cfgFrequency + num_oid: '.1.3.6.1.4.1.49075.1.3.1.5.{{ $index }}' + descr: 'Inverter Frequency Config' + index: 'power.{{ $index }}' + divisor: 10 + - + oid: frequency + num_oid: '.1.3.6.1.4.1.49075.1.3.1.6.{{ $index }}' + descr: 'Inverter Output Frequency' + index: 'frequency.{{ $index }}' + divisor: 10 + - + oid: gridfrequency + num_oid: '.1.3.6.1.4.1.49075.1.3.1.10.{{ $index }}' + descr: 'Grid Frequency' + index: 'gridfrequency.{{ $index }}' + divisor: 10 + + current: + data: + - + oid: iout + num_oid: '.1.3.6.1.4.1.49075.1.3.1.3.{{ $index }}' + descr: 'Inverter Current' + index: 'iout.{{ $index }}' + divisor: 10 + - + oid: gridiout + num_oid: '.1.3.6.1.4.1.49075.1.3.1.8.{{ $index }}' + descr: 'Grid Current' + index: 'vin.{{ $index }}' + divisor: 10 + + voltage: + data: + - + oid: cfgVout + num_oid: '.1.3.6.1.4.1.49075.1.3.1.1.{{ $index }}' + descr: 'Inverter Vout Config' + index: 'cfgVout.{{ $index }}' + divisor: 10 + - + oid: vout + num_oid: '.1.3.6.1.4.1.49075.1.3.1.2.{{ $index }}' + descr: 'Inverter Output Volts' + index: 'vout.{{ $index }}' + divisor: 10 + - + oid: vin + num_oid: '.1.3.6.1.4.1.49075.1.3.2.1.{{ $index }}' + descr: 'DC Input Volts' + index: 'vin.{{ $index }}' + divisor: 10 + - + oid: gridvout + num_oid: '.1.3.6.1.4.1.49075.1.3.1.7.{{ $index }}' + descr: 'Grid Input Volts' + index: 'gridvout.{{ $index }}' + divisor: 10 diff --git a/includes/definitions/samlex.yaml b/includes/definitions/samlex.yaml new file mode 100755 index 0000000000..78bb4cbf6f --- /dev/null +++ b/includes/definitions/samlex.yaml @@ -0,0 +1,13 @@ +os: samlex +text: Samlex Inverter +type: power +icon: samlex +mib_dir: samlex +snmp_bulk: false +over: + - { graph: device_current, text: Current } + - { graph: device_voltage, text: Voltage } + - { graph: device_power, text: Power } +discovery: + - + sysObjectID: .1.3.6.1.4.1.49075 diff --git a/mibs/samlex/SAMLEXAMERICA-MIB b/mibs/samlex/SAMLEXAMERICA-MIB new file mode 100644 index 0000000000..fd3f647664 --- /dev/null +++ b/mibs/samlex/SAMLEXAMERICA-MIB @@ -0,0 +1,537 @@ +-- SNMP SMIV2 MIB +-- + +SAMLEXAMERICA-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY,enterprises, + IpAddress ,Integer32 FROM SNMPv2-SMI + -- Gauge, TimeTicks FROM RFC1155-SMI + DisplayString FROM SNMPv2-TC + OBJECT-TYPE FROM RFC-1212 + NOTIFICATION-TYPE FROM SNMPv2-SMI + -- TRAP-TYPE FROM RFC-1215 + TEXTUAL-CONVENTION FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP , + NOTIFICATION-GROUP FROM SNMPv2-CONF; + +samlexamericaInfo MODULE-IDENTITY + LAST-UPDATED "201612240000Z" + ORGANIZATION "SAMLEX AMERICA" + CONTACT-INFO + "www.samlexamerica.com" + DESCRIPTION + "Samlex America Inc" + + REVISION "201612240000Z" + DESCRIPTION + "SMIv2." + ::= { samlexamerica 1 } + +samlexamerica OBJECT IDENTIFIER ::= { enterprises 49075 } + +trapNotifications OBJECT IDENTIFIER ::= { samlexamericaInfo 0 } +product OBJECT IDENTIFIER ::= { samlexamericaInfo 1 } +setup OBJECT IDENTIFIER ::= { samlexamericaInfo 2 } +telecom OBJECT IDENTIFIER ::= { samlexamericaInfo 3 } + +output OBJECT IDENTIFIER ::= { telecom 1 } +input OBJECT IDENTIFIER ::= { telecom 2 } +status OBJECT IDENTIFIER ::= { telecom 3 } +ui OBJECT IDENTIFIER ::= { telecom 4 } +warningconfig OBJECT IDENTIFIER ::= { telecom 5 } +warning OBJECT IDENTIFIER ::= { telecom 6 } + + +model OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Product Name" + ::= { product 1 } + +version OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Version string. e.g. 1.0" + ::= { product 2 } + +date OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Date of version" + ::= { product 3 } + +cfgVout OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Config Vout, eg. 1200 = 120.0V" + ::= { output 1 } + +vout OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Inverter Output Voltage RMS eg. 1200 = 120.0V" + ::= { output 2 } + +iout OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Inverter Output Current RMS eg. 48 = 4.8A" + ::= { output 3 } + + +power OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Inverter Output Real Power eg. 9002 = 900.2W" + ::= { output 4 } + +cfgFrequency OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Config Output Frequency eg. 500 = 50.0Hz" + ::= { output 5 } + +frequency OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Inverter Output Frequency eg. 500 = 50.0Hz" + ::= { output 6 } + +gridvout OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Grid AC Output Voltage RMS eg. 1200 = 120.0V" + ::= { output 7 } + +gridiout OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Grid AC Output Current RMS eg. 48 = 4.8A" + ::= { output 8 } + + +gridpower OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Grid AC Output Real Power eg. 9002 = 900.2W" + ::= { output 9 } + +gridfrequency OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Grid AC Output Frequency eg. 500 = 50.0Hz" + ::= { output 10 } + + +vin OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "DC Voltage In eg. 245 = 24.5V" + ::= { input 1 } + +ovp OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Voltage Protection eg. 245 = 24.5V" + ::= { input 2 } + +ovpRecovery OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Voltage Protection Recovery eg. 245 = 24.5V" + ::= { input 3 } + +uvp OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Under Voltage Protection eg. 245 = 24.5V" + ::= { input 4 } + +uvpRecovery OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Under Voltage Protection Recovery eg. 245 = 24.5V" + ::= { input 5 } + +ovAlarm OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Voltage Alarm eg. 245 = 24.5V" + ::= { input 6 } + +uvAlarm OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Under Voltage Alarm eg. 245 = 24.5V" + ::= { input 7 } + +fan OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0 = off, 1 = on" + ::= { status 1 } + +inverterMode OBJECT-TYPE + SYNTAX INTEGER { off-Line(0), on-Line(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0 = Off-Line, 1 = On-Line" + ::= { status 2 } + +transferType OBJECT-TYPE + SYNTAX INTEGER { synchronized(0), unsynchronized(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0 = Synchronized, 1 = UnSynchronized" + ::= { status 3 } + +byPassRelay OBJECT-TYPE + SYNTAX INTEGER { grid(0), inverter(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0 = Grid, 1 = Inverter" + ::= { status 4 } + +gridAC OBJECT-TYPE + SYNTAX INTEGER { not-exists(0), detect(1), present(2), sync(3), wont-sync(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "not-exists(0), detect(1), present(2), sync(3), wont-sync(4)" + ::= { status 5 } + +olProtection OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Overload Protection Percentage eg. 110 = 110%" + ::= { status 6 } + +syncFreq OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Overload Protection Percentage eg. 50 = 5.0Hz" + ::= { status 7 } + +tempDD OBJECT-TYPE + SYNTAX INTEGER (-128..127) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "DC to DC temperature eg. 25 = 25 C" + ::= { status 8 } + +tempDA OBJECT-TYPE + SYNTAX INTEGER (-128..127) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "DC to AC temperature eg. 25 = 25 C" + ::= { status 9 } + +lcdContrast OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "LCD Contrast eg. 50 = 50%" + ::= { ui 1 } + +lcdAutoOff OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "LCD Auto Off eg. 0 = Disabled, 120 = 120 seconds" + ::= { ui 2 } + +rs232Speed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RS-232 Speed eg. 19200 = 19200bps" + ::= { ui 3 } + +usbVCOMSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "USB VCOM Speed eg. 19200 = 19200bps" + ::= { ui 4 } + +wcTable OBJECT-TYPE + SYNTAX SEQUENCE OF WcEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Warning Config Table" + ::= { warningconfig 1 } + +wcEntry OBJECT-TYPE + SYNTAX WcEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Single warning config entry containing info." + INDEX { wcIndex } + ::= { wcTable 1 } + +WcEntry ::= + SEQUENCE { + wcIndex + INTEGER, + wcFanFaultEnabled + INTEGER, + wcOVAEnabled + INTEGER, + wcUVAEnabled + INTEGER, + wcOverLoadEnabled + INTEGER, + wcOverTemperatureEnabled + INTEGER, + wcShortCircuitEnabled + INTEGER + } + +wcIndex OBJECT-TYPE + SYNTAX INTEGER { buzzer(0), drycontact(1) } + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Index of warning config" + ::= { wcEntry 1 } + +wcFanFaultEnabled OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fan Fault Enabled" + ::= { wcEntry 2 } + +wcOVAEnabled OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Alarm Enabled" + ::= { wcEntry 3 } + +wcUVAEnabled OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Under Voltage Alarm Enabled" + ::= { wcEntry 4 } + +wcOverLoadEnabled OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Overload Enabled" + ::= { wcEntry 5 } + +wcOverTemperatureEnabled OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Temperature Enabled" + ::= { wcEntry 6 } + +wcShortCircuitEnabled OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Short Circuit Enabled" + ::= { wcEntry 7 } + +warningFanFault OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fan Fault Warning" + ::= { warning 1 } + +warningOverVoltageAlarm OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Voltage Alarm Warning" + ::= { warning 2 } + +warningUnderVoltageAlarm OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Under Voltage Alarm Warning" + ::= { warning 3 } + +warningOverload OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Overload Warning" + ::= { warning 4 } + +warningOverTemperature OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Temperature Warning" + ::= { warning 5 } + +warningShortCircuit OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Short Circuit Warning" + ::= { warning 6 } + +warningOverVoltageProtection OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Over Voltage Protection Warning" + ::= { warning 7 } + +warningUnderVoltageProtection OBJECT-TYPE + SYNTAX INTEGER { normal(0), warning(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Under Voltage Protection Warning" + ::= { warning 8 } + + +trapTable OBJECT-TYPE + SYNTAX SEQUENCE OF TrapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Trap table" + ::= { setup 1 } + +trapEntry OBJECT-TYPE + SYNTAX TrapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Single trap entry containing trap receiver info." + INDEX { trapReceiverNumber } + ::= { trapTable 1 } + +TrapEntry ::= + SEQUENCE { + trapReceiverNumber + Integer32, + trapEnabled + Integer32, + trapReceiverIPAddress + IpAddress, + trapCommunity + DisplayString + } + +trapReceiverNumber OBJECT-TYPE + SYNTAX Integer32(0.. 4) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Index of trap receiver" + ::= { trapEntry 1 } + +trapEnabled OBJECT-TYPE + SYNTAX INTEGER { no(0),yes(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates if this trap entry is enabled or not." + ::= { trapEntry 2 } + +trapReceiverIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Trap receiver IP address" + ::= { trapEntry 3 } + +trapCommunity OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..7)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Trap community to be used by agent to send trap" + ::= { trapEntry 4 } + +snmpTrap NOTIFICATION-TYPE + OBJECTS { warningFanFault, warningOverVoltageAlarm, warningUnderVoltageAlarm, warningOverload, warningOverTemperature, warningShortCircuit, warningOverVoltageProtection, warningUnderVoltageProtection } + STATUS current + DESCRIPTION + "SMIV2 Trap notification information for the SNMP Manager." + ::= {trapNotifications 1} + +END diff --git a/tests/data/samlex_psr-1200-48.json b/tests/data/samlex_psr-1200-48.json new file mode 100644 index 0000000000..0308d882b2 --- /dev/null +++ b/tests/data/samlex_psr-1200-48.json @@ -0,0 +1,846 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": null, + "sysObjectID": ".1.3.6.1.4.1.49075", + "sysDescr": "systemname", + "sysContact": "", + "version": "1.0.2704", + "hardware": "PSR-1200-48", + "features": null, + "location": "", + "os": "samlex", + "type": "power", + "serial": null, + "icon": "samlex.png" + } + ] + }, + "poller": "matches discovery" + }, + "sensors": { + "discovery": { + "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.3.0", + "sensor_index": "iout.0", + "sensor_type": "samlex", + "sensor_descr": "Inverter Current", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 1.9, + "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, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.8.0", + "sensor_index": "vin.0", + "sensor_type": "samlex", + "sensor_descr": "Grid Current", + "group": null, + "sensor_divisor": 10, + "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, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "frequency", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.6.0", + "sensor_index": "frequency.0", + "sensor_type": "samlex", + "sensor_descr": "Inverter Output Frequency", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 59.9, + "sensor_limit": 62.895, + "sensor_limit_warn": null, + "sensor_limit_low": 56.905, + "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.4.1.49075.1.3.1.10.0", + "sensor_index": "gridfrequency.0", + "sensor_type": "samlex", + "sensor_descr": "Grid Frequency", + "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, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "frequency", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.5.0", + "sensor_index": "power.0", + "sensor_type": "samlex", + "sensor_descr": "Inverter Frequency Config", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 60, + "sensor_limit": 63, + "sensor_limit_warn": null, + "sensor_limit_low": 57, + "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": "power", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.4.0", + "sensor_index": "power.0", + "sensor_type": "samlex", + "sensor_descr": "Inverter Power", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 211.4, + "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, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.1.0", + "sensor_index": "fan.0", + "sensor_type": "fanStatus", + "sensor_descr": "Fan", + "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, + "rrd_type": "GAUGE", + "state_name": "fanStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.5.0", + "sensor_index": "gridAC.0", + "sensor_type": "gridACStatus", + "sensor_descr": "Grid AC", + "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, + "rrd_type": "GAUGE", + "state_name": "gridACStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.2.0", + "sensor_index": "inverterMode.0", + "sensor_type": "inverterMode", + "sensor_descr": "Inverter Mode", + "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, + "rrd_type": "GAUGE", + "state_name": "inverterMode" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.4.0", + "sensor_index": "byPassRelay.0", + "sensor_type": "transferTypes", + "sensor_descr": "Bypass Relay", + "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, + "rrd_type": "GAUGE", + "state_name": "transferTypes" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.3.0", + "sensor_index": "transferType.0", + "sensor_type": "transferTypes", + "sensor_descr": "Transfer Type", + "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, + "rrd_type": "GAUGE", + "state_name": "transferTypes" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.1.0", + "sensor_index": "warningFanFault.0", + "sensor_type": "warningFanFaultStatus", + "sensor_descr": "Fan Fault", + "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, + "rrd_type": "GAUGE", + "state_name": "warningFanFaultStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.4.0", + "sensor_index": "warningOverload.0", + "sensor_type": "warningOverloadStatus", + "sensor_descr": "Overload", + "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, + "rrd_type": "GAUGE", + "state_name": "warningOverloadStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.5.0", + "sensor_index": "warningOverTemperature.0", + "sensor_type": "warningOverTemperatureStatus", + "sensor_descr": "Temperature", + "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, + "rrd_type": "GAUGE", + "state_name": "warningOverTemperatureStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.2.0", + "sensor_index": "warningOverVoltageAlarm.0", + "sensor_type": "warningOverVoltageAlarmStatus", + "sensor_descr": "Over Voltage Alarm", + "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, + "rrd_type": "GAUGE", + "state_name": "warningOverVoltageAlarmStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.7.0", + "sensor_index": "warningOverVoltageProtection.0", + "sensor_type": "warningOverVoltageProtectionStatus", + "sensor_descr": "Overvoltage Protection", + "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, + "rrd_type": "GAUGE", + "state_name": "warningOverVoltageProtectionStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.6.0", + "sensor_index": "warningShortCircuit.0", + "sensor_type": "warningShortCircuitStatus", + "sensor_descr": "Short Circuit", + "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, + "rrd_type": "GAUGE", + "state_name": "warningShortCircuitStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.3.0", + "sensor_index": "warningUnderVoltageAlarm.0", + "sensor_type": "warningUnderVoltageAlarmStatus", + "sensor_descr": "Under Voltage Alarm", + "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, + "rrd_type": "GAUGE", + "state_name": "warningUnderVoltageAlarmStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.6.8.0", + "sensor_index": "warningUnderVoltageProtection.0", + "sensor_type": "warningUnderVoltageProtectionStatus", + "sensor_descr": "Undervoltage Protection", + "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, + "rrd_type": "GAUGE", + "state_name": "warningUnderVoltageProtectionStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.9.0", + "sensor_index": "tempDA.0", + "sensor_type": "samlex", + "sensor_descr": "DC-to-AC", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 45, + "sensor_limit": 65, + "sensor_limit_warn": null, + "sensor_limit_low": 35, + "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": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.3.8.0", + "sensor_index": "tempDD.0", + "sensor_type": "samlex", + "sensor_descr": "DC-to-DC", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 34, + "sensor_limit": 54, + "sensor_limit_warn": null, + "sensor_limit_low": 24, + "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", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.1.0", + "sensor_index": "cfgVout.0", + "sensor_type": "samlex", + "sensor_descr": "Inverter Vout Config", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 120, + "sensor_limit": 138, + "sensor_limit_warn": null, + "sensor_limit_low": 102, + "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", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.7.0", + "sensor_index": "gridvout.0", + "sensor_type": "samlex", + "sensor_descr": "Grid Input Volts", + "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, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.2.1.0", + "sensor_index": "vin.0", + "sensor_type": "samlex", + "sensor_descr": "DC Input Volts", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 54.4, + "sensor_limit": 62.56, + "sensor_limit_warn": null, + "sensor_limit_low": 46.24, + "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", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.49075.1.3.1.2.0", + "sensor_index": "vout.0", + "sensor_type": "samlex", + "sensor_descr": "Inverter Output Volts", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 118.6, + "sensor_limit": 136.39, + "sensor_limit_warn": null, + "sensor_limit_low": 100.81, + "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 + } + ], + "state_indexes": [ + { + "state_name": "fanStatus", + "state_descr": "off", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "fanStatus", + "state_descr": "on", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "gridACStatus", + "state_descr": "non-existent", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 3 + }, + { + "state_name": "gridACStatus", + "state_descr": "detect", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "gridACStatus", + "state_descr": "present", + "state_draw_graph": 0, + "state_value": 2, + "state_generic_value": 1 + }, + { + "state_name": "gridACStatus", + "state_descr": "sync", + "state_draw_graph": 0, + "state_value": 3, + "state_generic_value": 0 + }, + { + "state_name": "gridACStatus", + "state_descr": "wont-sync", + "state_draw_graph": 0, + "state_value": 4, + "state_generic_value": 2 + }, + { + "state_name": "inverterMode", + "state_descr": "offline", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "inverterMode", + "state_descr": "online", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "transferTypes", + "state_descr": "grid", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "transferTypes", + "state_descr": "inverter", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "warningFanFaultStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningFanFaultStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningOverloadStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningOverloadStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningOverTemperatureStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningOverTemperatureStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningOverVoltageAlarmStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningOverVoltageAlarmStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningOverVoltageProtectionStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningOverVoltageProtectionStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningShortCircuitStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningShortCircuitStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningUnderVoltageAlarmStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningUnderVoltageAlarmStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "warningUnderVoltageProtectionStatus", + "state_descr": "normal", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "warningUnderVoltageProtectionStatus", + "state_descr": "warning", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + } + ] + }, + "poller": "matches discovery" + } +} diff --git a/tests/snmpsim/samlex_psr-1200-48.snmprec b/tests/snmpsim/samlex_psr-1200-48.snmprec new file mode 100644 index 0000000000..1b4c731daa --- /dev/null +++ b/tests/snmpsim/samlex_psr-1200-48.snmprec @@ -0,0 +1,31 @@ +1.3.6.1.2.1.1.1.0|4|systemname +1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.49075 +1.3.6.1.2.1.1.4.0|4| +1.3.6.1.2.1.1.6.0|4| +1.3.6.1.4.1.49075.1.1.1.0|4|PSR-1200-48 +1.3.6.1.4.1.49075.1.1.2.0|4|1.0.2704 +1.3.6.1.4.1.49075.1.3.1.1.0|2|1200 +1.3.6.1.4.1.49075.1.3.1.2.0|2|1186 +1.3.6.1.4.1.49075.1.3.1.3.0|2|19 +1.3.6.1.4.1.49075.1.3.1.4.0|2|2114 +1.3.6.1.4.1.49075.1.3.1.5.0|2|600 +1.3.6.1.4.1.49075.1.3.1.6.0|2|599 +1.3.6.1.4.1.49075.1.3.1.7.0|2|0 +1.3.6.1.4.1.49075.1.3.1.8.0|2|0 +1.3.6.1.4.1.49075.1.3.1.10.0|2|0 +1.3.6.1.4.1.49075.1.3.2.1.0|2|544 +1.3.6.1.4.1.49075.1.3.3.1.0|2|1 +1.3.6.1.4.1.49075.1.3.3.2.0|2|0 +1.3.6.1.4.1.49075.1.3.3.3.0|2|0 +1.3.6.1.4.1.49075.1.3.3.4.0|2|1 +1.3.6.1.4.1.49075.1.3.3.5.0|2|0 +1.3.6.1.4.1.49075.1.3.3.8.0|2|34 +1.3.6.1.4.1.49075.1.3.3.9.0|2|45 +1.3.6.1.4.1.49075.1.3.6.1.0|2|0 +1.3.6.1.4.1.49075.1.3.6.2.0|2|0 +1.3.6.1.4.1.49075.1.3.6.3.0|2|0 +1.3.6.1.4.1.49075.1.3.6.4.0|2|0 +1.3.6.1.4.1.49075.1.3.6.5.0|2|0 +1.3.6.1.4.1.49075.1.3.6.6.0|2|0 +1.3.6.1.4.1.49075.1.3.6.7.0|2|0 +1.3.6.1.4.1.49075.1.3.6.8.0|2|0