Index: includes/discovery/sensors/powernet-mib.inc.php
===================================================================
--- includes/discovery/sensors/powernet-mib.inc.php	(revision 8931)
+++ includes/discovery/sensors/powernet-mib.inc.php	(working copy)
@@ -1296,46 +1296,217 @@
 
 $inrow = array();
 
-$inrow['airIRRC100Series']['group']['status']['index']    = "airIRRCGroupStatus";
-$inrow['airIRRC100Series']['group']['status']['oid']      = ".1.3.6.1.4.1.318.1.1.13.3.2.1.1";
-$inrow['airIRRC100Series']['group']['setpoints']['index'] = "airIRRCGroupSetpoints";
-$inrow['airIRRC100Series']['group']['setpoints']['oid']   = ".1.3.6.1.4.1.318.1.1.13.3.2.1.2";
-$inrow['airIRRC100Series']['unit']['status']['index']     = "airIRRCUnitStatus";
-$inrow['airIRRC100Series']['unit']['status']['oid']       = ".1.3.6.1.4.1.318.1.1.13.3.2.2.2";
-$inrow['airIRRC100Series']['unit']['thresholds']['index'] = "airIRRCUnitThresholds";
 
-$inrow['airIRRP100Series']['group']['status']['index']    = "airIRRP100GroupStatus";
-$inrow['airIRRP100Series']['group']['status']['oid']      = ".1.3.6.1.4.1.318.1.1.13.3.3.1.1.1";
-$inrow['airIRRP100Series']['group']['setpoints']['index'] = "airIRRP100GroupSetpoints";
-$inrow['airIRRP100Series']['group']['setpoints']['oid']   = ".1.3.6.1.4.1.318.1.1.13.3.3.1.1.2";
-$inrow['airIRRP100Series']['unit']['status']['index']     = "airIRRP100UnitStatus";
-$inrow['airIRRP100Series']['unit']['status']['oid']       = ".1.3.6.1.4.1.318.1.1.13.3.3.1.2.2";
-$inrow['airIRRP100Series']['unit']['thresholds']['index'] = "airIRRP100UnitThresholds";
+// Array for IRRC 100 Series
+$inrow['airIRRC100Series']['group']['status']['index']                                = "airIRRCGroupStatus";
+$inrow['airIRRC100Series']['group']['status']['oid']                                  = ".1.3.6.1.4.1.318.1.1.13.3.2.1.1";
+$inrow['airIRRC100Series']['group']['status']['prefix']                               = "airIRRCGroupStatus";
+$inrow['airIRRC100Series']['group']['status']['CoolOutput']                           = ".1.";
+$inrow['airIRRC100Series']['group']['status']['CoolDemand']                           = ".2.";
+$inrow['airIRRC100Series']['group']['status']['AirFlowUS']                            = ".3.";
+$inrow['airIRRC100Series']['group']['status']['MaxRackInletTempMetric']               = ".6.";
+$inrow['airIRRC100Series']['group']['status']['MinRackInletTempMetric']               = ".8.";
+$inrow['airIRRC100Series']['group']['status']['MaxReturnAirTempMetric']               = ".NA.";
+$inrow['airIRRC100Series']['group']['status']['MinReturnAirTempMetric']               = ".NA.";
 
