Uploaded image for project: 'Observium'
  1. Observium
  2. OBS-5337

Vertiv SmartCabinet: tested DCS-MIB ac0uTable sensor and status support

    XMLWordPrintable

Details

    • Add New Device / OS
    • Resolution: Fixed
    • Minor
    • None
    • Professional Edition
    • Default
    • None

    Description

      Hello,
       
      I am opening this as a new issue following OBS-5071 because I have now investigated the Vertiv SmartCabinet SNMP data in more detail and have a working, tested Observium implementation.
       
      In OBS-5071, the main issue was that DCS-MIB exposes many unrelated tables containing large numbers of -9999 values, for example upsGxt5Table.
       
      I found that these tables do not need to be parsed in order to monitor the SmartCabinet air-conditioning controller.
       
      The relevant data is available in a separate table:
       
      DCS-MIB::ac0uTable
      .1.3.6.1.4.1.13400.3.3.3031.1.1
       
      Device identification:
       
      Observium OS: vertiv-smartcabinet
      sysObjectID: .1.3.6.1.4.1.13400.250.10
       
      I added local definitions to Observium's existing:
       
      includes/definitions/mibs/vertiv/dcs-mib.inc.php
       
      and tested them successfully on two Vertiv SmartCabinet devices with Observium Professional 26.10.15433.
       
       
      WORKING SENSORS
       
      The implementation currently discovers and polls 14 sensors per device:
       
      ac0u_95_DetectedSupplyTemp
      ac0u_96_DetectedReturnTemp
      ac0u_97_DetectedOutsideCabinetTemp
      ac0u_98_DetectedDischargeTemp
      ac0u_99_DetectedSuctionTemp
      ac0u_100_DetectedDischargePressure
      ac0u_101_DetectedSuctionPressure
      ac0u_102_PowerVoltage
      ac0u_103_PowerFrequency
      ac0u_104_SuctionSuperheat1
      ac0u_121_MeasuredOutsideCabinetHmd
      ac0u_122_MeasuredReturnHmd
      ac0u_128_ActualSupplyAirHmd
      ac0u_133_DischargeSuperheat
       
      The vendor MIB explicitly defines the scaling and units for these objects. These measurements require a scale factor of 0.01.
       
      Examples from the tested devices:
       
      Supply temperature: 2250 -> 22.50 °C
      Power voltage:      22900 -> 229.00 V
      Power frequency:     4990 -> 49.90 Hz
      Discharge pressure:  2180 -> 21.80 bar
       
      These values are successfully discovered and polled by Observium using the local definitions.
       
       
      DEVICE-PROVIDED THRESHOLDS
       
      ac0uTable also exposes configured alarm thresholds, including:
       
      ac0u_215_HighPressureAlarmSP
      ac0u_216_LowPressureAlarmSP
      ac0u_219_HighSupplyTempAlarmSP
      ac0u_220_LowSupplyTempAlarmSP
      ac0u_221_HighReturnTempAlarmSP
      ac0u_222_LowReturnTempAlarmSP
      ac0u_226_OvervoltageAlarmSP
      ac0u_227_UndervoltageAlarmSP
       
      For example, on one tested device:
       
      High supply temperature: 30 °C
      Low supply temperature:   8 °C
      High return temperature: 40 °C
      Low return temperature:  18 °C
      High pressure:            39 bar
      Low pressure:              4 bar
      Overvoltage:              253 V
      Undervoltage:             207 V
       
      My local definition successfully uses the high supply/return temperature thresholds, pressure thresholds, and voltage thresholds.
       
      The low temperature threshold objects also return the correct SNMP values (8 °C and 18 °C). However, I have not yet resolved why Observium does not apply these two lower temperature limits to the sensors.
       
       
      WORKING ALARM / STATUS OBJECTS
       
      I also implemented and tested 17 status objects per device.
       
      These objects use states explicitly defined in the vendor MIB:
       
      normal(0)
      alarm(1)
       
      They are mapped in Observium as:
       
      normal -> ok
      alarm  -> alert
       
      The tested status objects are:
       
      ac0u_10_HighReturnTempAlarm
      ac0u_11_LowSupplyTempAlarm
      ac0u_12_HighSupplyTempAlarm
      ac0u_17_PowerLossAlarm
      ac0u_18_OvervoltageAlarm
      ac0u_19_UndervoltageAlarm
      ac0u_20_HighWaterLevelAlarm
      ac0u_23_ReturnTempSensorFailure
      ac0u_24_SupplyTempSensorFailure
      ac0u_31_EEVCommunicationFailure
      ac0u_40_PowerFrequencyDeviationAlarm
      ac0u_69_WaterUnderfloorAlarm
      ac0u_119_AirConditionerEmergencyStatu
      ac0u_124_CabinetHighTempAlarm
      ac0u_125_4DICommunicationFailure1
      ac0u_138_AirConditioningEmergencyFlag
      ac0u_149_CommunicationStatus
       
      All 17 status objects are discovered and polled correctly on both tested SmartCabinet devices.
       
       
      REMAINING PRESSURE UNIT ISSUE
       
      There is one additional issue I have not resolved cleanly.
       
      The vendor MIB explicitly defines:
       
      ac0u_100_DetectedDischargePressure
      ac0u_101_DetectedSuctionPressure
       
      as values stored in units of 0.01 bar.
       
      The numeric scaling works correctly. For example:
       
      raw value:    2180
      scaled value: 21.8
       
      However, when these objects are defined using Observium's pressure sensor class, Observium displays the resulting value as:
       
      21.8 Pa
       
      instead of:
       
      21.8 bar
       
      Therefore the numerical scaling is correct, but the displayed pressure unit is not.
       
       
      ATTACHMENTS
       
      I am attaching:
       
      1. Vendor DCS-MIB
      2. Full SNMP walk from the SmartCabinet
      3. Tested patch against includes/definitions/mibs/vertiv/dcs-mib.inc.php
       
      The important difference compared with OBS-5071 is that this implementation does not attempt to parse every object or every DCS-MIB table containing unsupported or -9999 values.
       
      Instead, it explicitly defines only the verified SmartCabinet objects from ac0uTable.
       
      The attached patch is based on Observium's existing DCS-MIB definition and has been tested on two Vertiv SmartCabinet devices.
       
      The implementation also remained functional after upgrading Observium Professional from revision 15429 to revision 15433.
       
      Could you please review this implementation for possible inclusion in Observium?
       
      Thank you

      Attachments

        Issue Links

          Activity

            People

              landy Mike Stupalov
              helpdeskclip Helpdesk
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: