Hi 

For me the scale read by the supermicro voltage was unreliable, so i have change it to be 2 separately entries.
Index: includes/definitions/mibs/supermicro.inc.php
===================================================================
--- includes/definitions/mibs/supermicro.inc.php (revision 10173)
+++ includes/definitions/mibs/supermicro.inc.php (working copy)
@@ -29,6 +29,8 @@
   'SUPERMICRO-HEALTH-MIB::smHealthMonitorName.1' => '/.+/'
 ];
 
+
+// Tempeture and fanspeed
 $config['mibs'][$mib]['sensor'][] = array(
   'table'               => 'smHealthMonitorTable',
   'oid'                 => 'smHealthMonitorReading',
@@ -35,11 +37,12 @@
   'oid_descr'           => 'smHealthMonitorName',
   'descr_transform'     => [ 'action' => 'ireplace', 'from' => [ 'Temperature', 'Temp', 'Voltage', ' Fan Speed', ' Speed' ], 'to' => '' ],
   'oid_class'           => 'smHealthMonitorType',
-  'map_class'           => [ 0 => 'fanspeed', 1 => 'voltage', 2 => 'temperature' ],
+  'map_class'           => [ 0 => 'fanspeed', 2 => 'temperature' ],
   // This table have unit oid smHealthMonitorDivisor, but it always 0
   'oid_scale'           => 'smHealthMonitorReadingUnit',
   'map_scale'           => [ 'C' => 1, 'mV' => 0.001, 'RPM' => 1 ],
   'oid_num'             => '.1.3.6.1.4.1.10876.2.1.1.1.1.4',
+  'min'                 => 0,
   'limit_scale'         => 'scale', // limits scale same as main scale
   'oid_limit_high'      => 'smHealthMonitorHighLimit',
   'oid_limit_low'       => 'smHealthMonitorLowLimit',
@@ -47,6 +50,31 @@
   'rename_rrd'          => 'supermicro-%index%'
 );
 
+// voltage
+
+$config['mibs'][$mib]['sensor'][] = array(
+  'table'               => 'smHealthMonitorTable',
+  'oid'                 => 'smHealthMonitorReading',
+  'oid_descr'           => 'smHealthMonitorName',
+  'descr_transform'     => [ 'action' => 'ireplace', 'from' => [ 'Temperature', 'Temp', 'Voltage', ' Fan Speed', ' Speed' ], 'to' => '' ],
+  'oid_class'           => 'smHealthMonitorType',
+  'map_class'           => [  1 => 'voltage' ],
+  // This table have unit oid smHealthMonitorDivisor, but it always 0
+  //'oid_scale'           => 'smHealthMonitorReadingUnit',
+  //'map_scale'           => [ 'C' => 1, 'mV' => 0.001,  'RPM' => 1 ],
+  'limit_scale'         => 'scale', // limits scale same as main scale
+  'scale'               =>  0.001,
+  'oid_num'             => '.1.3.6.1.4.1.10876.2.1.1.1.1.4',
+  'min'                 => 0,
+  'max'                 => 250000,
+  'oid_limit_high'      => 'smHealthMonitorHighLimit',
+  'oid_limit_low'       => 'smHealthMonitorLowLimit',
+  'test'                => [ 'field' => 'smHealthMonitorReadingUnit', 'operator' => 'notin', 'value' => [ 'ThermalText', 'N/A' ] ],
+  'rename_rrd'          => 'supermicro-%index%'
+);

This fix the problem i had with scale changing for voltage.

--
Torstein Eide
Torsteine@gmail.com