-$inrow['airIRRP500Series']['group']['status']['index']    = "airIRRP500GroupStatus";
-$inrow['airIRRP500Series']['group']['status']['oid']      = ".1.3.6.1.4.1.318.1.1.13.3.3.2.1.1";
-$inrow['airIRRP500Series']['group']['setpoints']['index'] = "airIRRP500GroupSetpoints";
-$inrow['airIRRP500Series']['group']['setpoints']['oid']   = ".1.3.6.1.4.1.318.1.1.13.3.3.2.1.2";
-$inrow['airIRRP500Series']['unit']['status']['index']     = "airIRRP500UnitStatus";
-$inrow['airIRRP500Series']['unit']['status']['oid']       = ".1.3.6.1.4.1.318.1.1.13.3.3.2.2.2";
-$inrow['airIRRP500Series']['unit']['thresholds']['index'] = "airIRRP500UnitThresholds";
+$inrow['airIRRC100Series']['group']['setpoints']['index']                             = "airIRRCGroupSetpoints";
+$inrow['airIRRC100Series']['group']['setpoints']['oid']                               = ".1.3.6.1.4.1.318.1.1.13.3.2.1.2";
+$inrow['airIRRC100Series']['group']['setpoints']['prefix']                             = "airIRRCGroupSetpoints";
+$inrow['airIRRC100Series']['group']['setpoints']['CoolMetric']                        = ".2.";
+$inrow['airIRRC100Series']['group']['setpoints']['SupplyAirMetric']                   = ".4.";
+$inrow['airIRRC100Series']['group']['setpoints']['CoolSetpointMetric']                = ".NA.";
+$inrow['airIRRC100Series']['group']['setpoints']['SupplyAirSetpointMetric']           = ".NA.";
+ 
+$inrow['airIRRC100Series']['unit']['status']['index']                                 = "airIRRCUnitStatus";
+$inrow['airIRRC100Series']['unit']['status']['oid']                                   = ".1.3.6.1.4.1.318.1.1.13.3.2.2.2";
+$inrow['airIRRC100Series']['unit']['status']['prefix']                                = "airIRRCUnitStatus";
+$inrow['airIRRC100Series']['unit']['status']['CoolOutput']                            = ".2.";
+$inrow['airIRRC100Series']['unit']['status']['CoolDemand']                            = ".3.";
+$inrow['airIRRC100Series']['unit']['status']['AirFlowUS']                             = ".4.";
+$inrow['airIRRC100Series']['unit']['status']['RackInletTempMetric']                   = ".7.";
+$inrow['airIRRC100Series']['unit']['status']['SupplyAirTempMetric']                   = ".9.";
+$inrow['airIRRC100Series']['unit']['status']['ReturnAirTempMetric']                   = ".11.";
+$inrow['airIRRC100Series']['unit']['status']['SuctionTempMetric']                     = ".NA.";
+$inrow['airIRRC100Series']['unit']['status']['FilterDPMetric']                        = ".15.";
+$inrow['airIRRC100Series']['unit']['status']['ContainmtDPMetric']                     = ".13.";
+$inrow['airIRRC100Series']['unit']['status']['EnteringFluidTemperatureMetric']        = ".24.";
+$inrow['airIRRC100Series']['unit']['status']['LeavingFluidTemperatureMetric']         = ".26.";
+$inrow['airIRRC100Series']['unit']['status']['CompressorDriveHeatSinkTempMetric']     = ".NA.";
+$inrow['airIRRC100Series']['unit']['status']['CompressorDriveControlCardTempMetric']  = ".NA.";
+$inrow['airIRRC100Series']['unit']['status']['SuctionPressureMetric']                 = ".NA.";
+$inrow['airIRRC100Series']['unit']['status']['DischargePressureMetric']               = ".NA.";
 
-$inrow['airIRSC100Series']['group']['status']['index']    = "airIRSCGroupStatus";
-$inrow['airIRSC100Series']['group']['status']['oid']      = ".1.3.6.1.4.1.318.1.1.13.3.4.2.1";
-$inrow['airIRSC100Series']['group']['setpoints']['index'] = "airIRSCGroupSetpoints";
-$inrow['airIRSC100Series']['group']['setpoints']['oid']   = ".1.3.6.1.4.1.318.1.1.13.3.4.2.2";
-$inrow['airIRSC100Series']['unit']['status']['index']     = "airIRSCUnitStatus";
-$inrow['airIRSC100Series']['unit']['status']['oid']       = ".1.3.6.1.4.1.318.1.1.13.3.4.1.2";
-$inrow['airIRSC100Series']['unit']['thresholds']['index'] = "airIRSCUnitThresholds";
+$inrow['airIRRC100Series']['unit']['thresholds']['index']                             = "airIRRCUnitThresholds";
 
-$inrow['airIRRD100Series']['group']['status']['index']    = "airIRG2GroupStatus";
-$inrow['airIRRD100Series']['group']['status']['oid']      = "1.3.6.1.4.1.318.1.1.13.4.2.1";
-$inrow['airIRRD100Series']['group']['setpoints']['index'] = "airIRG2GroupSetpoints";
-$inrow['airIRRD100Series']['group']['setpoints']['oid']   = "1.3.6.1.4.1.318.1.1.13.4.2.2";
-$inrow['airIRRD100Series']['unit']['status']['index']     = "airIRG2RDT2Status";
-$inrow['airIRRD100Series']['unit']['status']['oid']       = "1.3.6.1.4.1.318.1.1.13.4.5.2.1";
-$inrow['airIRRD100Series']['unit']['thresholds']['index'] = "airIRG2RDT2Thresholds";
 
