meta-facebook: meta-yosemite4: Adjust the fan numbering.

Summary:
- Adjust the fan numbering to correspond with the chassis labels.
- Thermal team tested and updated airflow calculation as below formula:
  Airflow = [(Sum of all fan speed reading)/24 *0.0725] – 14.5

Change-Id: Id63c5d2b0684b3eda62425be48f37dcafbffe30f
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/fans/phosphor-pid-control/config.json b/meta-facebook/meta-yosemite4/recipes-phosphor/fans/phosphor-pid-control/config.json
index 26086e8..e0c2586 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/fans/phosphor-pid-control/config.json
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/fans/phosphor-pid-control/config.json
@@ -2674,7 +2674,7 @@
             "timeout": 0,
             "ignoreDbusMinMax": true
         },
-    
+
         {
             "name": "FANBOARD0_FAN0_TACH_IL",
             "type": "fan",
@@ -2712,114 +2712,6 @@
             "ignoreDbusMinMax": true
         },
         {
-            "name": "FANBOARD0_FAN2_TACH_IL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN2_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN2_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN2_TACH_OL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN2_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN2_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN3_TACH_IL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN3_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN3_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN3_TACH_OL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN3_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN3_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN4_TACH_IL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN4_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN4_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN4_TACH_OL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN4_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN4_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN5_TACH_IL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN5_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN5_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD0_FAN5_TACH_OL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN5_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN5_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD1_FAN0_TACH_IL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN0_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN0_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD1_FAN0_TACH_OL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN0_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN0_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD1_FAN1_TACH_IL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN1_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN1_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
-            "name": "FANBOARD1_FAN1_TACH_OL",
-            "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN1_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN1_PWM",
-            "min": 0,
-            "max": 255,
-            "ignoreDbusMinMax": true
-        },
-        {
             "name": "FANBOARD1_FAN2_TACH_IL",
             "type": "fan",
             "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN2_TACH_IL",
@@ -2856,37 +2748,145 @@
             "ignoreDbusMinMax": true
         },
         {
-            "name": "FANBOARD1_FAN4_TACH_IL",
+            "name": "FANBOARD0_FAN4_TACH_IL",
             "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN4_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN4_PWM",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN4_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN4_PWM",
             "min": 0,
             "max": 255,
             "ignoreDbusMinMax": true
         },
         {
-            "name": "FANBOARD1_FAN4_TACH_OL",
+            "name": "FANBOARD0_FAN4_TACH_OL",
             "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN4_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN4_PWM",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN4_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN4_PWM",
             "min": 0,
             "max": 255,
             "ignoreDbusMinMax": true
         },
         {
-            "name": "FANBOARD1_FAN5_TACH_IL",
+            "name": "FANBOARD0_FAN5_TACH_IL",
             "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN5_TACH_IL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN5_PWM",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN5_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN5_PWM",
             "min": 0,
             "max": 255,
             "ignoreDbusMinMax": true
         },
         {
-            "name": "FANBOARD1_FAN5_TACH_OL",
+            "name": "FANBOARD0_FAN5_TACH_OL",
             "type": "fan",
-            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN5_TACH_OL",
-            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN5_PWM",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN5_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN5_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN6_TACH_IL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN6_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN6_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN6_TACH_OL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN6_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN6_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN7_TACH_IL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD7_FAN1_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD7_FAN1_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN7_TACH_OL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN7_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN7_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD0_FAN8_TACH_IL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN8_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN8_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD0_FAN8_TACH_OL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN8_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN8_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD0_FAN9_TACH_IL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN9_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN9_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD0_FAN9_TACH_OL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN9_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD0_FAN9_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN10_TACH_IL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN10_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN10_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN10_TACH_OL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN10_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN10_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN11_TACH_IL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN11_TACH_IL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN11_PWM",
+            "min": 0,
+            "max": 255,
+            "ignoreDbusMinMax": true
+        },
+        {
+            "name": "FANBOARD1_FAN11_TACH_OL",
+            "type": "fan",
+            "readPath": "/xyz/openbmc_project/sensors/fan_tach/FANBOARD1_FAN11_TACH_OL",
+            "writePath": "/xyz/openbmc_project/control/fanpwm/FANBOARD1_FAN11_PWM",
             "min": 0,
             "max": 255,
             "ignoreDbusMinMax": true
@@ -2910,26 +2910,26 @@
                         "FANBOARD0_FAN0_TACH_OL",
                         "FANBOARD0_FAN1_TACH_IL",
                         "FANBOARD0_FAN1_TACH_OL",
-                        "FANBOARD0_FAN2_TACH_IL",
-                        "FANBOARD0_FAN2_TACH_OL",
-                        "FANBOARD0_FAN3_TACH_IL",
-                        "FANBOARD0_FAN3_TACH_OL",
-                        "FANBOARD0_FAN4_TACH_IL",
-                        "FANBOARD0_FAN4_TACH_OL",
-                        "FANBOARD0_FAN5_TACH_IL",
-                        "FANBOARD0_FAN5_TACH_OL",
-                        "FANBOARD1_FAN0_TACH_IL",
-                        "FANBOARD1_FAN0_TACH_OL",
-                        "FANBOARD1_FAN1_TACH_IL",
-                        "FANBOARD1_FAN1_TACH_OL",
                         "FANBOARD1_FAN2_TACH_IL",
                         "FANBOARD1_FAN2_TACH_OL",
                         "FANBOARD1_FAN3_TACH_IL",
                         "FANBOARD1_FAN3_TACH_OL",
-                        "FANBOARD1_FAN4_TACH_IL",
-                        "FANBOARD1_FAN4_TACH_OL",
-                        "FANBOARD1_FAN5_TACH_IL",
-                        "FANBOARD1_FAN5_TACH_OL"
+                        "FANBOARD0_FAN4_TACH_IL",
+                        "FANBOARD0_FAN4_TACH_OL",
+                        "FANBOARD0_FAN5_TACH_IL",
+                        "FANBOARD0_FAN5_TACH_OL",
+                        "FANBOARD1_FAN6_TACH_IL",
+                        "FANBOARD1_FAN6_TACH_OL",
+                        "FANBOARD1_FAN7_TACH_IL",
+                        "FANBOARD1_FAN7_TACH_OL",
+                        "FANBOARD0_FAN8_TACH_IL",
+                        "FANBOARD0_FAN8_TACH_OL",
+                        "FANBOARD0_FAN9_TACH_IL",
+                        "FANBOARD0_FAN9_TACH_OL",
+                        "FANBOARD1_FAN10_TACH_IL",
+                        "FANBOARD1_FAN10_TACH_OL",
+                        "FANBOARD1_FAN11_TACH_IL",
+                        "FANBOARD1_FAN11_TACH_OL"
                     ],
                     "setpoint": 0.0,
                     "pid": {
@@ -3912,7 +3912,6 @@
                         "WF_E1S_TEMP_C_20_62",
                         "WF_E1S_TEMP_C_20_72",
                         "WF_E1S_TEMP_C_20_82"
-
                     ],
                     "setpoint": 68.0,
                     "pid": {
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config.json b/meta-facebook/meta-yosemite4/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config.json
index bf77e02..5b461fd 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config.json
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config.json
@@ -1,398 +1,481 @@
 [
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD0_48V_FAN0_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD0_48V_FAN0_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_FAN0_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
-    },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD0_48V_FAN1_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_FAN0_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_FAN1_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD0_48V_FAN2_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD0_48V_FAN1_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_FAN2_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
-    },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD0_48V_FAN3_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_FAN1_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_FAN3_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD0_48V_FAN4_PWR_W",
-      "SensorType": "power"
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD1_48V_FAN2_PWR_W",
+            "SensorType": "power"
+        },
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_FAN2_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD1_48V_FAN3_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_FAN4_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_FAN3_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD0_48V_FAN5_PWR_W",
-      "SensorType": "power"
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD0_48V_FAN4_PWR_W",
+            "SensorType": "power"
+        },
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_FAN4_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD0_48V_FAN5_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD0_ADC_48V_FAN5_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_FAN5_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD1_48V_FAN0_PWR_W",
-      "SensorType": "power"
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD1_48V_FAN6_PWR_W",
+            "SensorType": "power"
+        },
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_FAN6_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD1_48V_FAN7_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_FAN0_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_FAN7_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD1_48V_FAN1_PWR_W",
-      "SensorType": "power"
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD0_48V_FAN8_PWR_W",
+            "SensorType": "power"
+        },
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_FAN8_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD0_48V_FAN9_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_FAN1_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD0_ADC_48V_FAN9_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD1_48V_FAN2_PWR_W",
-      "SensorType": "power"
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD1_48V_FAN10_PWR_W",
+            "SensorType": "power"
+        },
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_FAN10_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "Virtual_FANBOARD1_48V_FAN11_PWR_W",
+            "SensorType": "power"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_FAN2_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "fan_vol",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
+                        "SensorType": "voltage"
+                    }
+                },
+                {
+                    "ParamName": "fan_curr",
+                    "Desc": {
+                        "Name": "FANBOARD1_ADC_48V_FAN11_CURR_A",
+                        "SensorType": "voltage"
+                    }
+                }
+            ]
+        },
+        "Expression": "fan_vol * fan_curr"
     },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD1_48V_FAN3_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+    {
+        "Desc": {
+            "Name": "SYSTEM_AIRFLOW",
+            "SensorType": "airflow"
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_FAN3_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
-    },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD1_48V_FAN4_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
+        "Params": {
+            "DbusParam": [
+                {
+                    "ParamName": "P1",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN0_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P2",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN0_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P3",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN1_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P4",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN1_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P5",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN2_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P6",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN2_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P7",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN3_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P8",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN3_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P9",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN4_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P10",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN4_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P11",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN5_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P12",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN5_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P13",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN6_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P14",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN6_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P15",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN7_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P16",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN7_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P17",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN8_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P18",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN8_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P19",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN9_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P20",
+                    "Desc": {
+                        "Name": "FANBOARD0_FAN9_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P21",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN10_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P22",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN10_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P23",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN11_TACH_IL",
+                        "SensorType": "fan_tach"
+                    }
+                },
+                {
+                    "ParamName": "P24",
+                    "Desc": {
+                        "Name": "FANBOARD1_FAN11_TACH_OL",
+                        "SensorType": "fan_tach"
+                    }
+                }
+            ]
         },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_FAN4_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
-    },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "Virtual_FANBOARD1_48V_FAN5_PWR_W",
-      "SensorType": "power"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "fan_vol",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_AUX_VOLT_V",
-            "SensorType": "voltage"
-          }
-        },
-        {
-          "ParamName": "fan_curr",
-          "Desc": {
-            "Name": "FANBOARD1_ADC_48V_FAN5_CURR_A",
-            "SensorType": "voltage"
-          }
-        }
-      ]
-    },
-    "Expression": "fan_vol * fan_curr"
-  },
-  {
-    "Desc": {
-      "Name": "SYSTEM_AIRFLOW",
-      "SensorType": "airflow"
-    },
-    "Params": {
-      "DbusParam": [
-        {
-          "ParamName": "P1",
-          "Desc": {
-            "Name": "FANBOARD0_FAN0_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P2",
-          "Desc": {
-            "Name": "FANBOARD0_FAN1_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P3",
-          "Desc": {
-            "Name": "FANBOARD0_FAN2_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P4",
-          "Desc": {
-            "Name": "FANBOARD0_FAN3_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P5",
-          "Desc": {
-            "Name": "FANBOARD0_FAN4_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P6",
-          "Desc": {
-            "Name": "FANBOARD0_FAN5_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P7",
-          "Desc": {
-            "Name": "FANBOARD1_FAN0_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P8",
-          "Desc": {
-            "Name": "FANBOARD1_FAN1_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P9",
-          "Desc": {
-            "Name": "FANBOARD1_FAN2_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P10",
-          "Desc": {
-            "Name": "FANBOARD1_FAN3_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P11",
-          "Desc": {
-            "Name": "FANBOARD1_FAN4_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        },
-        {
-          "ParamName": "P12",
-          "Desc": {
-            "Name": "FANBOARD1_FAN5_TACH_IL",
-            "SensorType": "fan_tach"
-          }
-        }
-      ]
-    },
-    "Expression": "(((P1 + P2 + P3 + P4 + P5 + P6 + P7 + P8 + P9 + P10 + P11 + P12) / 12) * 0.0687) - 8.0087"
-  }
+        "Expression": "(((P1 + P2 + P3 + P4 + P5 + P6 + P7 + P8 + P9 + P10 + P11 + P12 + P13 + P14 + P15 + P16 + P17 + P18 + P19 + P20 + P21 + P22 + P23 + P24) / 24) * 0.0725) - 14.5"
+    }
 ]
-