device: Updated cyberpower sensors and os support (#8551)

This commit is contained in:
Neil Lathwood
2018-04-12 04:32:24 +01:00
committed by Tony Murray
parent 5d708e53b4
commit 974b5eb84f
6 changed files with 11457 additions and 10 deletions

View File

@@ -201,7 +201,7 @@ class YamlDiscovery
if (isset($data['snmp_flags'])) {
$snmp_flag = $data['snmp_flags'];
} else {
$snmp_flag = '-OeQUs';
$snmp_flag = '-OteQUs';
}
$snmp_flag .= ' -Ih';

View File

@@ -0,0 +1,118 @@
mib: CPS-MIB
modules:
sensors:
state:
data:
-
oid: upsBaseBatteryStatus
num_oid: .1.3.6.1.4.1.3808.1.1.1.2.1.1.
descr: 'Battery Status'
index: 'upsBaseBatteryStatus.{{ $index }}'
states:
- { value: 1, descr: Known, graph: 1, generic: 3 }
- { value: 2, descr: Normal, graph: 1, generic: 0 }
- { value: 3, descr: Low, graph: 1, generic: 2 }
-
oid: upsAdvanceBatteryReplaceIndicator
num_oid: .1.3.6.1.4.1.3808.1.1.1.2.2.5.
descr: 'Battery Replace Indicator'
index: 'upsAdvanceBatteryReplaceIndicator.{{ $index }}'
states:
- { value: 1, descr: No, graph: 1, generic: 0 }
- { value: 2, descr: Replace, graph: 1, generic: 2 }
-
oid: upsAdvanceInputLineFailCause
num_oid: .1.3.6.1.4.1.3808.1.1.1.3.2.5.
descr: 'Input Line Cause'
index: 'upsAdvanceInputLineFailCause.{{ $index }}'
states:
- { value: 1, descr: 'No Transfer', graph: 1, generic: 0 }
- { value: 2, descr: 'High Voltage', graph: 1, generic: 2 }
- { value: 3, descr: 'Brown Out', graph: 1, generic: 2 }
- { value: 4, descr: 'Self Test', graph: 1, generic: 1 }
-
oid: upsAdvanceInputStatus
num_oid: .1.3.6.1.4.1.3808.1.1.1.3.2.6.
descr: 'Input Status'
index: 'upsAdvanceInputStatus.{{ $index }}'
states:
- { value: 1, descr: 'Normal', graph: 1, generic: 0 }
- { value: 2, descr: 'Over Voltage', graph: 1, generic: 2 }
- { value: 3, descr: 'Under Voltage', graph: 1, generic: 2 }
- { value: 4, descr: 'Frequency Failure', graph: 1, generic: 2 }
- { value: 5, descr: 'Blackout', graph: 1, generic: 2 }
-
oid: upsBaseOutputStatus
num_oid: .1.3.6.1.4.1.3808.1.1.1.4.1.1.
descr: 'Output Status'
index: 'upsBaseOutputStatus.{{ $index }}'
states:
- { value: 1, descr: 'Unknown', graph: 1, generic: 3 }
- { value: 2, descr: 'Online', graph: 1, generic: 0 }
- { value: 3, descr: 'On Battery', graph: 1, generic: 2 }
- { value: 4, descr: 'On Boost', graph: 1, generic: 1 }
- { value: 5, descr: 'On Sleep', graph: 1, generic: 1 }
- { value: 6, descr: 'Off', graph: 1, generic: 2 }
- { value: 7, descr: 'Rebooting', graph: 1, generic: 1 }
charge:
data:
-
oid: upsAdvanceBatteryCapacity
num_oid: .1.3.6.1.4.1.3808.1.1.1.2.2.1.
index: 'upsAdvanceBatteryCapacity.{{ $index }}'
descr: 'Battery Capacity'
current:
data:
-
oid: upsAdvanceOutputCurrent
num_oid: .1.3.6.1.4.1.3808.1.1.1.4.2.4.
index: 'upsAdvanceOutputCurrent.{{ $index }}'
descr: 'Output'
voltage:
data:
-
oid: upsAdvanceBatteryVoltage
num_oid: .1.3.6.1.4.1.3808.1.1.1.2.2.2.
index: 'upsAdvanceBatteryVoltage.{{ $index }}'
descr: 'Battery Voltage'
-
oid: upsAdvanceInputLineVoltage
num_oid: .1.3.6.1.4.1.3808.1.1.1.3.2.1.
index: 'upsAdvanceInputLineVoltage.{{ $index }}'
descr: 'Input Line Voltage'
divisor: 10
-
oid: upsAdvanceOutputVoltage
num_oid: .1.3.6.1.4.1.3808.1.1.1.4.2.1.
index: 'upsAdvanceOutputVoltage.{{ $index }}'
descr: 'Output Voltage'
divisor: 10
temperature:
data:
-
oid: upsAdvanceBatteryTemperature
num_oid: .1.3.6.1.4.1.3808.1.1.1.2.2.3.
index: 'upsAdvanceBatteryTemperature.{{ $index }}'
descr: 'Battery Temperature'
runtime:
data:
-
oid: upsAdvanceBatteryRunTimeRemaining
num_oid: .1.3.6.1.4.1.3808.1.1.1.2.2.4.
index: 'upsAdvanceBatteryRunTimeRemaining.{{ $index }}'
descr: 'Battery Runtime'
divisor: 6000
frequency:
data:
-
oid: upsAdvanceInputFrequency
num_oid: .1.3.6.1.4.1.3808.1.1.1.3.2.4.
index: 'upsAdvanceInputFrequency.{{ $index }}'
descr: 'Input'
divisor: 10
-
oid: upsAdvanceOutputFrequency
num_oid: .1.3.6.1.4.1.3808.1.1.1.4.2.2.
index: 'upsAdvanceOutputFrequency.{{ $index }}'
descr: 'Output'
divisor: 10

View File

@@ -1,12 +1,19 @@
<?php
$oids=array(
'.1.3.6.1.4.1.3808.1.1.3.1.5.0',
'.1.3.6.1.4.1.3808.1.1.3.1.3.0'
);
$returned_oids=snmp_get_multi_oid($device, $oids);
if (begins_with('.1.3.6.1.4.1.3808.1.1.1', $device['sysObjectID'])) {
$cyberpower_oids = [
'hardware' => '.1.3.6.1.4.1.3808.1.1.1.1.1.1.0',
'version' => '.1.3.6.1.4.1.3808.1.1.1.1.2.1.0',
'serial' => '.1.3.6.1.4.1.3808.1.1.1.1.2.3.0',
];
} else {
$cyberpower_oids = [
'version' => '.1.3.6.1.4.1.3808.1.1.3.1.3.0',
'hardware' => '.1.3.6.1.4.1.3808.1.1.3.1.5.0',
'serial' => '.1.3.6.1.4.1.3808.1.1.3.1.6.0',
];
}
$returned_oids = snmp_get_multi_oid($device, $cyberpower_oids, '-OUQn', 'CPS-MIB');
$hardware = $hardware = $returned_oids['.1.3.6.1.4.1.3808.1.1.3.1.5.0'];
$hardware = str_replace('"', '', $hardware);
$version = $hardware = $returned_oids['.1.3.6.1.4.1.3808.1.1.3.1.3.0'];
$version = str_replace('"', '', $version);
$hardware = $returned_oids[$cyberpower_oids['hardware']];
$version = $returned_oids[$cyberpower_oids['version']];

10807
mibs/cyberpower/CPS-MIB Normal file

File diff suppressed because it is too large Load Diff

495
tests/data/cyberpower.json Normal file
View File

@@ -0,0 +1,495 @@
{
"os": {
"discovery": {
"devices": [
{
"sysName": "<private>",
"sysObjectID": ".1.3.6.1.4.1.3808.1.1.3",
"sysDescr": "Power Manager",
"sysContact": null,
"version": null,
"hardware": "",
"features": null,
"location": null,
"os": "cyberpower",
"type": "power",
"serial": null,
"icon": "cyberpower.svg"
}
]
},
"poller": {
"devices": [
{
"sysName": "<private>",
"sysObjectID": ".1.3.6.1.4.1.3808.1.1.3",
"sysDescr": "Power Manager",
"sysContact": "<private>",
"version": "S1A17",
"hardware": "OL2200RTXL2U",
"features": null,
"location": "<private>",
"os": "cyberpower",
"type": "power",
"serial": null,
"icon": "cyberpower.svg"
}
]
}
},
"sensors": {
"discovery": {
"sensors": [
{
"sensor_deleted": "0",
"sensor_class": "charge",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.2.2.1.0",
"sensor_index": "upsAdvanceBatteryCapacity.0",
"sensor_type": "cyberpower",
"sensor_descr": "Battery Capacity",
"sensor_divisor": "1",
"sensor_multiplier": "1",
"sensor_current": "100",
"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.3808.1.1.1.4.2.4.0",
"sensor_index": "upsAdvanceOutputCurrent.0",
"sensor_type": "cyberpower",
"sensor_descr": "Output",
"sensor_divisor": "1",
"sensor_multiplier": "1",
"sensor_current": "65",
"sensor_limit": "97.5",
"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": "frequency",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.3.2.4.0",
"sensor_index": "upsAdvanceInputFrequency.0",
"sensor_type": "cyberpower",
"sensor_descr": "Input",
"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,
"state_name": null
},
{
"sensor_deleted": "0",
"sensor_class": "frequency",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.4.2.2.0",
"sensor_index": "upsAdvanceOutputFrequency.0",
"sensor_type": "cyberpower",
"sensor_descr": "Output",
"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,
"state_name": null
},
{
"sensor_deleted": "0",
"sensor_class": "runtime",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.2.2.4.0",
"sensor_index": "upsAdvanceBatteryRunTimeRemaining.0",
"sensor_type": "cyberpower",
"sensor_descr": "Battery Runtime",
"sensor_divisor": "6000",
"sensor_multiplier": "1",
"sensor_current": "29",
"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.3808.1.1.1.2.2.5.0",
"sensor_index": "upsAdvanceBatteryReplaceIndicator.0",
"sensor_type": "upsAdvanceBatteryReplaceIndicator",
"sensor_descr": "Battery Replace Indicator",
"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": "upsAdvanceBatteryReplaceIndicator"
},
{
"sensor_deleted": "0",
"sensor_class": "state",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.3.2.5.0",
"sensor_index": "upsAdvanceInputLineFailCause.0",
"sensor_type": "upsAdvanceInputLineFailCause",
"sensor_descr": "Input Line Cause",
"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": "upsAdvanceInputLineFailCause"
},
{
"sensor_deleted": "0",
"sensor_class": "state",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.3.2.6.0",
"sensor_index": "upsAdvanceInputStatus.0",
"sensor_type": "upsAdvanceInputStatus",
"sensor_descr": "Input Status",
"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": "upsAdvanceInputStatus"
},
{
"sensor_deleted": "0",
"sensor_class": "state",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.2.1.1.0",
"sensor_index": "upsBaseBatteryStatus.0",
"sensor_type": "upsBaseBatteryStatus",
"sensor_descr": "Battery Status",
"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": null,
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": "upsBaseBatteryStatus"
},
{
"sensor_deleted": "0",
"sensor_class": "state",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.4.1.1.0",
"sensor_index": "upsBaseOutputStatus.0",
"sensor_type": "upsBaseOutputStatus",
"sensor_descr": "Output Status",
"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": null,
"entPhysicalIndex_measured": null,
"sensor_prev": null,
"user_func": null,
"state_name": "upsBaseOutputStatus"
},
{
"sensor_deleted": "0",
"sensor_class": "temperature",
"poller_type": "snmp",
"sensor_oid": ".1.3.6.1.4.1.3808.1.1.1.2.2.3.0",
"sensor_index": "upsAdvanceBatteryTemperature.0",
"sensor_type": "cyberpower",
"sensor_descr": "Battery Temperature",
"sensor_divisor": "1",
"sensor_multiplier": "1",
"sensor_current": "36",
"sensor_limit": "56",
"sensor_limit_warn": null,
"sensor_limit_low": "26",
"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.3808.1.1.1.3.2.1.0",
"sensor_index": "upsAdvanceInputLineVoltage.0",
"sensor_type": "cyberpower",
"sensor_descr": "Input Line Voltage",
"sensor_divisor": "10",
"sensor_multiplier": "1",
"sensor_current": "119.5",
"sensor_limit": "137.425",
"sensor_limit_warn": null,
"sensor_limit_low": "101.575",
"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.3808.1.1.1.4.2.1.0",
"sensor_index": "upsAdvanceOutputVoltage.0",
"sensor_type": "cyberpower",
"sensor_descr": "Output Voltage",
"sensor_divisor": "10",
"sensor_multiplier": "1",
"sensor_current": "120.2",
"sensor_limit": "138.23",
"sensor_limit_warn": null,
"sensor_limit_low": "102.17",
"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": "upsAdvanceBatteryReplaceIndicator",
"state_descr": "No",
"state_draw_graph": "1",
"state_value": "1",
"state_generic_value": "0"
},
{
"state_name": "upsAdvanceBatteryReplaceIndicator",
"state_descr": "Replace",
"state_draw_graph": "1",
"state_value": "2",
"state_generic_value": "2"
},
{
"state_name": "upsAdvanceInputLineFailCause",
"state_descr": "No Transfer",
"state_draw_graph": "1",
"state_value": "1",
"state_generic_value": "0"
},
{
"state_name": "upsAdvanceInputLineFailCause",
"state_descr": "High Voltage",
"state_draw_graph": "1",
"state_value": "2",
"state_generic_value": "2"
},
{
"state_name": "upsAdvanceInputLineFailCause",
"state_descr": "Brown Out",
"state_draw_graph": "1",
"state_value": "3",
"state_generic_value": "2"
},
{
"state_name": "upsAdvanceInputLineFailCause",
"state_descr": "Self Test",
"state_draw_graph": "1",
"state_value": "4",
"state_generic_value": "1"
},
{
"state_name": "upsAdvanceInputStatus",
"state_descr": "Normal",
"state_draw_graph": "1",
"state_value": "1",
"state_generic_value": "0"
},
{
"state_name": "upsAdvanceInputStatus",
"state_descr": "Over Voltage",
"state_draw_graph": "1",
"state_value": "2",
"state_generic_value": "2"
},
{
"state_name": "upsAdvanceInputStatus",
"state_descr": "Under Voltage",
"state_draw_graph": "1",
"state_value": "3",
"state_generic_value": "2"
},
{
"state_name": "upsAdvanceInputStatus",
"state_descr": "Frequency Failure",
"state_draw_graph": "1",
"state_value": "4",
"state_generic_value": "2"
},
{
"state_name": "upsAdvanceInputStatus",
"state_descr": "Blackout",
"state_draw_graph": "1",
"state_value": "5",
"state_generic_value": "2"
},
{
"state_name": "upsBaseBatteryStatus",
"state_descr": "Known",
"state_draw_graph": "1",
"state_value": "1",
"state_generic_value": "3"
},
{
"state_name": "upsBaseBatteryStatus",
"state_descr": "Normal",
"state_draw_graph": "1",
"state_value": "2",
"state_generic_value": "0"
},
{
"state_name": "upsBaseBatteryStatus",
"state_descr": "Low",
"state_draw_graph": "1",
"state_value": "3",
"state_generic_value": "2"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "Unknown",
"state_draw_graph": "1",
"state_value": "1",
"state_generic_value": "3"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "Online",
"state_draw_graph": "1",
"state_value": "2",
"state_generic_value": "0"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "On Battery",
"state_draw_graph": "1",
"state_value": "3",
"state_generic_value": "2"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "On Boost",
"state_draw_graph": "1",
"state_value": "4",
"state_generic_value": "1"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "On Sleep",
"state_draw_graph": "1",
"state_value": "5",
"state_generic_value": "1"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "Off",
"state_draw_graph": "1",
"state_value": "6",
"state_generic_value": "2"
},
{
"state_name": "upsBaseOutputStatus",
"state_descr": "Rebooting",
"state_draw_graph": "1",
"state_value": "7",
"state_generic_value": "1"
}
]
},
"poller": "matches discovery"
}
}

View File

@@ -1,2 +1,22 @@
1.3.6.1.2.1.1.1.0|4|Power Manager
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.3808.1.1.3
1.3.6.1.2.1.1.3.0|67|1795221300
1.3.6.1.2.1.1.4.0|4|<private>
1.3.6.1.2.1.1.5.0|4|<private>
1.3.6.1.2.1.1.6.0|4|<private>
1.3.6.1.4.1.3808.1.1.1.1.1.1.0|4|OL2200RTXL2U
1.3.6.1.4.1.3808.1.1.1.1.2.1.0|4|S1A17
1.3.6.1.4.1.3808.1.1.1.1.2.3.0|4|ABCFT1000001
1.3.6.1.4.1.3808.1.1.1.2.1.1.0|2|2
1.3.6.1.4.1.3808.1.1.1.2.2.1.0|66|100
1.3.6.1.4.1.3808.1.1.1.2.2.3.0|66|36
1.3.6.1.4.1.3808.1.1.1.2.2.4.0|67|174000
1.3.6.1.4.1.3808.1.1.1.2.2.5.0|2|1
1.3.6.1.4.1.3808.1.1.1.3.2.1.0|66|1195
1.3.6.1.4.1.3808.1.1.1.3.2.4.0|66|600
1.3.6.1.4.1.3808.1.1.1.3.2.5.0|2|1
1.3.6.1.4.1.3808.1.1.1.3.2.6.0|2|1
1.3.6.1.4.1.3808.1.1.1.4.1.1.0|2|2
1.3.6.1.4.1.3808.1.1.1.4.2.1.0|66|1202
1.3.6.1.4.1.3808.1.1.1.4.2.2.0|2|600
1.3.6.1.4.1.3808.1.1.1.4.2.4.0|66|65