+// Array for IRRP 100 Series
+$inrow['airIRRP100Series']['group']['status']['index']                                = "airIRRP100GroupStatus";
+$inrow['airIRRP100Series']['group']['status']['oid']                                  = ".1.3.6.1.4.1.318.1.1.13.3.3.1.1.1";
+$inrow['airIRRP100Series']['group']['status']['prefix']                               = "airIRRP100GroupStatus";
+$inrow['airIRRP100Series']['group']['status']['CoolOutput']                           = ".8.";
+$inrow['airIRRP100Series']['group']['status']['CoolDemand']                           = ".7.";
+$inrow['airIRRP100Series']['group']['status']['AirFlowUS']                            = ".1.";
+$inrow['airIRRP100Series']['group']['status']['MaxRackInletTempMetric']               = ".4.";
+$inrow['airIRRP100Series']['group']['status']['MinRackInletTempMetric']               = ".6.";
+$inrow['airIRRP100Series']['group']['status']['MaxReturnAirTempMetric']               = ".NA.";
+$inrow['airIRRP100Series']['group']['status']['MinReturnAirTempMetric']               = ".NA.";
+
+$inrow['airIRRP100Series']['group']['setpoints']['index']                             = "airIRRP100GroupSetpoints";
+$inrow['airIRRP100Series']['group']['setpoints']['oid']                               = ".1.3.6.1.4.1.318.1.1.13.3.3.1.1.2";
+$inrow['airIRRP100Series']['group']['setpoints']['prefix']                            = "airIRRP100GroupSetpoints";
+$inrow['airIRRP100Series']['group']['setpoints']['CoolMetric']                        = ".2.";
+$inrow['airIRRP100Series']['group']['setpoints']['SupplyAirMetric']                   = ".4.";
+$inrow['airIRRP100Series']['group']['setpoints']['CoolSetpointMetric']                = ".NA.";
+$inrow['airIRRP100Series']['group']['setpoints']['SupplyAirSetpointMetric']           = ".NA.";
+ 
+$inrow['airIRRP100Series']['unit']['status']['index']                                 = "airIRRP100UnitStatus";
+$inrow['airIRRP100Series']['unit']['status']['oid']                                   = ".1.3.6.1.4.1.318.1.1.13.3.3.1.2.2";
+$inrow['airIRRP100Series']['unit']['status']['prefix']                                = "airIRRP100UnitStatus";
+$inrow['airIRRP100Series']['unit']['status']['CoolOutput']                            = ".14.";
+$inrow['airIRRP100Series']['unit']['status']['CoolDemand']                            = ".13.";
+$inrow['airIRRP100Series']['unit']['status']['AirFlowUS']                             = ".10.";
+$inrow['airIRRP100Series']['unit']['status']['RackInletTempMetric']                   = ".3.";
+$inrow['airIRRP100Series']['unit']['status']['SupplyAirTempMetric']                   = ".5.";
+$inrow['airIRRP100Series']['unit']['status']['ReturnAirTempMetric']                   = ".7.";
+$inrow['airIRRP100Series']['unit']['status']['SuctionTempMetric']                     = ".NA.";
+$inrow['airIRRP100Series']['unit']['status']['FilterDPMetric']                        = ".30.";
+$inrow['airIRRP100Series']['unit']['status']['ContainmtDPMetric']                     = ".32.";
+$inrow['airIRRP100Series']['unit']['status']['EnteringFluidTemperatureMetric']        = ".NA.";
+$inrow['airIRRP100Series']['unit']['status']['LeavingFluidTemperatureMetric']         = ".NA.";
+$inrow['airIRRP100Series']['unit']['status']['CompressorDriveHeatSinkTempMetric']     = ".41.";
+$inrow['airIRRP100Series']['unit']['status']['CompressorDriveControlCardTempMetric']  = ".43.";
+$inrow['airIRRP100Series']['unit']['status']['SuctionPressureMetric']                 = ".47.";
+$inrow['airIRRP100Series']['unit']['status']['DischargePressureMetric']               = ".49.";
+
+$inrow['airIRRP100Series']['unit']['thresholds']['index']                             = "airIRRP100UnitThresholds";
+
+
+// Array for IRRP 500 Series
+$inrow['airIRRP500Series']['group']['status']['index']                                = "airIRRP500GroupStatus";
+$inrow['airIRRP500Series']['group']['status']['oid']                                  = ".1.3.6.1.4.1.318.1.1.13.3.3.2.1.1";
+$inrow['airIRRP500Series']['group']['status']['prefix']                               = "airIRRP500GroupStatus";
+$inrow['airIRRP500Series']['group']['status']['CoolOutput']                           = ".8.";
+$inrow['airIRRP500Series']['group']['status']['CoolDemand']                           = ".7.";
+$inrow['airIRRP500Series']['group']['status']['AirFlowUS']                            = ".1.";
+$inrow['airIRRP500Series']['group']['status']['MaxRackInletTempMetric']               = ".4.";
+$inrow['airIRRP500Series']['group']['status']['MinRackInletTempMetric']               = ".6.";
+$inrow['airIRRP500Series']['group']['status']['MaxReturnAirTempMetric']               = ".NA.";
+$inrow['airIRRP500Series']['group']['status']['MinReturnAirTempMetric']               = ".NA.";
+
+$inrow['airIRRP500Series']['group']['setpoints']['index']                             = "airIRRP500GroupSetpoints";
+$inrow['airIRRP500Series']['group']['setpoints']['oid']                               = ".1.3.6.1.4.1.318.1.1.13.3.3.2.1.2";
+$inrow['airIRRP500Series']['group']['setpoints']['prefix']                            = "airIRRP500GroupSetpoints";
+$inrow['airIRRP500Series']['group']['setpoints']['CoolMetric']                        = ".2.";
+$inrow['airIRRP500Series']['group']['setpoints']['SupplyAirMetric']                   = ".4.";
+$inrow['airIRRP500Series']['group']['setpoints']['CoolSetpointMetric']                = ".NA.";
+$inrow['airIRRP500Series']['group']['setpoints']['SupplyAirSetpointMetric']           = ".NA.";
+ 
+$inrow['airIRRP500Series']['unit']['status']['index']                                 = "airIRRP500UnitStatus";
+$inrow['airIRRP500Series']['unit']['status']['oid']                                   = ".1.3.6.1.4.1.318.1.1.13.3.3.2.2.2";
+$inrow['airIRRP500Series']['unit']['status']['prefix']                                = "airIRRP500UnitStatus";
+$inrow['airIRRP500Series']['unit']['status']['oid']                                   = ".1.3.6.1.4.1.318.1.1.13.3.3.2.2.2";
+$inrow['airIRRP500Series']['unit']['status']['CoolOutput']                            = ".14.";
+$inrow['airIRRP500Series']['unit']['status']['CoolDemand']                            = ".13.";
+$inrow['airIRRP500Series']['unit']['status']['AirFlowUS']                             = ".10.";
+$inrow['airIRRP500Series']['unit']['status']['RackInletTempMetric']                   = ".NA.";
+$inrow['airIRRP500Series']['unit']['status']['SupplyAirTempMetric']                   = ".5.";
+$inrow['airIRRP500Series']['unit']['status']['ReturnAirTempMetric']                   = ".7.";
+$inrow['airIRRP500Series']['unit']['status']['SuctionTempMetric']                     = ".NA.";
+$inrow['airIRRP500Series']['unit']['status']['FilterDPMetric']                        = ".30.";
+$inrow['airIRRP500Series']['unit']['status']['ContainmtDPMetric']                     = ".32.";
+$inrow['airIRRP500Series']['unit']['status']['EnteringFluidTemperatureMetric']        = ".40.";
+$inrow['airIRRP500Series']['unit']['status']['LeavingFluidTemperatureMetric']         = ".42.";
+$inrow['airIRRP500Series']['unit']['status']['CompressorDriveHeatSinkTempMetric']     = ".NA.";
+$inrow['airIRRP500Series']['unit']['status']['CompressorDriveControlCardTempMetric']  = ".NA.";
+$inrow['airIRRP500Series']['unit']['status']['SuctionPressureMetric']                 = ".NA.";
+$inrow['airIRRP500Series']['unit']['status']['DischargePressureMetric']               = ".NA.";
+
+$inrow['airIRRP500Series']['unit']['thresholds']['index']                             = "airIRRP500UnitThresholds";
+
+
+// Array for IRSC 500 Series
+$inrow['airIRSC100Series']['group']['status']['index']                                = "airIRSCGroupStatus";
+$inrow['airIRSC100Series']['group']['status']['oid']                                  = ".1.3.6.1.4.1.318.1.1.13.3.4.2.1";
+$inrow['airIRSC100Series']['group']['status']['prefix']                               = "airIRSCGroupStatus";
+$inrow['airIRSC100Series']['group']['status']['CoolOutput']                           = ".1.";
+$inrow['airIRSC100Series']['group']['status']['CoolDemand']                           = ".2.";
+$inrow['airIRSC100Series']['group']['status']['AirFlowUS']                            = ".3.";
+$inrow['airIRSC100Series']['group']['status']['MaxRackInletTempMetric']               = ".6.";
+$inrow['airIRSC100Series']['group']['status']['MinRackInletTempMetric']               = ".8.";
+$inrow['airIRSC100Series']['group']['status']['MaxReturnAirTempMetric']               = ".10.";
+$inrow['airIRSC100Series']['group']['status']['MinReturnAirTempMetric']               = ".12.";
+
+$inrow['airIRSC100Series']['group']['setpoints']['index']                             = "airIRSCGroupSetpoints";
+$inrow['airIRSC100Series']['group']['setpoints']['oid']                               = ".1.3.6.1.4.1.318.1.1.13.3.4.2.2";
+$inrow['airIRSC100Series']['group']['setpoints']['prefix']                            = "airIRSCGroupSetpts";
+$inrow['airIRSC100Series']['group']['setpoints']['CoolMetric']                        = ".NA.";
+$inrow['airIRSC100Series']['group']['setpoints']['SupplyAirMetric']                   = ".NA.";
+$inrow['airIRSC100Series']['group']['setpoints']['CoolSetpointMetric']                = ".2.";
+$inrow['airIRSC100Series']['group']['setpoints']['SupplyAirSetpointMetric']           = ".7.";
+ 
+$inrow['airIRSC100Series']['unit']['status']['index']                                 = "airIRSCUnitStatus";
+$inrow['airIRSC100Series']['unit']['status']['oid']                                   = ".1.3.6.1.4.1.318.1.1.13.3.4.1.2";
+$inrow['airIRSC100Series']['unit']['status']['prefix']                                = "airIRSCUnitStatus";
+$inrow['airIRSC100Series']['unit']['status']['CoolOutput']                            = ".14.";
+$inrow['airIRSC100Series']['unit']['status']['CoolDemand']                            = ".13.";
+$inrow['airIRSC100Series']['unit']['status']['AirFlowUS']                             = ".10.";
+$inrow['airIRSC100Series']['unit']['status']['RackInletTempMetric']                   = ".NA.";
+$inrow['airIRSC100Series']['unit']['status']['SupplyAirTempMetric']                   = ".5.";
+$inrow['airIRSC100Series']['unit']['status']['ReturnAirTempMetric']                   = ".7.";
+$inrow['airIRSC100Series']['unit']['status']['SuctionTempMetric']                     = ".NA.";
+$inrow['airIRSC100Series']['unit']['status']['FilterDPMetric']                        = ".30.";
+$inrow['airIRSC100Series']['unit']['status']['ContainmtDPMetric']                     = ".32.";
+$inrow['airIRSC100Series']['unit']['status']['EnteringFluidTemperatureMetric']        = ".40.";
+$inrow['airIRSC100Series']['unit']['status']['LeavingFluidTemperatureMetric']         = ".42.";
+$inrow['airIRSC100Series']['unit']['status']['CompressorDriveHeatSinkTempMetric']     = ".NA.";
+$inrow['airIRSC100Series']['unit']['status']['CompressorDriveControlCardTempMetric']  = ".NA.";
+$inrow['airIRSC100Series']['unit']['status']['SuctionPressureMetric']                 = ".NA.";
+$inrow['airIRSC100Series']['unit']['status']['DischargePressureMetric']               = ".NA.";
+
+$inrow['airIRSC100Series']['unit']['thresholds']['index']                             = "airIRSCUnitThresholds";
+
+
+// Array for IRRD 100 Series
+$inrow['airIRRD100Series']['group']['status']['index']                                = "airIRG2GroupStatus";
+$inrow['airIRRD100Series']['group']['status']['oid']                                  = "1.3.6.1.4.1.318.1.1.13.4.2.1";
+$inrow['airIRRD100Series']['group']['status']['prefix']                               = "airIRG2GroupStatus";
+$inrow['airIRRD100Series']['group']['status']['CoolOutput']                           = ".1.";
+$inrow['airIRRD100Series']['group']['status']['CoolDemand']                           = ".2.";
+$inrow['airIRRD100Series']['group']['status']['AirFlowUS']                            = ".3.";
+$inrow['airIRRD100Series']['group']['status']['MaxRackInletTempMetric']               = ".6.";
+$inrow['airIRRD100Series']['group']['status']['MinRackInletTempMetric']               = ".8.";
+$inrow['airIRRD100Series']['group']['status']['MaxReturnAirTempMetric']               = ".10.";
+$inrow['airIRRD100Series']['group']['status']['MinReturnAirTempMetric']               = ".12.";
+
+$inrow['airIRRD100Series']['group']['setpoints']['index']                             = "airIRG2GroupSetpoints";
+$inrow['airIRRD100Series']['group']['setpoints']['oid']                               = "1.3.6.1.4.1.318.1.1.13.4.2.2";
+$inrow['airIRRD100Series']['group']['setpoints']['prefix']                            = "airIRG2GroupSetpnts";
+$inrow['airIRRD100Series']['group']['setpoints']['CoolMetric']                        = ".NA.";
+$inrow['airIRRD100Series']['group']['setpoints']['SupplyAirMetric']                   = ".NA.";
+$inrow['airIRRD100Series']['group']['setpoints']['CoolSetpointMetric']                = ".2.";
+$inrow['airIRRD100Series']['group']['setpoints']['SupplyAirSetpointMetric']           = ".7.";
+ 
+$inrow['airIRRD100Series']['unit']['status']['index']                                 = "airIRG2RDT2Status";
+$inrow['airIRRD100Series']['unit']['status']['oid']                                   = "1.3.6.1.4.1.318.1.1.13.4.5.2.1";
+$inrow['airIRRD100Series']['unit']['status']['prefix']                                = "airIRG2RDT2Status";
+$inrow['airIRRD100Series']['unit']['status']['CoolOutput']                            = ".2.";
+$inrow['airIRRD100Series']['unit']['status']['CoolDemand']                            = ".3.";
+$inrow['airIRRD100Series']['unit']['status']['AirFlowUS']                             = ".4.";
+$inrow['airIRRD100Series']['unit']['status']['RackInletTempMetric']                   = ".7.";
+$inrow['airIRRD100Series']['unit']['status']['SupplyAirTempMetric']                   = ".9.";
+$inrow['airIRRD100Series']['unit']['status']['ReturnAirTempMetric']                   = ".11.";
+$inrow['airIRRD100Series']['unit']['status']['SuctionTempMetric']                     = ".13.";
+$inrow['airIRRD100Series']['unit']['status']['FilterDPMetric']                        = ".17.";
+$inrow['airIRRD100Series']['unit']['status']['ContainmtDPMetric']                     = ".NA.";
+$inrow['airIRRD100Series']['unit']['status']['EnteringFluidTemperatureMetric']        = ".NA.";
+$inrow['airIRRD100Series']['unit']['status']['LeavingFluidTemperatureMetric']         = ".NA.";
+$inrow['airIRRD100Series']['unit']['status']['CompressorDriveHeatSinkTempMetric']     = ".NA.";
+$inrow['airIRRD100Series']['unit']['status']['CompressorDriveControlCardTempMetric']  = ".NA.";
+$inrow['airIRRD100Series']['unit']['status']['SuctionPressureMetric']                 = ".19.";
+$inrow['airIRRD100Series']['unit']['status']['DischargePressureMetric']               = ".21.";
+
+$inrow['airIRRD100Series']['unit']['thresholds']['index']                             = "airIRG2RDT2Thresholds";
+
 $type = snmp_get($device, "sysObjectID.0", "-OUqsv", "PowerNet-MIB"); // Get the APC InRow model
 
 if (array_key_exists($type, $inrow)) // Check if the device is a supported APC InRow model as specifed above
