Files
librenms-librenms/includes/discovery/sensors/temperature/dsm.inc.php
KodApa85 7f104d4fd9 Advanced state sensors (#9881)
* refactor: advanced sensor states

mark create_state_index($state_name) as E_USER_DEPRECATED?

* fix: minor corrections

* fix: mib has partialSync(9) and incompatibleVersion(8)

* fix: corrected netagent2upsstate - Sleeping(5)

* fix: NetAgent2 upsThreePhaseUPSStatusInverterOperating correction

* refactor: array() be gone

* Refactoring includes/discovery/sensors/state/extendair.inc.php with arrays
And tidying up array formatting in other files

* fix: minor typo

* standardising array item names

removed redundant "if ($state_index_id !== null) {"

* workaround: procurve & serverscheck

a sensor is causing create_state_index($state) to return null.
The updated code doesn't allow for this and thus a hybrid is being used.

* standardised naming of state info. Caused a typo $state_name instead of $status_name
$state_name is the standard

* converted compas to square arrays

* Converted APC states using preg_match to new create_state_index() call

* Update boss.inc.php
2019-03-04 11:31:17 -06:00

30 lines
1.3 KiB
PHP

<?php
echo 'DSM temperature ';
// DiskStation Temperature
$diskstation_temperature_oid = '.1.3.6.1.4.1.6574.1.2.0';
// DiskStation Disk Temperature
$disk_temperature_oid = '.1.3.6.1.4.1.6574.2.1.1.6.';
// Get DiskStation temperature
$diskstation_temperature = snmp_get($device, $diskstation_temperature_oid, '-Oqv');
// Save the DiskStation temperature
discover_sensor($valid['sensor'], 'temperature', $device, $diskstation_temperature_oid, '99', 'snmp', 'System Temperature', '1', '1', null, null, null, null, $diskstation_temperature);
// Get all disks in the device
$disks = snmpwalk_cache_multi_oid($device, 'diskTable', [], 'SYNOLOGY-DISK-MIB');
// Parse all disks in the device to get the temperature
if (is_array($disks)) {
foreach ($disks as $disk_number => $entry) {
// Get the disk temperature full oid
$disk_oid = $disk_temperature_oid.$disk_number;
// Get the temperature for the disk
$disk_temperature = $entry['diskTemperature'];
// Getting the disk information (Number and model)
$disk_information = $entry['diskID'].' '.$entry['diskModel'];
// Save the temperature for the disk
discover_sensor($valid['sensor'], 'temperature', $device, $disk_oid, $disk_number, 'snmp', $disk_information, '1', '1', null, null, null, null, $disk_temperature);
}
}