mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 18:38:25 +00:00
Fix: Rittal CMC III low warn limit and CAN bus current (#12513)
* Rittal CMC III: Add low warn limit * Rittal CMC III: Fix CAN current
This commit is contained in:
parent
38de49ca30
commit
db5d9b768f
@ -49,6 +49,9 @@ foreach ($cmc_iii_var_table as $index => $entry) {
|
||||
case 'setWarn':
|
||||
$cmc_iii_sensors[$sensor_id]['warn_limit'] = $entry['cmcIIIVarValueInt'];
|
||||
break;
|
||||
case 'setWarnLow':
|
||||
$cmc_iii_sensors[$sensor_id]['low_warn_limit'] = $entry['cmcIIIVarValueInt'];
|
||||
break;
|
||||
case 'setLow':
|
||||
$cmc_iii_sensors[$sensor_id]['low_limit'] = $entry['cmcIIIVarValueInt'];
|
||||
break;
|
||||
@ -66,27 +69,32 @@ foreach ($cmc_iii_var_table as $index => $entry) {
|
||||
$cmc_iii_sensors[$sensor_id]['value'] = $entry['cmcIIIVarValueStr'];
|
||||
}
|
||||
|
||||
$unit = $entry['cmcIIIVarUnit'];
|
||||
$type = 'state';
|
||||
if (Str::endsWith($unit, 'A')) {
|
||||
$type = 'current';
|
||||
} elseif (Str::endsWith($unit, 'degree C') or Str::endsWith($unit, 'degree F')) {
|
||||
$type = 'temperature';
|
||||
} elseif (Str::endsWith($unit, 'l/min')) {
|
||||
$type = 'waterflow';
|
||||
} elseif (Str::endsWith($unit, 'V')) {
|
||||
$type = 'voltage';
|
||||
} elseif (Str::endsWith($unit, 'W')) {
|
||||
$type = 'power';
|
||||
}
|
||||
|
||||
$cmc_iii_sensors[$sensor_id]['type'] = $type;
|
||||
|
||||
if ($entry['cmcIIIVarScale'][0] == '-') {
|
||||
$cmc_iii_sensors[$sensor_id]['divisor'] = substr($entry['cmcIIIVarScale'], 1);
|
||||
} elseif ($entry['cmcIIIVarScale'][0] == '+') {
|
||||
$cmc_iii_sensors[$sensor_id]['multiplier'] = substr($entry['cmcIIIVarScale'], 1);
|
||||
}
|
||||
|
||||
$unit = $entry['cmcIIIVarUnit'];
|
||||
$type = 'state';
|
||||
if ($unit == 'mA') {
|
||||
//In some cases we get a mA value. However, the cmcIIIVarScale is simply 1.
|
||||
//Therefore, we must hardcode the divisor here to calculate the value into A.
|
||||
$type = 'current';
|
||||
$cmc_iii_sensors[$sensor_id]['divisor'] = 1000;
|
||||
} elseif ($unit == 'A') {
|
||||
$type = 'current';
|
||||
} elseif ($unit == 'degree C' or $unit == 'degree F') {
|
||||
$type = 'temperature';
|
||||
} elseif ($unit == 'l/min') {
|
||||
$type = 'waterflow';
|
||||
} elseif ($unit == 'V') {
|
||||
$type = 'voltage';
|
||||
} elseif ($unit == 'W') {
|
||||
$type = 'power';
|
||||
}
|
||||
|
||||
$cmc_iii_sensors[$sensor_id]['type'] = $type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -136,18 +144,38 @@ foreach ($cmc_iii_sensors as $sensor_id => $sensor_data) {
|
||||
}
|
||||
|
||||
if (isset($sensor_data['divisor'])) {
|
||||
$sensor_data['low_limit'] = ($sensor_data['low_limit'] / $sensor_data['divisor']);
|
||||
$sensor_data['warn_limit'] = ($sensor_data['warn_limit'] / $sensor_data['divisor']);
|
||||
$sensor_data['high_limit'] = ($sensor_data['high_limit'] / $sensor_data['divisor']);
|
||||
if (isset($sensor_data['low_limit'])) {
|
||||
$sensor_data['low_limit'] = ($sensor_data['low_limit'] / $sensor_data['divisor']);
|
||||
}
|
||||
if (isset($sensor_data['low_warn_limit'])) {
|
||||
$sensor_data['low_warn_limit'] = ($sensor_data['low_warn_limit'] / $sensor_data['divisor']);
|
||||
}
|
||||
if (isset($sensor_data['warn_limit'])) {
|
||||
$sensor_data['warn_limit'] = ($sensor_data['warn_limit'] / $sensor_data['divisor']);
|
||||
}
|
||||
if (isset($sensor_data['high_limit'])) {
|
||||
$sensor_data['high_limit'] = ($sensor_data['high_limit'] / $sensor_data['divisor']);
|
||||
}
|
||||
|
||||
$sensor_data['value'] = ($sensor_data['value'] / $sensor_data['divisor']);
|
||||
} elseif (isset($sensor_data['multiplier'])) {
|
||||
$sensor_data['low_limit'] = ($sensor_data['low_limit'] * $sensor_data['multiplier']);
|
||||
$sensor_data['warn_limit'] = ($sensor_data['warn_limit'] * $sensor_data['multiplier']);
|
||||
$sensor_data['high_limit'] = ($sensor_data['high_limit'] * $sensor_data['multiplier']);
|
||||
if (isset($sensor_data['low_limit'])) {
|
||||
$sensor_data['low_limit'] = ($sensor_data['low_limit'] * $sensor_data['multiplier']);
|
||||
}
|
||||
if (isset($sensor_data['low_warn_limit'])) {
|
||||
$sensor_data['low_warn_limit'] = ($sensor_data['low_warn_limit'] * $sensor_data['multiplier']);
|
||||
}
|
||||
if (isset($sensor_data['warn_limit'])) {
|
||||
$sensor_data['warn_limit'] = ($sensor_data['warn_limit'] * $sensor_data['multiplier']);
|
||||
}
|
||||
if (isset($sensor_data['high_limit'])) {
|
||||
$sensor_data['high_limit'] = ($sensor_data['high_limit'] * $sensor_data['multiplier']);
|
||||
}
|
||||
|
||||
$sensor_data['value'] = ($sensor_data['value'] * $sensor_data['multiplier']);
|
||||
}
|
||||
|
||||
discover_sensor($valid['sensor'], $sensor_data['type'], $device, $sensor_data['oid'], $sensor_id, $sensor_data['name'], $sensor_data['desc'], $sensor_data['divisor'], $sensor_data['multiplier'], $sensor_data['low_limit'], null, $sensor_data['warn_limit'], $sensor_data['high_limit'], $sensor_data['value']);
|
||||
discover_sensor($valid['sensor'], $sensor_data['type'], $device, $sensor_data['oid'], $sensor_id, $sensor_data['name'], $sensor_data['desc'], $sensor_data['divisor'], $sensor_data['multiplier'], $sensor_data['low_limit'], $sensor_data['low_warn_limit'], $sensor_data['warn_limit'], $sensor_data['high_limit'], $sensor_data['value']);
|
||||
|
||||
if (isset($sensor_data['logic'])) {
|
||||
create_sensor_to_state_index($device, $sensor_data['name'], $sensor_id);
|
||||
|
@ -1347,7 +1347,7 @@
|
||||
"sensor_multiplier": 1,
|
||||
"sensor_current": 1.4,
|
||||
"sensor_limit": 1.6,
|
||||
"sensor_limit_warn": 0,
|
||||
"sensor_limit_warn": null,
|
||||
"sensor_limit_low": 0,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_alert": 1,
|
||||
@ -1371,7 +1371,7 @@
|
||||
"sensor_multiplier": 1,
|
||||
"sensor_current": 1.5,
|
||||
"sensor_limit": 0.6,
|
||||
"sensor_limit_warn": 0,
|
||||
"sensor_limit_warn": null,
|
||||
"sensor_limit_low": 0,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_alert": 1,
|
||||
@ -1391,11 +1391,11 @@
|
||||
"sensor_type": "System CAN1 Current",
|
||||
"sensor_descr": "CAN1 Current",
|
||||
"group": null,
|
||||
"sensor_divisor": 1,
|
||||
"sensor_divisor": 1000,
|
||||
"sensor_multiplier": 1,
|
||||
"sensor_current": 0,
|
||||
"sensor_limit": 900,
|
||||
"sensor_limit_warn": 700,
|
||||
"sensor_limit": 0.9,
|
||||
"sensor_limit_warn": 0.7,
|
||||
"sensor_limit_low": null,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_alert": 1,
|
||||
@ -1415,11 +1415,11 @@
|
||||
"sensor_type": "System CAN2 Current",
|
||||
"sensor_descr": "CAN2 Current",
|
||||
"group": null,
|
||||
"sensor_divisor": 1,
|
||||
"sensor_divisor": 1000,
|
||||
"sensor_multiplier": 1,
|
||||
"sensor_current": 0,
|
||||
"sensor_limit": 900,
|
||||
"sensor_limit_warn": 700,
|
||||
"sensor_limit": 0.9,
|
||||
"sensor_limit_warn": 0.7,
|
||||
"sensor_limit_low": null,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_alert": 1,
|
||||
@ -1613,7 +1613,7 @@
|
||||
"sensor_limit": 80,
|
||||
"sensor_limit_warn": 70,
|
||||
"sensor_limit_low": -30,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": -25,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1637,7 +1637,7 @@
|
||||
"sensor_limit": 45,
|
||||
"sensor_limit_warn": 40,
|
||||
"sensor_limit_low": 0,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 4,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1661,7 +1661,7 @@
|
||||
"sensor_limit": 40,
|
||||
"sensor_limit_warn": 35,
|
||||
"sensor_limit_low": 0,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 5,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1685,7 +1685,7 @@
|
||||
"sensor_limit": 28,
|
||||
"sensor_limit_warn": 26,
|
||||
"sensor_limit_low": 19,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 21,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1709,7 +1709,7 @@
|
||||
"sensor_limit": 3.63,
|
||||
"sensor_limit_warn": 3.56,
|
||||
"sensor_limit_low": 2.97,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 3.04,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1733,7 +1733,7 @@
|
||||
"sensor_limit": 5.5,
|
||||
"sensor_limit_warn": 5.4,
|
||||
"sensor_limit_low": 4.5,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 4.6,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
|
@ -1129,11 +1129,11 @@
|
||||
"sensor_type": "System CAN1 Current",
|
||||
"sensor_descr": "CAN1 Current",
|
||||
"group": null,
|
||||
"sensor_divisor": 1,
|
||||
"sensor_divisor": 1000,
|
||||
"sensor_multiplier": 1,
|
||||
"sensor_current": 0,
|
||||
"sensor_limit": 900,
|
||||
"sensor_limit_warn": 700,
|
||||
"sensor_limit": 0.9,
|
||||
"sensor_limit_warn": 0.7,
|
||||
"sensor_limit_low": null,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_alert": 1,
|
||||
@ -1153,11 +1153,11 @@
|
||||
"sensor_type": "System CAN2 Current",
|
||||
"sensor_descr": "CAN2 Current",
|
||||
"group": null,
|
||||
"sensor_divisor": 1,
|
||||
"sensor_divisor": 1000,
|
||||
"sensor_multiplier": 1,
|
||||
"sensor_current": 0,
|
||||
"sensor_limit": 900,
|
||||
"sensor_limit_warn": 700,
|
||||
"sensor_limit": 0.9,
|
||||
"sensor_limit_warn": 0.7,
|
||||
"sensor_limit_low": null,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_alert": 1,
|
||||
@ -1279,7 +1279,7 @@
|
||||
"sensor_limit": 80,
|
||||
"sensor_limit_warn": 70,
|
||||
"sensor_limit_low": -30,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": -25,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1303,7 +1303,7 @@
|
||||
"sensor_limit": 45,
|
||||
"sensor_limit_warn": 40,
|
||||
"sensor_limit_low": 0,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 4,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1327,7 +1327,7 @@
|
||||
"sensor_limit": 28,
|
||||
"sensor_limit_warn": 26,
|
||||
"sensor_limit_low": 19,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 21,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1351,7 +1351,7 @@
|
||||
"sensor_limit": 3.63,
|
||||
"sensor_limit_warn": 3.56,
|
||||
"sensor_limit_low": 2.97,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 3.04,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
@ -1375,7 +1375,7 @@
|
||||
"sensor_limit": 5.5,
|
||||
"sensor_limit_warn": 5.4,
|
||||
"sensor_limit_low": 4.5,
|
||||
"sensor_limit_low_warn": null,
|
||||
"sensor_limit_low_warn": 4.6,
|
||||
"sensor_alert": 1,
|
||||
"sensor_custom": "No",
|
||||
"entPhysicalIndex": null,
|
||||
|
Loading…
Reference in New Issue
Block a user