@@ -1348,10 +1519,10 @@
 
   foreach ($cache['apc'] as $index => $entry)
   {
-    // airIRxxGroupStatusCoolOutput.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.1.x]
+    // airIRxxGroupStatusCoolOutput.x
     $descr = "Group Cooling Output";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".1." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "CoolOutput";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['CoolOutput'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "CoolOutput";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1359,10 +1530,10 @@
       discover_sensor($valid['sensor'], 'power', $device, $oid, "$name.$index", 'apc', $descr, 100, $value);
     }
 
-    // airIRxxGroupStatusCoolDemand.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.2.x]
+    // airIRxxGroupStatusCoolDemand.x
     $descr = "Group Cooling Demand";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".2." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "CoolDemand";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['CoolDemand'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "CoolDemand";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1370,10 +1541,10 @@
       discover_sensor($valid['sensor'], 'power', $device, $oid, "$name.$index", 'apc', $descr, 100, $value);
     }
 
-    // airIRxxGroupStatusAirFlowUS.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.3.x]
+    // airIRxxGroupStatusAirFlowUS.x
     $descr = "Group Air Flow";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".3." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "AirFlowUS";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['AirFlowUS'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "AirFlowUS";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1381,10 +1552,10 @@
       discover_sensor($valid['sensor'], 'airflow', $device, $oid, "$name.$index", 'apc', $descr, 1, $value);
     }
 
-    // airIRxxGroupStatusMaxRackInletTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.6.x]
+    // airIRxxGroupStatusMaxRackInletTempMetric.x
     $descr = "Group Maximum Rack Inlet Temperature";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".6." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "MaxRackInletTempMetric";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['MaxRackInletTempMetric'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "MaxRackInletTempMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1392,10 +1563,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
 
-    // airIRxxGroupStatusMinRackInletTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.8.x]
+    // airIRxxGroupStatusMinRackInletTempMetric.x
     $descr = "Group Minimum Rack Inlet Temperature";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".8." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "MinRackInletTempMetric";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['MinRackInletTempMetric'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "MinRackInletTempMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1403,10 +1574,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
 
-    // airIRxxGroupStatusMaxReturnAirTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.10.x]
+    // airIRxxGroupStatusMaxReturnAirTempMetric.x
     $descr = "Group Maximum Return Air Temperature";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".10." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "MaxReturnAirTempMetric";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['MaxReturnAirTempMetric'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "MaxReturnAirTempMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1414,10 +1585,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
 
-    // airIRxxGroupStatusMinReturnAirTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.12.x]
+    // airIRxxGroupStatusMinReturnAirTempMetric.x
     $descr = "Group Minimum Return Air Temperature";
-    $oid   = $inrow[$type]['group']['status']['oid'] . ".12." . $index;
-    $name  = $inrow[$type]['group']['status']['index'] . "MinReturnAirTempMetric";
+    $oid   = $inrow[$type]['group']['status']['oid'] . $inrow[$type]['group']['status']['MinReturnAirTempMetric'] . $index;
+    $name  = $inrow[$type]['group']['status']['prefix'] . "MinReturnAirTempMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1425,10 +1596,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
 
-    // airIRxxGroupSetpointsCoolMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.x.2.x]
+    // airIRxxGroupSetpointsCoolMetric.x
     $descr = "Group Cooling Setpoint";
-    $oid   = $inrow[$type]['group']['setpoints']['oid'] . ".2." . $index;
-    $name  = $inrow[$type]['group']['setpoints']['index'] . "CoolMetric";
+    $oid   = $inrow[$type]['group']['setpoints']['oid'] . $inrow[$type]['group']['setpoints']['CoolMetric'] . $index;
+    $name  = $inrow[$type]['group']['setpoints']['prefix'] . "CoolMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1436,10 +1607,21 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
 
-    // airIRxxGroupSetpointsSupplyAirMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.x.4.x]
+    // airIRxxGroupSetpointsCoolSetpointMetric.x
+    $descr = "Group Cooling Setpoint";
+    $oid   = $inrow[$type]['group']['setpoints']['oid'] . $inrow[$type]['group']['setpoints']['CoolSetpointMetric'] . $index;
+    $name  = $inrow[$type]['group']['setpoints']['prefix'] . "CoolSetpointMetric";
+    $value = $entry[$name];
+
+    if (is_numeric($value))
+    {
+      discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
+    }
+
+    // airIRxxGroupSetpointsSupplyAirMetric.x
     $descr = "Group Supply Setpoint";
-    $oid   = $inrow[$type]['group']['setpoints']['oid'] . ".4." . $index;
-    $name  = $inrow[$type]['group']['setpoints']['index'] . "SupplyAirMetric";
+    $oid   = $inrow[$type]['group']['setpoints']['oid'] . $inrow[$type]['group']['setpoints']['SupplyAirMetric'] . $index;
+    $name  = $inrow[$type]['group']['setpoints']['prefix'] . "SupplyAirMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1446,6 +1628,17 @@
     {
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
+
+    // airIRxxGroupSetpointsSupplyAirSetpointMetric.x
+    $descr = "Group Supply Setpoint";
+    $oid   = $inrow[$type]['group']['setpoints']['oid'] . $inrow[$type]['group']['setpoints']['SupplyAirSetpointMetric'] . $index;
+    $name  = $inrow[$type]['group']['setpoints']['prefix'] . "SupplyAirSetpointMetric";
+    $value = $entry[$name];
+
+    if (is_numeric($value))
+    {
+      discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
+    }
   }
 
   echo(' ');
@@ -1461,10 +1654,10 @@
     // If there are multiple units found, use the unit number as description prefix
     $unit = count($cache['apc']) != 1 ? "Unit " . ($index + 1) : "Unit";
 
-    // airIRxxUnitStatusCoolOutput.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.2.x]
+    // airIRxxUnitStatusCoolOutput.x
     $descr = $unit . " Cooling Output";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".2." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "CoolOutput";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['CoolOutput'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "CoolOutput";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1472,10 +1665,10 @@
       discover_sensor($valid['sensor'], 'power', $device, $oid, "$name.$index", 'apc', $descr, 100, $value);
     }
 
-    // airIRxxUnitStatusCoolDemand.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.3.x]
+    // airIRxxUnitStatusCoolDemand.x
     $descr = $unit . " Cooling Demand";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".3." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "CoolDemand";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['CoolDemand'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "CoolDemand";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1483,10 +1676,10 @@
       discover_sensor($valid['sensor'], 'power', $device, $oid, "$name.$index", 'apc', $descr, 100, $value);
     }
 
-    // airIRxxUnitStatusAirFlowUS.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.4.x]
+    // airIRxxUnitStatusAirFlowUS.x
     $descr = $unit . " Air Flow";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".4." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "AirFlowUS";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['AirFlowUS'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "AirFlowUS";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1494,10 +1687,10 @@
       discover_sensor($valid['sensor'], 'airflow', $device, $oid, "$name.$index", 'apc', $descr, 1, $value);
     }
 
-    // airIRxxUnitStatusRackInletTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.7.x]
+    // airIRxxUnitStatusRackInletTempMetric.x
     $descr = $unit . " Rack Inlet Temperature";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".7." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "RackInletTempMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['RackInletTempMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "RackInletTempMetric";
     $value = $entry[$name];
     $limit = array('limit_high' => $entry[$inrow[$type]['unit']['thresholds']['index'] . 'RackInletHighTempMetric'] / 10);
 
@@ -1506,10 +1699,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value, $limit);
     }
 
-    // airIRxxUnitStatusSupplyAirTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.9.x]
+    // airIRxxUnitStatusSupplyAirTempMetric.x
     $descr = $unit . " Supply Air Temperature";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".9." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "SupplyAirTempMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['SupplyAirTempMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "SupplyAirTempMetric";
     $value = $entry[$name];
     $limit = array('limit_high' => $entry[$inrow[$type]['unit']['thresholds']['index'] . 'SupplyAirHighTempMetric'] / 10);
 
@@ -1518,10 +1711,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value, $limit);
     }
 
-    // airIRxxUnitStatusReturnAirTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.11.x]
+    // airIRxxUnitStatusReturnAirTempMetric.x
     $descr = $unit . " Return Air Temperature";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".11." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "ReturnAirTempMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['ReturnAirTempMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "ReturnAirTempMetric";
     $value = $entry[$name];
     $limit = array('limit_high' => $entry[$inrow[$type]['unit']['thresholds']['index'] . 'ReturnAirHighTempMetric'] / 10);
 
@@ -1530,10 +1723,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value, $limit);
     }
 
-    // airIRxxUnitStatusSuctionTempMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.13.x]
+    // airIRxxUnitStatusSuctionTempMetric.x
     $descr = $unit . " Suction Temperature";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".13." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "SuctionTempMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['SuctionTempMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "SuctionTempMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1541,10 +1734,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
 
-    // airIRxxUnitStatusFilterDPMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.13.x]
+    // airIRxxUnitStatusFilterDPMetric.x
     $descr = $unit . " Air Filter Pressure";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".13." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "FilterDPMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['FilterDPMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "FilterDPMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1552,10 +1745,10 @@
       discover_sensor($valid['sensor'], 'pressure', $device, $oid, "$name.$index", 'apc', $descr, 1, $value);
     }
 
-    // airIRxxUnitStatusContainmtDPMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.15.x]
+    // airIRxxUnitStatusContainmtDPMetric.x
     $descr = $unit . " Containment Pressure";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".15." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "ContainmtDPMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['ContainmtDPMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "ContainmtDPMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1563,10 +1756,10 @@
       discover_sensor($valid['sensor'], 'pressure', $device, $oid, "$name.$index", 'apc', $descr, 1, $value);
     }
 
-    // airIRxxUnitStatusEnteringFluidTemperatureMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.24.x]
+    // airIRxxUnitStatusEnteringFluidTemperatureMetric.x
     $descr = $unit . " Entering Fluid Temperature";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".24." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "EnteringFluidTemperatureMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['EnteringFluidTemperatureMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "EnteringFluidTemperatureMetric";
     $value = $entry[$name];
     $limit = array('limit_high' => $entry[$inrow[$type]['unit']['thresholds']['index'] . 'EnteringFluidHighTempMetric'] / 10);
 
@@ -1575,10 +1768,10 @@
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value, $limit);
     }
 
-    // airIRxxUnitStatusLeavingFluidTemperatureMetric.x [.1.3.6.1.4.1.318.1.1.13.x.x.x.26.x]
+    // airIRxxUnitStatusLeavingFluidTemperatureMetric.x
     $descr = $unit . " Leaving Fluid Temperature";
-    $oid   = $inrow[$type]['unit']['status']['oid'] . ".26." . $index;
-    $name  = $inrow[$type]['unit']['status']['index'] . "LeavingFluidTemperatureMetric";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['LeavingFluidTemperatureMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "LeavingFluidTemperatureMetric";
     $value = $entry[$name];
 
     if (is_numeric($value))
@@ -1585,6 +1778,50 @@
     {
       discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
     }
+
+    // airIRxxUnitStatusCompressorDriveHeatSinkTempMetric.x
+    $descr = $unit . " Compressor Heat Sink Temperature";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['CompressorDriveHeatSinkTempMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "CompressorDriveHeatSinkTempMetric";
+    $value = $entry[$name];
+
+    if (is_numeric($value))
+    {
+      discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
+    }
+
+    // airIRxxUnitStatusCompressorDriveControlCardTempMetric.x
+    $descr = $unit . " Compressor Ctl Card Temperature";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['CompressorDriveControlCardTempMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "CompressorDriveControlCardTempMetric";
+    $value = $entry[$name];
+
+    if (is_numeric($value))
+    {
+      discover_sensor($valid['sensor'], 'temperature', $device, $oid, "$name.$index", 'apc', $descr, 0.1, $value);
+    }
+
+    // airIRxxUnitStatusSuctionPressureMetric.x
+    $descr = $unit . " Suction Pressure";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['SuctionPressureMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "SuctionPressureMetric";
+    $value = $entry[$name];
+
+    if (is_numeric($value))
+    {
+      discover_sensor($valid['sensor'], 'pressure', $device, $oid, "$name.$index", 'apc', $descr, 1, $value);
+    }
+
+    // airIRxxUnitStatusDischargePressureMetric.x
+    $descr = $unit . " Discharge Pressure";
+    $oid   = $inrow[$type]['unit']['status']['oid'] . $inrow[$type]['unit']['status']['DischargePressureMetric'] . $index;
+    $name  = $inrow[$type]['unit']['status']['prefix'] . "DischargePressureMetric";
+    $value = $entry[$name];
+
+    if (is_numeric($value))
+    {
+      discover_sensor($valid['sensor'], 'pressure', $device, $oid, "$name.$index", 'apc', $descr, 1, $value);
+    }
   }
 }
 
