prettier: re-format

Prettier is enabled in openbmc-build-scripts on Markdown, JSON, and YAML
files to have consistent formatting for these file types.  Re-run the
formatter on the whole repository.

Change-Id: I961ec77b2617da3e097e64e0d8e8980bb7e5b426
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/control/config_files/p10bmc/ibm,bonnell/events.json b/control/config_files/p10bmc/ibm,bonnell/events.json
index 0d4f101..fe51488 100644
--- a/control/config_files/p10bmc/ibm,bonnell/events.json
+++ b/control/config_files/p10bmc/ibm,bonnell/events.json
@@ -1,2 +1 @@
-[
-]
+[]
diff --git a/control/config_files/p10bmc/ibm,bonnell/groups.json b/control/config_files/p10bmc/ibm,bonnell/groups.json
index 0d4f101..fe51488 100644
--- a/control/config_files/p10bmc/ibm,bonnell/groups.json
+++ b/control/config_files/p10bmc/ibm,bonnell/groups.json
@@ -1,2 +1 @@
-[
-]
+[]
diff --git a/control/config_files/p10bmc/ibm,everest/events.json b/control/config_files/p10bmc/ibm,everest/events.json
index 147e3eb..45e4c44 100644
--- a/control/config_files/p10bmc/ibm,everest/events.json
+++ b/control/config_files/p10bmc/ibm,everest/events.json
@@ -1,2238 +1,2238 @@
 [
-   {
-     // Hold fans at the given target when a number of fans are missing.
-     "name": "fan(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 11300
-       }
-     ]
-   },
-   {
-     // Hold fans at the given target when a number of rotors are nonfunctional.
-     "name": "fan rotor(s) faulted",
-     "groups": [
-       {
-         "name": "fan0 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan1 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan2 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan3 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 2,
-         "state": false,
-         "target": 11300
-       }
-     ]
-   },
-   {
-     // (for the following 4 rules)
-     // if a dual-rotor fan becomes non-functional, lock its speed to
-     // poweron_target to lock the other rotor to full_speed
-     "name": "nonfunc rotor override-0",
-     "groups": [
-      {
-         "name": "fan0 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan0" ],
-         "target": 11300
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-1",
-     "groups": [
-      {
-         "name": "fan1 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan1" ],
-         "target": 11300
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-2",
-     "groups": [
-      {
-         "name": "fan2 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan2" ],
-         "target": 11300
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-3",
-     "groups": [
-      {
-         "name": "fan3 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan3" ],
-         "target": 11300
-       }
-    ]
-  },
-   {
-     // Hold fans at the given target when any critical service
-     // is not running for 5 seconds.
-     "name": "service(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       },
-       {
-         "name": "occ objects",
-         "interface": "org.open_power.OCC.Status",
-         "property": { "name": "OccActive" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "ambient temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "altitude",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "name_has_owner"
-       },
-       {
-         "class": "signal",
-         "signal": "name_owner_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "call_actions_based_on_timer",
-         "timer": {
-           "interval": 5000000,
-           "type": "oneshot"
-         },
-         "actions": [
-           {
-             "name": "set_target_on_missing_owner",
-             "groups": [
-               {
-                 "name": "fan inventory",
-                 "interface": "xyz.openbmc_project.Inventory.Item",
-                 "property": { "name": "Present" }
-               },
-               {
-                 "name": "occ objects",
-                 "interface": "org.open_power.OCC.Status",
-                 "property": { "name": "OccActive" }
-               },
-               {
-                 "name": "nvme temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "planar temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "pcie cable card temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "ambient temp",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               }
-             ],
-             "target": 9700
-           }
-         ]
-       }
-     ]
-   },
-   {
-    // Set a fan floor if an OCC isn't active
-    "name": "Non-active OCC(s)",
-    "groups": [
-      {
-        "name": "occ objects",
-        "interface": "org.open_power.OCC.Status",
-        "property": {
-          "name": "OccActive"
-        }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 11300
-      }
-    ]
-  },
-  {
-    // Set a raised fan floor when any temperature or altitude sensor is
-    // nonfunctional
-    "name": "Nonfunctional temperature sensors",
-    "groups": [
-      {
-        "name": "proc0 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc2 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc3 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc4 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc5 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc6 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc7 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc0 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc2 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc3 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc4 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc5 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc6 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc7 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pmic temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "internal memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram and external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "vdd vrm temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "planar temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pcie cable card temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "altitude",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_removed"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 11300
-      }
-    ]
-  },
-  {
-     "name": "Set Proc 0 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 2 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 2 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 3 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 3 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 4 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 4 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_4_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_4_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 5 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 5 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_5_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_5_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 6 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 6 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_6_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_6_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 7 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 7 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_7_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 7
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_7_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 9
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 0 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 2 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 2 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 3 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 3 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 4 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 4 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_4_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_4_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 5 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 5 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_5_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_5_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 6 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 6 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_6_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_6_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 7 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 7 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_7_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_7_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     // Collect group temperatures each iteration the repeating timer expires
-     "name": "Fan control timer loop",
-     "groups": [
-       {
-         "name": "proc0 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc2 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc3 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc4 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc5 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc6 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc7 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc0 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc2 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc3 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc4 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc5 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc6 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc7 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pmic temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "internal memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram and external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "vdd vrm temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "timer",
-         "type": "repeating",
-         "interval": 2000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc2 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc3 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc4 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_4_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc5 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_5_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc6 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_6_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc7 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_7_core_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc2 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc3 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc4 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_4_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc5 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_5_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc6 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_6_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc7 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_7_ioring_dvfs_increase_temp",
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 69.0,
-         "delta": 175
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 58.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 75.0,
-         "delta": 150
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 85.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 58.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 50.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 70.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc2 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc3 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc4 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_4_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc5 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_5_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc6 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_6_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc7 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_7_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc2 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc3 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc4 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc5 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc6 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc7 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 66.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 72.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 52.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 52.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 80.0,
-         "delta": 30
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 48.0,
-         "delta": 80
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 80
-       }
-     ]
-   },
-   {
-     // Remove NVMe temperature objects from cache when they are removed from
-     // dbus. There's no need to react to their removal.
-     "name": "remove nvme objects",
-     "groups": [
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "signal",
-         "signal": "interfaces_removed"
-       }
-     ]
-   },
-   {
-     "name": "set pcie floor index",
-     "groups": [
-       {
-         "name": "pcie slots",
-         "interface": "xyz.openbmc_project.State.Decorator.PowerState",
-         "property": {
-           "name": "PowerState"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0DeviceId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0VendorId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemVendorId"
-         }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       }
-     ],
-     "actions": [
-       {
-         "name": "pcie_card_floors",
-         "use_config_specific_files": true,
-         "settle_time": 2
-       }
-     ]
-   },
-   {
-     "name": "Set altitude offset parameter",
-     "groups": [
-       {
-         "name": "altitude",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         // Refresh altitude every 24hrs
-         "class": "timer",
-         "type": "repeating",
-         "interval": 86400000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_20_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 1500,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 375 },
-             { "arg_value": 1500, "parameter_value": 550 },
-             { "arg_value": 2000, "parameter_value": 775 },
-             { "arg_value": 2500, "parameter_value": 1000 },
-             { "arg_value": 3050, "parameter_value": 1275 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_25_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 2000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 450 },
-             { "arg_value": 1500, "parameter_value": 700 },
-             { "arg_value": 2000, "parameter_value": 975 },
-             { "arg_value": 2500, "parameter_value": 1275 },
-             { "arg_value": 3050, "parameter_value": 1625 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_30_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 2500,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 600 },
-             { "arg_value": 1500, "parameter_value": 900 },
-             { "arg_value": 2000, "parameter_value": 1275 },
-             { "arg_value": 2500, "parameter_value": 1650 },
-             { "arg_value": 3050, "parameter_value": 2100 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_35_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 3000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 750 },
-             { "arg_value": 1500, "parameter_value": 1175 },
-             { "arg_value": 2000, "parameter_value": 1625 },
-             { "arg_value": 2500, "parameter_value": 2125 },
-             { "arg_value": 3050, "parameter_value": 2725 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_40_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 3500,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 975 },
-             { "arg_value": 1500, "parameter_value": 1500 },
-             { "arg_value": 2000, "parameter_value": 2100 },
-             { "arg_value": 2500, "parameter_value": 2750 },
-             { "arg_value": 3050, "parameter_value": 3500 }
-           ]
-         }
-       }
-     ]
-   },
-   {
-     "name": "Fan floors",
-     "groups": [
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.Sensor.Value",
-        "property": { "name": "Value" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "parameter",
-         "parameter": "pcie_floor_index"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_20_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_25_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_30_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_35_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_40_altitude_offset"
-       }
-     ],
-     "actions": [
-       {
-         "name": "mapped_floor",
-         "key_group": "ambient temp",
-         "fan_floors": [
-          {
-            // Entry valid for temps < 20
-            "key": 20,
-            "default_floor": 3800,
-            "floor_offset_parameter": "ambient_20_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 3800 },
-                  { "value": 2, "floor": 4200 },
-                  { "value": 3, "floor": 4600 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 25
-            "key": 25,
-            "default_floor": 4400,
-            "floor_offset_parameter": "ambient_25_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 4400 },
-                  { "value": 2, "floor": 4800 },
-                  { "value": 3, "floor": 5400 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 30
-            "key": 30,
-            "default_floor": 5000,
-            "floor_offset_parameter": "ambient_30_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 5000 },
-                  { "value": 2, "floor": 5600 },
-                  { "value": 3, "floor": 6500 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 35
-            "key": 35,
-            "default_floor": 5800,
-            "floor_offset_parameter": "ambient_35_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 5800 },
-                  { "value": 2, "floor": 6700 },
-                  { "value": 3, "floor": 7700 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 40
-            "key": 40,
-            "default_floor": 6900,
-            "floor_offset_parameter": "ambient_40_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 6900 },
-                  { "value": 2, "floor": 7900 },
-                  { "value": 3, "floor": 9200 }
-                ]
-              }
-            ]
-          }
+    {
+        // Hold fans at the given target when a number of fans are missing.
+        "name": "fan(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 11300
+            }
         ]
-       }
-     ]
-   }
+    },
+    {
+        // Hold fans at the given target when a number of rotors are nonfunctional.
+        "name": "fan rotor(s) faulted",
+        "groups": [
+            {
+                "name": "fan0 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan1 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan2 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan3 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 2,
+                "state": false,
+                "target": 11300
+            }
+        ]
+    },
+    {
+        // (for the following 4 rules)
+        // if a dual-rotor fan becomes non-functional, lock its speed to
+        // poweron_target to lock the other rotor to full_speed
+        "name": "nonfunc rotor override-0",
+        "groups": [
+            {
+                "name": "fan0 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan0"],
+                "target": 11300
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-1",
+        "groups": [
+            {
+                "name": "fan1 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan1"],
+                "target": 11300
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-2",
+        "groups": [
+            {
+                "name": "fan2 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan2"],
+                "target": 11300
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-3",
+        "groups": [
+            {
+                "name": "fan3 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan3"],
+                "target": 11300
+            }
+        ]
+    },
+    {
+        // Hold fans at the given target when any critical service
+        // is not running for 5 seconds.
+        "name": "service(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            },
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": { "name": "OccActive" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "name_has_owner"
+            },
+            {
+                "class": "signal",
+                "signal": "name_owner_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "call_actions_based_on_timer",
+                "timer": {
+                    "interval": 5000000,
+                    "type": "oneshot"
+                },
+                "actions": [
+                    {
+                        "name": "set_target_on_missing_owner",
+                        "groups": [
+                            {
+                                "name": "fan inventory",
+                                "interface": "xyz.openbmc_project.Inventory.Item",
+                                "property": { "name": "Present" }
+                            },
+                            {
+                                "name": "occ objects",
+                                "interface": "org.open_power.OCC.Status",
+                                "property": { "name": "OccActive" }
+                            },
+                            {
+                                "name": "nvme temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "planar temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "pcie cable card temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "ambient temp",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            }
+                        ],
+                        "target": 9700
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        // Set a fan floor if an OCC isn't active
+        "name": "Non-active OCC(s)",
+        "groups": [
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": {
+                    "name": "OccActive"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 11300
+            }
+        ]
+    },
+    {
+        // Set a raised fan floor when any temperature or altitude sensor is
+        // nonfunctional
+        "name": "Nonfunctional temperature sensors",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc2 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc3 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc4 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc5 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc6 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc7 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc2 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc3 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc4 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc5 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc6 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc7 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 11300
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 2 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 2 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 3 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 3 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 4 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 4 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_4_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_4_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 5 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 5 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_5_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_5_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 6 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 6 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_6_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_6_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 7 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 7 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_7_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 7
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_7_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 9
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 2 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 2 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 3 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 3 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 4 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 4 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_4_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_4_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 5 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 5 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_5_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_5_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 6 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 6 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_6_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_6_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 7 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 7 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_7_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_7_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        // Collect group temperatures each iteration the repeating timer expires
+        "name": "Fan control timer loop",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc2 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc3 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc4 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc5 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc6 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc7 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc2 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc3 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc4 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc5 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc6 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc7 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "timer",
+                "type": "repeating",
+                "interval": 2000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc2 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc3 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc4 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_4_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc5 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_5_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc6 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_6_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc7 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_7_core_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc2 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc3 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc4 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_4_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc5 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_5_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc6 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_6_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc7 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_7_ioring_dvfs_increase_temp",
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 69.0,
+                "delta": 175
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 58.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 75.0,
+                "delta": 150
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 85.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 58.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 50.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 70.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc2 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc3 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc4 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_4_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc5 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_5_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc6 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_6_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc7 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_7_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc2 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc3 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc4 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc5 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc6 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc7 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 66.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 72.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 52.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 52.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 80.0,
+                "delta": 30
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 48.0,
+                "delta": 80
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 80
+            }
+        ]
+    },
+    {
+        // Remove NVMe temperature objects from cache when they are removed from
+        // dbus. There's no need to react to their removal.
+        "name": "remove nvme objects",
+        "groups": [
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            }
+        ]
+    },
+    {
+        "name": "set pcie floor index",
+        "groups": [
+            {
+                "name": "pcie slots",
+                "interface": "xyz.openbmc_project.State.Decorator.PowerState",
+                "property": {
+                    "name": "PowerState"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0DeviceId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0VendorId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemVendorId"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            }
+        ],
+        "actions": [
+            {
+                "name": "pcie_card_floors",
+                "use_config_specific_files": true,
+                "settle_time": 2
+            }
+        ]
+    },
+    {
+        "name": "Set altitude offset parameter",
+        "groups": [
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                // Refresh altitude every 24hrs
+                "class": "timer",
+                "type": "repeating",
+                "interval": 86400000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_20_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 1500,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 375 },
+                        { "arg_value": 1500, "parameter_value": 550 },
+                        { "arg_value": 2000, "parameter_value": 775 },
+                        { "arg_value": 2500, "parameter_value": 1000 },
+                        { "arg_value": 3050, "parameter_value": 1275 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_25_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 2000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 450 },
+                        { "arg_value": 1500, "parameter_value": 700 },
+                        { "arg_value": 2000, "parameter_value": 975 },
+                        { "arg_value": 2500, "parameter_value": 1275 },
+                        { "arg_value": 3050, "parameter_value": 1625 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_30_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 2500,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 600 },
+                        { "arg_value": 1500, "parameter_value": 900 },
+                        { "arg_value": 2000, "parameter_value": 1275 },
+                        { "arg_value": 2500, "parameter_value": 1650 },
+                        { "arg_value": 3050, "parameter_value": 2100 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_35_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 3000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 750 },
+                        { "arg_value": 1500, "parameter_value": 1175 },
+                        { "arg_value": 2000, "parameter_value": 1625 },
+                        { "arg_value": 2500, "parameter_value": 2125 },
+                        { "arg_value": 3050, "parameter_value": 2725 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_40_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 3500,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 975 },
+                        { "arg_value": 1500, "parameter_value": 1500 },
+                        { "arg_value": 2000, "parameter_value": 2100 },
+                        { "arg_value": 2500, "parameter_value": 2750 },
+                        { "arg_value": 3050, "parameter_value": 3500 }
+                    ]
+                }
+            }
+        ]
+    },
+    {
+        "name": "Fan floors",
+        "groups": [
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "parameter",
+                "parameter": "pcie_floor_index"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_20_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_25_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_30_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_35_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_40_altitude_offset"
+            }
+        ],
+        "actions": [
+            {
+                "name": "mapped_floor",
+                "key_group": "ambient temp",
+                "fan_floors": [
+                    {
+                        // Entry valid for temps < 20
+                        "key": 20,
+                        "default_floor": 3800,
+                        "floor_offset_parameter": "ambient_20_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 3800 },
+                                    { "value": 2, "floor": 4200 },
+                                    { "value": 3, "floor": 4600 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 25
+                        "key": 25,
+                        "default_floor": 4400,
+                        "floor_offset_parameter": "ambient_25_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 4400 },
+                                    { "value": 2, "floor": 4800 },
+                                    { "value": 3, "floor": 5400 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 30
+                        "key": 30,
+                        "default_floor": 5000,
+                        "floor_offset_parameter": "ambient_30_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 5000 },
+                                    { "value": 2, "floor": 5600 },
+                                    { "value": 3, "floor": 6500 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 35
+                        "key": 35,
+                        "default_floor": 5800,
+                        "floor_offset_parameter": "ambient_35_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 5800 },
+                                    { "value": 2, "floor": 6700 },
+                                    { "value": 3, "floor": 7700 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 40
+                        "key": 40,
+                        "default_floor": 6900,
+                        "floor_offset_parameter": "ambient_40_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 6900 },
+                                    { "value": 2, "floor": 7900 },
+                                    { "value": 3, "floor": 9200 }
+                                ]
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,everest/groups.json b/control/config_files/p10bmc/ibm,everest/groups.json
index de14afe..526b7dc 100644
--- a/control/config_files/p10bmc/ibm,everest/groups.json
+++ b/control/config_files/p10bmc/ibm,everest/groups.json
@@ -1,977 +1,975 @@
 [
- {
-   "name": "fan inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3"
-   ]
- },
- {
-   "name": "fan0 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1"
-   ]
- },
- {
-   "name": "fan1 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1"
-   ]
- },
- {
-   "name": "fan2 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1"
-   ]
- },
- {
-   "name": "fan3 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1"
-   ]
- },
- {
-   "name": "occ objects",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/org/open_power/control/occ0",
-     "/org/open_power/control/occ1",
-     "/org/open_power/control/occ2",
-     "/org/open_power/control/occ3",
-     "/org/open_power/control/occ4",
-     "/org/open_power/control/occ5",
-     "/org/open_power/control/occ6",
-     "/org/open_power/control/occ7"
-   ]
- },
- {
-   "name": "proc0 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
-   ]
- },
- {
-   "name": "proc1 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
-   ]
- },
- {
-   "name": "proc2 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc2_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core15_1_temp"
-   ]
- },
- {
-   "name": "proc3 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc3_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core15_1_temp"
-   ]
- },
- {
-   "name": "proc4 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc4_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc4_core15_1_temp"
-   ]
- },
- {
-   "name": "proc5 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc5_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc5_core15_1_temp"
-   ]
- },
- {
-   "name": "proc6 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc6_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc6_core15_1_temp"
-   ]
- },
- {
-   "name": "proc7 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc7_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc7_core15_1_temp"
-   ]
- },
- {
-   "name": "proc0 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
-   ]
- },
- {
-   "name": "proc1 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
-   ]
- },
- {
-   "name": "proc2 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc2_ioring_temp"
-   ]
- },
- {
-   "name": "proc3 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc3_ioring_temp"
-   ]
- },
- {
-   "name": "proc4 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc4_ioring_temp"
-   ]
- },
- {
-   "name": "proc5 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc5_ioring_temp"
-   ]
- },
- {
-   "name": "proc6 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc6_ioring_temp"
-   ]
- },
- {
-   "name": "proc7 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc7_ioring_temp"
-   ]
- },
- {
-   "name": "dram temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm32_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm33_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm34_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm35_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm36_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm37_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm38_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm39_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm40_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm41_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm42_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm43_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm44_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm45_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm46_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm47_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm48_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm49_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm50_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm51_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm52_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm53_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm54_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm55_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm56_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm57_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm58_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm59_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm60_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm61_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm62_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm63_dram_temp"
-   ]
- },
- {
-   "name": "pmic temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm32_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm33_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm34_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm35_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm36_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm37_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm38_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm39_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm40_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm41_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm42_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm43_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm44_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm45_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm46_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm47_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm48_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm49_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm50_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm51_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm52_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm53_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm54_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm55_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm56_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm57_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm58_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm59_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm60_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm61_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm62_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm63_pmic_temp"
-   ]
- },
- {
-   "name": "internal memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm32_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm33_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm34_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm35_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm36_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm37_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm38_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm39_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm40_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm41_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm42_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm43_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm44_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm45_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm46_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm47_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm48_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm49_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm50_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm51_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm52_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm53_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm54_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm55_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm56_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm57_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm58_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm59_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm60_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm61_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm62_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm63_intmb_temp"
-   ]
- },
- {
-   "name": "dram and external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm32_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm33_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm34_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm35_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm36_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm37_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm38_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm39_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm40_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm41_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm42_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm43_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm44_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm45_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm46_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm47_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm48_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm49_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm50_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm51_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm52_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm53_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm54_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm55_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm56_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm57_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm58_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm59_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm60_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm61_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm62_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm63_dram_extmb_temp"
-   ]
- },
- {
-   "name": "external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm32_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm33_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm34_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm35_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm36_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm37_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm38_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm39_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm40_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm41_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm42_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm43_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm44_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm45_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm46_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm47_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm48_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm49_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm50_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm51_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm52_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm53_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm54_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm55_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm56_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm57_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm58_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm59_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm60_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm61_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm62_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm63_extmb_temp"
-   ]
- },
- {
-   "name": "vdd vrm temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd2_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd3_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd4_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd5_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd6_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd7_temp"
-   ]
- },
- {
-   "name": "proc 0 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 2 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc2_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 3 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc3_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 4 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc4_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 5 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc5_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 6 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc6_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 7 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc7_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 0 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 2 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc2_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 3 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc3_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 4 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc4_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 5 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc5_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 6 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc6_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 7 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc7_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "nvme temps",
-   "service": "xyz.openbmc_project.NVMeSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_9_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_10_Temp"
-   ]
- },
- {
-   "name": "planar temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
-     "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
-   ]
- },
- {
-   // Bear Lake card
-   "name": "pcie cable card temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C1_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C2_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C3_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C4_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C5_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C6_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C8_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
-   ]
- },
- {
-   "name": "ambient temp",
-   "service": "xyz.openbmc_project.VirtualSensor",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
-   ]
- },
- {
-   "name": "altitude",
-   "service": "xyz.openbmc_project.VirtualSensor",
-   "members": [
-      "/xyz/openbmc_project/sensors/altitude/Altitude"
-   ]
- },
- {
-   "name": "pcie cards",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1/pcie_card1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2/pcie_card2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3/pcie_card3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4/pcie_card4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot5/pcie_card5",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
-   ]
- },
- {
-   "name": "pcie slots",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot5",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
-   ]
- }
+    {
+        "name": "fan inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3"
+        ]
+    },
+    {
+        "name": "fan0 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1"
+        ]
+    },
+    {
+        "name": "fan1 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1"
+        ]
+    },
+    {
+        "name": "fan2 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1"
+        ]
+    },
+    {
+        "name": "fan3 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1"
+        ]
+    },
+    {
+        "name": "occ objects",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/org/open_power/control/occ0",
+            "/org/open_power/control/occ1",
+            "/org/open_power/control/occ2",
+            "/org/open_power/control/occ3",
+            "/org/open_power/control/occ4",
+            "/org/open_power/control/occ5",
+            "/org/open_power/control/occ6",
+            "/org/open_power/control/occ7"
+        ]
+    },
+    {
+        "name": "proc0 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc1 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc2 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc3 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc4 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc4_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc4_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc5 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc5_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc5_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc6 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc6_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc6_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc7 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc7_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc7_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc0 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc1 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc2 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc3 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc4 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc4_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc5 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc5_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc6 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc6_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc7 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc7_ioring_temp"
+        ]
+    },
+    {
+        "name": "dram temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm32_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm33_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm34_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm35_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm36_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm37_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm38_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm39_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm40_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm41_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm42_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm43_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm44_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm45_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm46_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm47_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm48_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm49_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm50_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm51_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm52_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm53_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm54_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm55_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm56_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm57_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm58_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm59_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm60_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm61_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm62_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm63_dram_temp"
+        ]
+    },
+    {
+        "name": "pmic temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm32_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm33_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm34_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm35_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm36_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm37_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm38_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm39_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm40_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm41_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm42_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm43_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm44_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm45_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm46_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm47_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm48_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm49_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm50_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm51_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm52_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm53_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm54_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm55_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm56_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm57_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm58_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm59_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm60_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm61_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm62_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm63_pmic_temp"
+        ]
+    },
+    {
+        "name": "internal memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm32_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm33_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm34_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm35_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm36_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm37_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm38_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm39_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm40_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm41_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm42_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm43_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm44_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm45_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm46_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm47_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm48_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm49_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm50_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm51_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm52_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm53_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm54_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm55_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm56_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm57_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm58_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm59_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm60_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm61_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm62_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm63_intmb_temp"
+        ]
+    },
+    {
+        "name": "dram and external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm32_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm33_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm34_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm35_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm36_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm37_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm38_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm39_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm40_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm41_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm42_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm43_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm44_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm45_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm46_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm47_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm48_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm49_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm50_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm51_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm52_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm53_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm54_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm55_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm56_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm57_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm58_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm59_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm60_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm61_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm62_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm63_dram_extmb_temp"
+        ]
+    },
+    {
+        "name": "external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm32_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm33_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm34_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm35_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm36_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm37_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm38_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm39_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm40_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm41_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm42_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm43_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm44_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm45_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm46_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm47_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm48_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm49_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm50_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm51_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm52_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm53_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm54_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm55_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm56_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm57_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm58_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm59_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm60_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm61_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm62_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm63_extmb_temp"
+        ]
+    },
+    {
+        "name": "vdd vrm temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd2_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd3_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd4_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd5_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd6_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd7_temp"
+        ]
+    },
+    {
+        "name": "proc 0 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 2 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 3 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 4 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc4_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 5 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc5_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 6 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc6_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 7 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc7_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 0 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 2 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 3 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 4 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc4_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 5 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc5_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 6 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc6_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 7 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc7_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "nvme temps",
+        "service": "xyz.openbmc_project.NVMeSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_10_Temp"
+        ]
+    },
+    {
+        "name": "planar temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
+        ]
+    },
+    {
+        // Bear Lake card
+        "name": "pcie cable card temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C1_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C5_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C6_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
+        ]
+    },
+    {
+        "name": "ambient temp",
+        "service": "xyz.openbmc_project.VirtualSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
+        ]
+    },
+    {
+        "name": "altitude",
+        "service": "xyz.openbmc_project.VirtualSensor",
+        "members": ["/xyz/openbmc_project/sensors/altitude/Altitude"]
+    },
+    {
+        "name": "pcie cards",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1/pcie_card1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2/pcie_card2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3/pcie_card3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4/pcie_card4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot5/pcie_card5",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
+        ]
+    },
+    {
+        "name": "pcie slots",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot5",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
+        ]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,everest/pcie_cards.json b/control/config_files/p10bmc/ibm,everest/pcie_cards.json
index aca5675..c419964 100755
--- a/control/config_files/p10bmc/ibm,everest/pcie_cards.json
+++ b/control/config_files/p10bmc/ibm,everest/pcie_cards.json
@@ -1,148 +1,148 @@
 {
-  "cards": [
-    {
-      "name": "PHYP had errors getting IDs",
-      "vendor_id": "0xFFFF",
-      "device_id": "0xFFFF",
-      "subsystem_vendor_id": "0xFFFF",
-      "subsystem_id": "0xFFFF",
-      "floor_index": 3
-    },
-    {
-      "name": "Bear Lake and Bear River",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0004",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "GTO",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x033B",
-      "floor_index": 2
-    },
-    {
-      "name": "ZR1",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x035E",
-      "floor_index": 1
-    },
-    {
-      "name": "Z06",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0355",
-      "floor_index": 2
-    },
-    {
-      "name": "Glacier Park EDR 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1013",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x04F1",
-      "floor_index": 1
-    },
-    {
-      "name": "Glacier Park EDR 1Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1013",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x04F4",
-      "floor_index": 1
-    },
-    {
-      "name": "Glacier Park EN 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1013",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x04F7",
-      "floor_index": 1
-    },
-    {
-      "name": "Lassen Dual Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1019",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0617",
-      "floor_index": 1
-    },
-    {
-      "name": "Lassen Single Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1017",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0616",
-      "floor_index": 1
-    },
-    {
-      "name": "Everglades 10Gb 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1015",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x061F",
-      "floor_index": 1
-    },
-    {
-      "name": "Everglades 25Gb 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1015",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x061E",
-      "floor_index": 1
-    },
-    {
-      "name": "Haleakala EN 2Port 100Gb",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1019",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0635",
-      "floor_index": 2
-    },
-    {
-      "name": "Bono HMS",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0005",
-      "floor_index": 1
-    },
-    {
-      "name": "Cedar Lake 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A6",
-      "floor_index": 3
-    },
-    {
-      "name": "Cedar Lake Crypto 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A5",
-      "floor_index": 3
-    },
-    {
-      "name": "Castello",
-      "vendor_id": "0x1014",
-      "device_id": "0x0611",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0611",
-      "floor_index": 3
-    },
-    {
-      "name": "Baby Blue Tip (CX-3 Pro)",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1007",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x04E7",
-      "floor_index": 1
-    }
-  ]
+    "cards": [
+        {
+            "name": "PHYP had errors getting IDs",
+            "vendor_id": "0xFFFF",
+            "device_id": "0xFFFF",
+            "subsystem_vendor_id": "0xFFFF",
+            "subsystem_id": "0xFFFF",
+            "floor_index": 3
+        },
+        {
+            "name": "Bear Lake and Bear River",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0004",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "GTO",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x033B",
+            "floor_index": 2
+        },
+        {
+            "name": "ZR1",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x035E",
+            "floor_index": 1
+        },
+        {
+            "name": "Z06",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0355",
+            "floor_index": 2
+        },
+        {
+            "name": "Glacier Park EDR 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1013",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x04F1",
+            "floor_index": 1
+        },
+        {
+            "name": "Glacier Park EDR 1Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1013",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x04F4",
+            "floor_index": 1
+        },
+        {
+            "name": "Glacier Park EN 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1013",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x04F7",
+            "floor_index": 1
+        },
+        {
+            "name": "Lassen Dual Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1019",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0617",
+            "floor_index": 1
+        },
+        {
+            "name": "Lassen Single Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1017",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0616",
+            "floor_index": 1
+        },
+        {
+            "name": "Everglades 10Gb 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1015",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x061F",
+            "floor_index": 1
+        },
+        {
+            "name": "Everglades 25Gb 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1015",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x061E",
+            "floor_index": 1
+        },
+        {
+            "name": "Haleakala EN 2Port 100Gb",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1019",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0635",
+            "floor_index": 2
+        },
+        {
+            "name": "Bono HMS",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0005",
+            "floor_index": 1
+        },
+        {
+            "name": "Cedar Lake 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A6",
+            "floor_index": 3
+        },
+        {
+            "name": "Cedar Lake Crypto 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A5",
+            "floor_index": 3
+        },
+        {
+            "name": "Castello",
+            "vendor_id": "0x1014",
+            "device_id": "0x0611",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0611",
+            "floor_index": 3
+        },
+        {
+            "name": "Baby Blue Tip (CX-3 Pro)",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1007",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x04E7",
+            "floor_index": 1
+        }
+    ]
 }
diff --git a/control/config_files/p10bmc/ibm,rainier-1s4u/events.json b/control/config_files/p10bmc/ibm,rainier-1s4u/events.json
index 8dc7408..520e0cb 100644
--- a/control/config_files/p10bmc/ibm,rainier-1s4u/events.json
+++ b/control/config_files/p10bmc/ibm,rainier-1s4u/events.json
@@ -1,1146 +1,1146 @@
 [
-   {
-     // Hold fans at the given target when a number of fans are missing.
-     "name": "fan(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 10400
-       }
-     ]
-   },
-   {
-     // Hold fans at the given target when a number of rotors are nonfunctional.
-     "name": "fan rotor(s) faulted",
-     "groups": [
-       {
-         "name": "fan0 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan1 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan2 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan4 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 10400
-       }
-     ]
-   },
-   {
-     // Hold fans at the given target when any critical service
-     // is not running for 5 seconds.
-     "name": "service(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       },
-       {
-         "name": "occ objects",
-         "interface": "org.open_power.OCC.Status",
-         "property": { "name": "OccActive" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "flett temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "ambient temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "name_has_owner"
-       },
-       {
-         "class": "signal",
-         "signal": "name_owner_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "call_actions_based_on_timer",
-         "timer": {
-           "interval": 5000000,
-           "type": "oneshot"
-         },
-         "actions": [
-           {
-             "name": "set_target_on_missing_owner",
-             "groups": [
-               {
-                 "name": "fan inventory",
-                 "interface": "xyz.openbmc_project.Inventory.Item",
-                 "property": { "name": "Present" }
-               },
-               {
-                 "name": "occ objects",
-                 "interface": "org.open_power.OCC.Status",
-                 "property": { "name": "OccActive" }
-               },
-               {
-                 "name": "nvme temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "planar temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "flett temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "pcie cable card temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "ambient temp",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               }
-             ],
-             "target": 10400
-           }
-         ]
-       }
-     ]
-   },
-   {
-    // Set a fan floor if an OCC isn't active
-    "name": "Non-active OCC(s)",
-    "groups": [
-      {
-        "name": "occ objects",
-        "interface": "org.open_power.OCC.Status",
-        "property": {
-          "name": "OccActive"
-        }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 10400
-      }
-    ]
-  },
-  {
-    // Set a raised fan floor when any temperature sensor is nonfunctional
-    "name": "Nonfunctional temperature sensors",
-    "groups": [
-      {
-        "name": "proc0 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc0 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pmic temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "internal memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram and external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "vdd vrm temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "planar temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "flett temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pcie cable card temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_removed"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 10400
-      }
-    ]
-  },
-  {
-     "name": "Set Proc 0 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 0 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     // Collect group temperatures each iteration the repeating timer expires
-     "name": "Fan control timer loop",
-     "groups": [
-       {
-         "name": "proc0 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc0 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pmic temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "internal memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram and external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "vdd vrm temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "flett temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "timer",
-         "type": "repeating",
-         "interval": 2000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 63.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 74.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 66.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 82.0,
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 58.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "flett temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 80.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 70.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 62.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 71.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 63.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 57.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 79.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "flett temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 75.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 50
-       }
-     ]
-   },
-   {
-     // Remove NVMe temperature objects from cache when they are removed from
-     // dbus. There's no need to react to their removal.
-     "name": "remove nvme objects",
-     "groups": [
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "signal",
-         "signal": "interfaces_removed"
-       }
-     ]
-   },
-   {
-     "name": "set pcie floor index",
-     "groups": [
-       {
-         "name": "pcie slots",
-         "interface": "xyz.openbmc_project.State.Decorator.PowerState",
-         "property": {
-           "name": "PowerState"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0DeviceId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0VendorId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemVendorId"
-         }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       }
-     ],
-     "actions": [
-       {
-         "name": "pcie_card_floors",
-         "use_config_specific_files": true,
-         "settle_time": 2
-       }
-     ]
-   },
-   {
-     "name": "Set altitude offset parameter",
-     "groups": [
-       {
-         "name": "altitude",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         // Refresh altitude every 24hrs
-         "class": "timer",
-         "type": "repeating",
-         "interval": 86400000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 3000,
-           "value": [
-             { "arg_value": 1000, "parameter_value": 0 },
-             { "arg_value": 1900, "parameter_value": 1000 },
-             { "arg_value": 2800, "parameter_value": 2000 }
-           ]
-         }
-       }
-     ]
-   },
-   {
-     "name": "Fan floors",
-     "groups": [
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.Sensor.Value",
-        "property": { "name": "Value" }
-      },
-      {
-        "name": "power mode",
-        "interface": "xyz.openbmc_project.Control.Power.Mode",
-        "property": { "name": "PowerMode" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "parameter",
-         "parameter": "pcie_floor_index"
-       },
-       {
-         "class": "parameter",
-         "parameter": "altitude_offset"
-       }
-     ],
-     "actions": [
-       {
-         "name": "mapped_floor",
-         "key_group": "ambient temp",
-         "fan_floors": [
-          {
-            // Entry valid for ambient temp < 27
-            "key": 27,
-            "default_floor": 3700,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 6000 },
-                  { "value": 2, "floor": 7000 },
-                  { "value": 3, "floor": 8000 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for ambient temp < 32
-            "key": 32,
-            "default_floor": 5000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 7000 },
-                  { "value": 2, "floor": 9000 },
-                  { "value": 3, "floor": 9500 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for ambient temp < 37
-            "key": 37,
-            "default_floor": 6000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 9000 },
-                  { "value": 2, "floor": 9500 },
-                  { "value": 3, "floor": 10400 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for ambient temp < 42
-            "key": 42,
-            "default_floor": 8000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 9500 },
-                  { "value": 2, "floor": 10400 },
-                  { "value": 3, "floor": 10400 }
-                ]
-              }
-            ]
-          }
+    {
+        // Hold fans at the given target when a number of fans are missing.
+        "name": "fan(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 10400
+            }
         ]
-       }
-     ]
-   }
+    },
+    {
+        // Hold fans at the given target when a number of rotors are nonfunctional.
+        "name": "fan rotor(s) faulted",
+        "groups": [
+            {
+                "name": "fan0 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan1 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan2 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan4 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 10400
+            }
+        ]
+    },
+    {
+        // Hold fans at the given target when any critical service
+        // is not running for 5 seconds.
+        "name": "service(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            },
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": { "name": "OccActive" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "name_has_owner"
+            },
+            {
+                "class": "signal",
+                "signal": "name_owner_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "call_actions_based_on_timer",
+                "timer": {
+                    "interval": 5000000,
+                    "type": "oneshot"
+                },
+                "actions": [
+                    {
+                        "name": "set_target_on_missing_owner",
+                        "groups": [
+                            {
+                                "name": "fan inventory",
+                                "interface": "xyz.openbmc_project.Inventory.Item",
+                                "property": { "name": "Present" }
+                            },
+                            {
+                                "name": "occ objects",
+                                "interface": "org.open_power.OCC.Status",
+                                "property": { "name": "OccActive" }
+                            },
+                            {
+                                "name": "nvme temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "planar temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "flett temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "pcie cable card temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "ambient temp",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            }
+                        ],
+                        "target": 10400
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        // Set a fan floor if an OCC isn't active
+        "name": "Non-active OCC(s)",
+        "groups": [
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": {
+                    "name": "OccActive"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 10400
+            }
+        ]
+    },
+    {
+        // Set a raised fan floor when any temperature sensor is nonfunctional
+        "name": "Nonfunctional temperature sensors",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 10400
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        // Collect group temperatures each iteration the repeating timer expires
+        "name": "Fan control timer loop",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "timer",
+                "type": "repeating",
+                "interval": 2000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 63.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 74.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 66.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 82.0,
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 58.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "flett temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 80.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 70.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 62.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 71.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 63.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 57.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 79.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "flett temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 75.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 50
+            }
+        ]
+    },
+    {
+        // Remove NVMe temperature objects from cache when they are removed from
+        // dbus. There's no need to react to their removal.
+        "name": "remove nvme objects",
+        "groups": [
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            }
+        ]
+    },
+    {
+        "name": "set pcie floor index",
+        "groups": [
+            {
+                "name": "pcie slots",
+                "interface": "xyz.openbmc_project.State.Decorator.PowerState",
+                "property": {
+                    "name": "PowerState"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0DeviceId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0VendorId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemVendorId"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            }
+        ],
+        "actions": [
+            {
+                "name": "pcie_card_floors",
+                "use_config_specific_files": true,
+                "settle_time": 2
+            }
+        ]
+    },
+    {
+        "name": "Set altitude offset parameter",
+        "groups": [
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                // Refresh altitude every 24hrs
+                "class": "timer",
+                "type": "repeating",
+                "interval": 86400000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 3000,
+                    "value": [
+                        { "arg_value": 1000, "parameter_value": 0 },
+                        { "arg_value": 1900, "parameter_value": 1000 },
+                        { "arg_value": 2800, "parameter_value": 2000 }
+                    ]
+                }
+            }
+        ]
+    },
+    {
+        "name": "Fan floors",
+        "groups": [
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "power mode",
+                "interface": "xyz.openbmc_project.Control.Power.Mode",
+                "property": { "name": "PowerMode" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "parameter",
+                "parameter": "pcie_floor_index"
+            },
+            {
+                "class": "parameter",
+                "parameter": "altitude_offset"
+            }
+        ],
+        "actions": [
+            {
+                "name": "mapped_floor",
+                "key_group": "ambient temp",
+                "fan_floors": [
+                    {
+                        // Entry valid for ambient temp < 27
+                        "key": 27,
+                        "default_floor": 3700,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 6000 },
+                                    { "value": 2, "floor": 7000 },
+                                    { "value": 3, "floor": 8000 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for ambient temp < 32
+                        "key": 32,
+                        "default_floor": 5000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 7000 },
+                                    { "value": 2, "floor": 9000 },
+                                    { "value": 3, "floor": 9500 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for ambient temp < 37
+                        "key": 37,
+                        "default_floor": 6000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 9000 },
+                                    { "value": 2, "floor": 9500 },
+                                    { "value": 3, "floor": 10400 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for ambient temp < 42
+                        "key": 42,
+                        "default_floor": 8000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 9500 },
+                                    { "value": 2, "floor": 10400 },
+                                    { "value": 3, "floor": 10400 }
+                                ]
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json b/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json
index eb4d172..fa19473 100644
--- a/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json
+++ b/control/config_files/p10bmc/ibm,rainier-1s4u/groups.json
@@ -1,375 +1,373 @@
 [
- {
-   "name": "fan inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4"
-   ]
- },
- {
-   "name": "fan0 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0"
-   ]
- },
- {
-   "name": "fan1 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0"
-   ]
- },
- {
-   "name": "fan2 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0"
-   ]
- },
- {
-   "name": "fan4 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0"
-   ]
- },
- {
-   "name": "occ objects",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/org/open_power/control/occ0",
-     "/org/open_power/control/occ1"
-   ]
- },
- {
-   "name": "proc0 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
-   ]
- },
- {
-   "name": "proc1 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
-   ]
- },
- {
-   "name": "proc0 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
-   ]
- },
- {
-   "name": "proc1 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
-   ]
- },
- {
-   "name": "dram temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp"
-   ]
- },
- {
-   "name": "pmic temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp"
-   ]
- },
- {
-   "name": "internal memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp"
-   ]
- },
- {
-   // Repurposed as DRAM temperature sensors for 4U DDIMMs
-   "name": "dram and external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp"
-   ]
- },
- {
-   // Repurposed as PMIC temperature sensors for 4U DDIMMs
-   "name": "external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp"
-   ]
- },
- {
-   "name": "vdd vrm temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp"
-   ]
- },
- {
-   "name": "proc 0 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 0 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "nvme temps",
-   "service": "xyz.openbmc_project.NVMeSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_9_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_10_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_11_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_12_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_13_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_14_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_15_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_16_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_17_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_18_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_19_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_20_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_21_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_22_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_23_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_24_Temp"
-   ]
- },
- {
-   "name": "planar temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
-     "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
-   ]
- },
- {
-   "name": "flett temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C8_Temp",
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C11_Temp"
-   ]
- },
- {
-   // Bear Lake card
-   "name": "pcie cable card temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
-   ]
- },
- {
-   "name": "ambient temp",
-   "service": "xyz.openbmc_project.VirtualSensor",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
-   ]
- },
- {
-   "name": "pcie cards",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
-   ]
- },
- {
-   "name": "pcie slots",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
-   ]
- },
- {
-   "name": "power mode",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/control/host0/power_mode"
-   ]
- }
+    {
+        "name": "fan inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4"
+        ]
+    },
+    {
+        "name": "fan0 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0"
+        ]
+    },
+    {
+        "name": "fan1 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0"
+        ]
+    },
+    {
+        "name": "fan2 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0"
+        ]
+    },
+    {
+        "name": "fan4 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0"
+        ]
+    },
+    {
+        "name": "occ objects",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/org/open_power/control/occ0",
+            "/org/open_power/control/occ1"
+        ]
+    },
+    {
+        "name": "proc0 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc1 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc0 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc1 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
+        ]
+    },
+    {
+        "name": "dram temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp"
+        ]
+    },
+    {
+        "name": "pmic temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp"
+        ]
+    },
+    {
+        "name": "internal memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp"
+        ]
+    },
+    {
+        // Repurposed as DRAM temperature sensors for 4U DDIMMs
+        "name": "dram and external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp"
+        ]
+    },
+    {
+        // Repurposed as PMIC temperature sensors for 4U DDIMMs
+        "name": "external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp"
+        ]
+    },
+    {
+        "name": "vdd vrm temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp"
+        ]
+    },
+    {
+        "name": "proc 0 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 0 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "nvme temps",
+        "service": "xyz.openbmc_project.NVMeSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_11_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_12_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_13_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_14_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_15_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_16_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_17_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_18_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_19_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_20_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_21_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_22_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_23_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_24_Temp"
+        ]
+    },
+    {
+        "name": "planar temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
+        ]
+    },
+    {
+        "name": "flett temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C11_Temp"
+        ]
+    },
+    {
+        // Bear Lake card
+        "name": "pcie cable card temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
+        ]
+    },
+    {
+        "name": "ambient temp",
+        "service": "xyz.openbmc_project.VirtualSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
+        ]
+    },
+    {
+        "name": "pcie cards",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
+        ]
+    },
+    {
+        "name": "pcie slots",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
+        ]
+    },
+    {
+        "name": "power mode",
+        "service": "org.open_power.OCC.Control",
+        "members": ["/xyz/openbmc_project/control/host0/power_mode"]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,rainier-1s4u/pcie_cards.json b/control/config_files/p10bmc/ibm,rainier-1s4u/pcie_cards.json
index 9c8dd19..650dd9e 100644
--- a/control/config_files/p10bmc/ibm,rainier-1s4u/pcie_cards.json
+++ b/control/config_files/p10bmc/ibm,rainier-1s4u/pcie_cards.json
@@ -1,196 +1,196 @@
 {
-  "cards": [
-    {
-      "name": "PHYP had errors getting IDs",
-      "vendor_id": "0xFFFF",
-      "device_id": "0xFFFF",
-      "subsystem_vendor_id": "0xFFFF",
-      "subsystem_id": "0xFFFF",
-      "floor_index": 3
-    },
-    {
-      "name": "Flett",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0007",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "Bear Lake and Bear River",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0004",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "GTO",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x033B",
-      "floor_index": 2
-    },
-    {
-      "name": "ZR1",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x035E",
-      "floor_index": 2
-    },
-    {
-      "name": "Z06",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0355",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0621",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0622",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0629",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064A",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064B",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064C",
-      "floor_index": 2
-    },
-    {
-      "name": "Sentry",
-      "vendor_id": "0x1014",
-      "device_id": "0x0466",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0466",
-      "floor_index": 2
-    },
-    {
-      "name": "Haleakala EN 2Port 100Gb",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1019",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0635",
-      "floor_index": 1
-    },
-    {
-      "name": "Cedar Lake 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A6",
-      "floor_index": 3
-    },
-    {
-      "name": "Cedar Lake Crypto 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A5",
-      "floor_index": 3
-    },
-    {
-      "name": "Crater Lake 200G 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A4",
-      "floor_index": 3
-    },
-    {
-      "name": "Crater Lake Crypto 200G 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A3",
-      "floor_index": 3
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0682",
-      "floor_index": 2
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0683",
-      "floor_index": 2
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0684",
-      "floor_index": 2
-    },
-    {
-      "name": "Castello",
-      "vendor_id": "0x1014",
-      "device_id": "0x0611",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0611",
-      "floor_index": 3
-    },
-    {
-      "name": "Puntfish",
-      "vendor_id": "0x1077",
-      "device_id": "0x2271",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x069E",
-      "floor_index": 1
-    },
-    {
-      "name": "Bluefish",
-      "vendor_id": "0x10DF",
-      "device_id": "0xE300",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0614",
-      "floor_index": 1
-    }
-  ]
+    "cards": [
+        {
+            "name": "PHYP had errors getting IDs",
+            "vendor_id": "0xFFFF",
+            "device_id": "0xFFFF",
+            "subsystem_vendor_id": "0xFFFF",
+            "subsystem_id": "0xFFFF",
+            "floor_index": 3
+        },
+        {
+            "name": "Flett",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0007",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "Bear Lake and Bear River",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0004",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "GTO",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x033B",
+            "floor_index": 2
+        },
+        {
+            "name": "ZR1",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x035E",
+            "floor_index": 2
+        },
+        {
+            "name": "Z06",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0355",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0621",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0622",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0629",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064A",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064B",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064C",
+            "floor_index": 2
+        },
+        {
+            "name": "Sentry",
+            "vendor_id": "0x1014",
+            "device_id": "0x0466",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0466",
+            "floor_index": 2
+        },
+        {
+            "name": "Haleakala EN 2Port 100Gb",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1019",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0635",
+            "floor_index": 1
+        },
+        {
+            "name": "Cedar Lake 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A6",
+            "floor_index": 3
+        },
+        {
+            "name": "Cedar Lake Crypto 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A5",
+            "floor_index": 3
+        },
+        {
+            "name": "Crater Lake 200G 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A4",
+            "floor_index": 3
+        },
+        {
+            "name": "Crater Lake Crypto 200G 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A3",
+            "floor_index": 3
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0682",
+            "floor_index": 2
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0683",
+            "floor_index": 2
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0684",
+            "floor_index": 2
+        },
+        {
+            "name": "Castello",
+            "vendor_id": "0x1014",
+            "device_id": "0x0611",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0611",
+            "floor_index": 3
+        },
+        {
+            "name": "Puntfish",
+            "vendor_id": "0x1077",
+            "device_id": "0x2271",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x069E",
+            "floor_index": 1
+        },
+        {
+            "name": "Bluefish",
+            "vendor_id": "0x10DF",
+            "device_id": "0xE300",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0614",
+            "floor_index": 1
+        }
+    ]
 }
diff --git a/control/config_files/p10bmc/ibm,rainier-2u/events.json b/control/config_files/p10bmc/ibm,rainier-2u/events.json
index 579fffe..21a66f8 100644
--- a/control/config_files/p10bmc/ibm,rainier-2u/events.json
+++ b/control/config_files/p10bmc/ibm,rainier-2u/events.json
@@ -1,1752 +1,1752 @@
 [
-   {
-     // Hold fans at the given target when a number of fans are missing.
-     "name": "fan(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 18000
-       }
-     ]
-   },
-   {
-     // Hold fans at the given target when a number of rotors are nonfunctional.
-     "name": "fan rotor(s) faulted",
-     "groups": [
-       {
-         "name": "fan0 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan1 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan2 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan3 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan4 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan5 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 18000
-       }
-     ]
-   },
-   {
-     // (for the following 6 rules)
-     // if a dual-rotor fan becomes non-functional, lock its speed to
-     // poweron_target to lock the other rotor to full_speed
-     "name": "nonfunc rotor override-0",
-     "groups": [
-      {
-         "name": "fan0 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan0" ],
-         "target": 18000
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-1",
-     "groups": [
-      {
-         "name": "fan1 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan1" ],
-         "target": 18000
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-2",
-     "groups": [
-      {
-         "name": "fan2 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan2" ],
-         "target": 18000
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-3",
-     "groups": [
-      {
-         "name": "fan3 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan3" ],
-         "target": 18000
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-4",
-     "groups": [
-      {
-         "name": "fan4 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan4" ],
-         "target": 18000
-       }
-    ]
-  },
-  {
-     "name": "nonfunc rotor override-5",
-     "groups": [
-      {
-         "name": "fan5 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "override_fan_target",
-         "count": 1,
-         "state": false,
-         "fans": [ "fan5" ],
-         "target": 18000
-       }
-    ]
-  },
-  {
-     // Hold fans at the given target when any critical service
-     // is not running for 5 seconds.
-     "name": "service(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       },
-       {
-         "name": "occ objects",
-         "interface": "org.open_power.OCC.Status",
-         "property": { "name": "OccActive" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "flett temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "ambient temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "altitude",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "name_has_owner"
-       },
-       {
-         "class": "signal",
-         "signal": "name_owner_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "call_actions_based_on_timer",
-         "timer": {
-           "interval": 5000000,
-           "type": "oneshot"
-         },
-         "actions": [
-           {
-             "name": "set_target_on_missing_owner",
-             "groups": [
-               {
-                 "name": "fan inventory",
-                 "interface": "xyz.openbmc_project.Inventory.Item",
-                 "property": { "name": "Present" }
-               },
-               {
-                 "name": "occ objects",
-                 "interface": "org.open_power.OCC.Status",
-                 "property": { "name": "OccActive" }
-               },
-               {
-                 "name": "nvme temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "planar temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "flett temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "pcie cable card temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "ambient temp",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               }
-             ],
-             "target": 18000
-           }
-         ]
-       }
-     ]
-   },
-   {
-    // Set a fan floor if an OCC isn't active
-    "name": "Non-active OCCs",
-    "groups": [
-      {
-        "name": "occ objects",
-        "interface": "org.open_power.OCC.Status",
-        "property": {
-          "name": "OccActive"
-        }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 18000
-      }
-    ]
-  },
-  {
-    // Set a raised fan floor when any temperature or altitude sensor is
-    // nonfunctional
-    "name": "Nonfunctional temperature sensors",
-    "groups": [
-      {
-        "name": "proc0 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc2 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc3 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc0 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc2 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc3 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pmic temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "internal memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram and external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "vdd vrm temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "planar temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "flett temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pcie cable card temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "altitude",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_removed"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 18000
-      }
-    ]
-  },
-  {
-     "name": "Set Proc 0 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 2 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 2 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 3 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 3 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 0 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 2 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 2 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 3 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 3 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     // Collect group temperatures each iteration the repeating timer expires
-     "name": "Fan control timer loop",
-     "groups": [
-       {
-         "name": "proc0 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc2 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc3 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc0 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc2 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc3 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pmic temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "internal memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram and external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "vdd vrm temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "flett temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "timer",
-         "type": "repeating",
-         "interval": 2000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc2 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc3 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc2 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc3 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 68.0,
-         "delta": 100
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 68.0,
-         "delta": 100
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 74.0,
-         "delta": 100
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 82.0,
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 58.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "flett temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 80.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 70.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc2 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc3 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc2 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc3 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 71.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 52.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 52.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 79.0,
-         "delta": 30
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 80
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "flett temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 75.0,
-         "delta": 80
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 80
-       }
-     ]
-   },
-   {
-     // Remove NVMe temperature objects from cache when they are removed from
-     // dbus. There's no need to react to their removal.
-     "name": "remove nvme objects",
-     "groups": [
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "signal",
-         "signal": "interfaces_removed"
-       }
-     ]
-   },
-   {
-     "name": "set pcie floor index",
-     "groups": [
-       {
-         "name": "pcie slots",
-         "interface": "xyz.openbmc_project.State.Decorator.PowerState",
-         "property": {
-           "name": "PowerState"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0DeviceId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0VendorId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemVendorId"
-         }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       }
-     ],
-     "actions": [
-       {
-         "name": "pcie_card_floors",
-         "use_config_specific_files": true,
-         "settle_time": 2
-       }
-     ]
-   },
-   {
-     "name": "Set altitude offset parameter",
-     "groups": [
-       {
-         "name": "altitude",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         // Refresh altitude every 24hrs
-         "class": "timer",
-         "type": "repeating",
-         "interval": 86400000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_20_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 10000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 700 },
-             { "arg_value": 1500, "parameter_value": 1600 },
-             { "arg_value": 2000, "parameter_value": 2300 },
-             { "arg_value": 2500, "parameter_value": 3200 },
-             { "arg_value": 3300, "parameter_value": 4000 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_25_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 10000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 1000 },
-             { "arg_value": 1500, "parameter_value": 2100 },
-             { "arg_value": 2000, "parameter_value": 3100 },
-             { "arg_value": 2500, "parameter_value": 4100 },
-             { "arg_value": 3300, "parameter_value": 4900 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_30_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 10000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 1000 },
-             { "arg_value": 1500, "parameter_value": 2100 },
-             { "arg_value": 2000, "parameter_value": 3200 },
-             { "arg_value": 2500, "parameter_value": 4000 },
-             { "arg_value": 3300, "parameter_value": 4800 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_35_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 10000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 900 },
-             { "arg_value": 1500, "parameter_value": 1700 },
-             { "arg_value": 2000, "parameter_value": 2500 },
-             { "arg_value": 2500, "parameter_value": 3400 },
-             { "arg_value": 3300, "parameter_value": 4200 }
-           ]
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "ambient_40_altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 10000,
-           "value": [
-             { "arg_value": 500, "parameter_value": 0 },
-             { "arg_value": 1000, "parameter_value": 1000 },
-             { "arg_value": 1500, "parameter_value": 1900 },
-             { "arg_value": 2000, "parameter_value": 2800 },
-             { "arg_value": 2500, "parameter_value": 3700 },
-             { "arg_value": 3300, "parameter_value": 4500 }
-           ]
-         }
-       }
-     ]
-   },
-   {
-     "name": "Fan floors",
-     "groups": [
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.Sensor.Value",
-        "property": { "name": "Value" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "parameter",
-         "parameter": "pcie_floor_index"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_20_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_25_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_30_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_35_altitude_offset"
-       },
-       {
-         "class": "parameter",
-         "parameter": "ambient_40_altitude_offset"
-       }
-     ],
-     "actions": [
-       {
-         "name": "mapped_floor",
-         "key_group": "ambient temp",
-         "fan_floors": [
-          {
-            // Entry valid for temps < 20
-            "key": 20,
-            "default_floor": 5400,
-            "floor_offset_parameter": "ambient_20_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 5600 },
-                  { "value": 2, "floor": 9000 },
-                  { "value": 3, "floor": 9000 },
-                  { "value": 4, "floor": 9200 },
-                  { "value": 5, "floor": 10600 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 25
-            "key": 25,
-            "default_floor": 7300,
-            "floor_offset_parameter": "ambient_25_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 7800 },
-                  { "value": 2, "floor": 10700 },
-                  { "value": 3, "floor": 11300 },
-                  { "value": 4, "floor": 12700 },
-                  { "value": 5, "floor": 13900 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 30
-            "key": 30,
-            "default_floor": 9100,
-            "floor_offset_parameter": "ambient_30_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 10300 },
-                  { "value": 2, "floor": 12100 },
-                  { "value": 3, "floor": 14400 },
-                  { "value": 4, "floor": 16300 },
-                  { "value": 5, "floor": 17200 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 35
-            "key": 35,
-            "default_floor": 10800,
-            "floor_offset_parameter": "ambient_35_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 12700 },
-                  { "value": 2, "floor": 13500 },
-                  { "value": 3, "floor": 17400 },
-                  { "value": 4, "floor": 18000 },
-                  { "value": 5, "floor": 18000 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for temps < 40
-            "key": 40,
-            "default_floor": 12600,
-            "floor_offset_parameter": "ambient_40_altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 15000 },
-                  { "value": 2, "floor": 15500 },
-                  { "value": 3, "floor": 18000 },
-                  { "value": 4, "floor": 18000 },
-                  { "value": 5, "floor": 18000 }
-                ]
-              }
-            ]
-          }
+    {
+        // Hold fans at the given target when a number of fans are missing.
+        "name": "fan(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 18000
+            }
         ]
-       }
-     ]
-   }
+    },
+    {
+        // Hold fans at the given target when a number of rotors are nonfunctional.
+        "name": "fan rotor(s) faulted",
+        "groups": [
+            {
+                "name": "fan0 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan1 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan2 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan3 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan4 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan5 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 18000
+            }
+        ]
+    },
+    {
+        // (for the following 6 rules)
+        // if a dual-rotor fan becomes non-functional, lock its speed to
+        // poweron_target to lock the other rotor to full_speed
+        "name": "nonfunc rotor override-0",
+        "groups": [
+            {
+                "name": "fan0 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan0"],
+                "target": 18000
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-1",
+        "groups": [
+            {
+                "name": "fan1 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan1"],
+                "target": 18000
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-2",
+        "groups": [
+            {
+                "name": "fan2 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan2"],
+                "target": 18000
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-3",
+        "groups": [
+            {
+                "name": "fan3 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan3"],
+                "target": 18000
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-4",
+        "groups": [
+            {
+                "name": "fan4 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan4"],
+                "target": 18000
+            }
+        ]
+    },
+    {
+        "name": "nonfunc rotor override-5",
+        "groups": [
+            {
+                "name": "fan5 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "override_fan_target",
+                "count": 1,
+                "state": false,
+                "fans": ["fan5"],
+                "target": 18000
+            }
+        ]
+    },
+    {
+        // Hold fans at the given target when any critical service
+        // is not running for 5 seconds.
+        "name": "service(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            },
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": { "name": "OccActive" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "name_has_owner"
+            },
+            {
+                "class": "signal",
+                "signal": "name_owner_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "call_actions_based_on_timer",
+                "timer": {
+                    "interval": 5000000,
+                    "type": "oneshot"
+                },
+                "actions": [
+                    {
+                        "name": "set_target_on_missing_owner",
+                        "groups": [
+                            {
+                                "name": "fan inventory",
+                                "interface": "xyz.openbmc_project.Inventory.Item",
+                                "property": { "name": "Present" }
+                            },
+                            {
+                                "name": "occ objects",
+                                "interface": "org.open_power.OCC.Status",
+                                "property": { "name": "OccActive" }
+                            },
+                            {
+                                "name": "nvme temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "planar temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "flett temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "pcie cable card temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "ambient temp",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            }
+                        ],
+                        "target": 18000
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        // Set a fan floor if an OCC isn't active
+        "name": "Non-active OCCs",
+        "groups": [
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": {
+                    "name": "OccActive"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 18000
+            }
+        ]
+    },
+    {
+        // Set a raised fan floor when any temperature or altitude sensor is
+        // nonfunctional
+        "name": "Nonfunctional temperature sensors",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc2 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc3 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc2 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc3 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 18000
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 2 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 2 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 3 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 3 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 2 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 2 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 3 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 3 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        // Collect group temperatures each iteration the repeating timer expires
+        "name": "Fan control timer loop",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc2 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc3 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc2 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc3 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "timer",
+                "type": "repeating",
+                "interval": 2000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc2 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc3 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc2 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc3 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 68.0,
+                "delta": 100
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 68.0,
+                "delta": 100
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 74.0,
+                "delta": 100
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 82.0,
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 58.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "flett temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 80.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 70.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc2 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc3 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc2 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc3 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 71.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 52.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 52.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 79.0,
+                "delta": 30
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 80
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "flett temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 75.0,
+                "delta": 80
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 80
+            }
+        ]
+    },
+    {
+        // Remove NVMe temperature objects from cache when they are removed from
+        // dbus. There's no need to react to their removal.
+        "name": "remove nvme objects",
+        "groups": [
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            }
+        ]
+    },
+    {
+        "name": "set pcie floor index",
+        "groups": [
+            {
+                "name": "pcie slots",
+                "interface": "xyz.openbmc_project.State.Decorator.PowerState",
+                "property": {
+                    "name": "PowerState"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0DeviceId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0VendorId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemVendorId"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            }
+        ],
+        "actions": [
+            {
+                "name": "pcie_card_floors",
+                "use_config_specific_files": true,
+                "settle_time": 2
+            }
+        ]
+    },
+    {
+        "name": "Set altitude offset parameter",
+        "groups": [
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                // Refresh altitude every 24hrs
+                "class": "timer",
+                "type": "repeating",
+                "interval": 86400000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_20_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 10000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 700 },
+                        { "arg_value": 1500, "parameter_value": 1600 },
+                        { "arg_value": 2000, "parameter_value": 2300 },
+                        { "arg_value": 2500, "parameter_value": 3200 },
+                        { "arg_value": 3300, "parameter_value": 4000 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_25_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 10000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 1000 },
+                        { "arg_value": 1500, "parameter_value": 2100 },
+                        { "arg_value": 2000, "parameter_value": 3100 },
+                        { "arg_value": 2500, "parameter_value": 4100 },
+                        { "arg_value": 3300, "parameter_value": 4900 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_30_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 10000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 1000 },
+                        { "arg_value": 1500, "parameter_value": 2100 },
+                        { "arg_value": 2000, "parameter_value": 3200 },
+                        { "arg_value": 2500, "parameter_value": 4000 },
+                        { "arg_value": 3300, "parameter_value": 4800 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_35_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 10000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 900 },
+                        { "arg_value": 1500, "parameter_value": 1700 },
+                        { "arg_value": 2000, "parameter_value": 2500 },
+                        { "arg_value": 2500, "parameter_value": 3400 },
+                        { "arg_value": 3300, "parameter_value": 4200 }
+                    ]
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "ambient_40_altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 10000,
+                    "value": [
+                        { "arg_value": 500, "parameter_value": 0 },
+                        { "arg_value": 1000, "parameter_value": 1000 },
+                        { "arg_value": 1500, "parameter_value": 1900 },
+                        { "arg_value": 2000, "parameter_value": 2800 },
+                        { "arg_value": 2500, "parameter_value": 3700 },
+                        { "arg_value": 3300, "parameter_value": 4500 }
+                    ]
+                }
+            }
+        ]
+    },
+    {
+        "name": "Fan floors",
+        "groups": [
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "parameter",
+                "parameter": "pcie_floor_index"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_20_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_25_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_30_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_35_altitude_offset"
+            },
+            {
+                "class": "parameter",
+                "parameter": "ambient_40_altitude_offset"
+            }
+        ],
+        "actions": [
+            {
+                "name": "mapped_floor",
+                "key_group": "ambient temp",
+                "fan_floors": [
+                    {
+                        // Entry valid for temps < 20
+                        "key": 20,
+                        "default_floor": 5400,
+                        "floor_offset_parameter": "ambient_20_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 5600 },
+                                    { "value": 2, "floor": 9000 },
+                                    { "value": 3, "floor": 9000 },
+                                    { "value": 4, "floor": 9200 },
+                                    { "value": 5, "floor": 10600 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 25
+                        "key": 25,
+                        "default_floor": 7300,
+                        "floor_offset_parameter": "ambient_25_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 7800 },
+                                    { "value": 2, "floor": 10700 },
+                                    { "value": 3, "floor": 11300 },
+                                    { "value": 4, "floor": 12700 },
+                                    { "value": 5, "floor": 13900 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 30
+                        "key": 30,
+                        "default_floor": 9100,
+                        "floor_offset_parameter": "ambient_30_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 10300 },
+                                    { "value": 2, "floor": 12100 },
+                                    { "value": 3, "floor": 14400 },
+                                    { "value": 4, "floor": 16300 },
+                                    { "value": 5, "floor": 17200 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 35
+                        "key": 35,
+                        "default_floor": 10800,
+                        "floor_offset_parameter": "ambient_35_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 12700 },
+                                    { "value": 2, "floor": 13500 },
+                                    { "value": 3, "floor": 17400 },
+                                    { "value": 4, "floor": 18000 },
+                                    { "value": 5, "floor": 18000 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for temps < 40
+                        "key": 40,
+                        "default_floor": 12600,
+                        "floor_offset_parameter": "ambient_40_altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 15000 },
+                                    { "value": 2, "floor": 15500 },
+                                    { "value": 3, "floor": 18000 },
+                                    { "value": 4, "floor": 18000 },
+                                    { "value": 5, "floor": 18000 }
+                                ]
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,rainier-2u/groups.json b/control/config_files/p10bmc/ibm,rainier-2u/groups.json
index 5c98bfc..41cc30d 100644
--- a/control/config_files/p10bmc/ibm,rainier-2u/groups.json
+++ b/control/config_files/p10bmc/ibm,rainier-2u/groups.json
@@ -1,593 +1,591 @@
 [
- {
-   "name": "fan inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5"
-   ]
- },
- {
-   "name": "fan0 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1"
-   ]
- },
- {
-   "name": "fan1 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1"
-   ]
- },
- {
-   "name": "fan2 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1"
-   ]
- },
- {
-   "name": "fan3 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1"
-   ]
- },
- {
-   "name": "fan4 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_1"
-   ]
- },
- {
-   "name": "fan5 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_1"
-   ]
- },
- {
-   "name": "occ objects",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/org/open_power/control/occ0",
-     "/org/open_power/control/occ1",
-     "/org/open_power/control/occ2",
-     "/org/open_power/control/occ3"
-   ]
- },
- {
-   "name": "proc0 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
-   ]
- },
- {
-   "name": "proc1 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
-   ]
- },
- {
-   "name": "proc2 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc2_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core15_1_temp"
-   ]
- },
- {
-   "name": "proc3 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc3_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core15_1_temp"
-   ]
- },
- {
-   "name": "proc0 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
-   ]
- },
- {
-   "name": "proc1 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
-   ]
- },
- {
-   "name": "proc2 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc2_ioring_temp"
-   ]
- },
- {
-   "name": "proc3 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc3_ioring_temp"
-   ]
- },
- {
-   "name": "dram temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_dram_temp"
-   ]
- },
- {
-   "name": "pmic temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_pmic_temp"
-   ]
- },
- {
-   "name": "internal memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_intmb_temp"
-   ]
- },
- {
-   "name": "dram and external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_dram_extmb_temp"
-   ]
- },
- {
-   "name": "external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_extmb_temp"
-   ]
- },
- {
-   "name": "vdd vrm temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd2_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd3_temp"
-   ]
- },
- {
-   "name": "proc 0 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 2 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc2_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 3 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc3_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 0 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 2 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc2_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 3 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc3_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "nvme temps",
-   "service": "xyz.openbmc_project.NVMeSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp"
-   ]
- },
- {
-   "name": "planar temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
-     "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
-   ]
- },
- {
-   "name": "flett temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C8_Temp",
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C11_Temp"
-   ]
- },
- {
-   // Bear River card
-   "name": "pcie cable card temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C0_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C2_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C3_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C4_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
-   ]
- },
- {
-   "name": "ambient temp",
-   "service": "xyz.openbmc_project.VirtualSensor",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
-   ]
- },
- {
-   "name": "altitude",
-   "service": "xyz.openbmc_project.VirtualSensor",
-   "members": [
-      "/xyz/openbmc_project/sensors/altitude/Altitude"
-   ]
- },
- {
-   "name": "pcie cards",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1/pcie_card1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2/pcie_card2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3/pcie_card3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4/pcie_card4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
-   ]
- },
- {
-   "name": "pcie slots",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
-   ]
- }
+    {
+        "name": "fan inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5"
+        ]
+    },
+    {
+        "name": "fan0 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1"
+        ]
+    },
+    {
+        "name": "fan1 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1"
+        ]
+    },
+    {
+        "name": "fan2 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1"
+        ]
+    },
+    {
+        "name": "fan3 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1"
+        ]
+    },
+    {
+        "name": "fan4 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_1"
+        ]
+    },
+    {
+        "name": "fan5 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_1"
+        ]
+    },
+    {
+        "name": "occ objects",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/org/open_power/control/occ0",
+            "/org/open_power/control/occ1",
+            "/org/open_power/control/occ2",
+            "/org/open_power/control/occ3"
+        ]
+    },
+    {
+        "name": "proc0 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc1 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc2 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc3 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc0 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc1 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc2 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc3 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_ioring_temp"
+        ]
+    },
+    {
+        "name": "dram temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_dram_temp"
+        ]
+    },
+    {
+        "name": "pmic temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_pmic_temp"
+        ]
+    },
+    {
+        "name": "internal memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_intmb_temp"
+        ]
+    },
+    {
+        "name": "dram and external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_dram_extmb_temp"
+        ]
+    },
+    {
+        "name": "external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_extmb_temp"
+        ]
+    },
+    {
+        "name": "vdd vrm temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd2_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd3_temp"
+        ]
+    },
+    {
+        "name": "proc 0 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 2 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 3 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 0 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 2 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 3 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "nvme temps",
+        "service": "xyz.openbmc_project.NVMeSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp"
+        ]
+    },
+    {
+        "name": "planar temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
+        ]
+    },
+    {
+        "name": "flett temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C11_Temp"
+        ]
+    },
+    {
+        // Bear River card
+        "name": "pcie cable card temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C0_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
+        ]
+    },
+    {
+        "name": "ambient temp",
+        "service": "xyz.openbmc_project.VirtualSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
+        ]
+    },
+    {
+        "name": "altitude",
+        "service": "xyz.openbmc_project.VirtualSensor",
+        "members": ["/xyz/openbmc_project/sensors/altitude/Altitude"]
+    },
+    {
+        "name": "pcie cards",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1/pcie_card1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2/pcie_card2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3/pcie_card3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4/pcie_card4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
+        ]
+    },
+    {
+        "name": "pcie slots",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
+        ]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,rainier-2u/pcie_cards.json b/control/config_files/p10bmc/ibm,rainier-2u/pcie_cards.json
index ee0111d..83bdf86 100644
--- a/control/config_files/p10bmc/ibm,rainier-2u/pcie_cards.json
+++ b/control/config_files/p10bmc/ibm,rainier-2u/pcie_cards.json
@@ -1,180 +1,180 @@
 {
-  "cards": [
-    {
-      "name": "PHYP had errors getting IDs",
-      "vendor_id": "0xFFFF",
-      "device_id": "0xFFFF",
-      "subsystem_vendor_id": "0xFFFF",
-      "subsystem_id": "0xFFFF",
-      "floor_index": 5
-    },
-    {
-      "name": "Flett",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0007",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "Bear Lake and Bear River",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0004",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "Everglades 10Gb 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1015",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x061F",
-      "floor_index": 1
-    },
-    {
-      "name": "Everglades 25Gb 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1015",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x061E",
-      "floor_index": 1
-    },
-    {
-      "name": "Cedar Lake 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A6",
-      "floor_index": 5
-    },
-    {
-      "name": "Cedar Lake Crypto 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A5",
-      "floor_index": 5
-    },
-    {
-      "name": "GTO",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x033B",
-      "floor_index": 3
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0621",
-      "floor_index": 3
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0622",
-      "floor_index": 4
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0629",
-      "floor_index": 4
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064A",
-      "floor_index": 3
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064B",
-      "floor_index": 4
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064C",
-      "floor_index": 4
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0682",
-      "floor_index": 4
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0683",
-      "floor_index": 4
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0684",
-      "floor_index": 4
-    },
-    {
-      "name": "Puntfish",
-      "vendor_id": "0x1077",
-      "device_id": "0x2271",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x069E",
-      "floor_index": 1
-    },
-    {
-      "name": "Flavafish",
-      "vendor_id": "0x1077",
-      "device_id": "0x2281",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0651",
-      "floor_index": 1
-    },
-    {
-      "name": "Haleakala EN 2Port 100Gb",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1019",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0635",
-      "floor_index": 5
-    },
-    {
-      "name": "Crater Lake Crypto 200G 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A3",
-      "floor_index": 5
-    },
-    {
-      "name": "Crater Lake 200G 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A4",
-      "floor_index": 5
-    }
-  ]
+    "cards": [
+        {
+            "name": "PHYP had errors getting IDs",
+            "vendor_id": "0xFFFF",
+            "device_id": "0xFFFF",
+            "subsystem_vendor_id": "0xFFFF",
+            "subsystem_id": "0xFFFF",
+            "floor_index": 5
+        },
+        {
+            "name": "Flett",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0007",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "Bear Lake and Bear River",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0004",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "Everglades 10Gb 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1015",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x061F",
+            "floor_index": 1
+        },
+        {
+            "name": "Everglades 25Gb 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1015",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x061E",
+            "floor_index": 1
+        },
+        {
+            "name": "Cedar Lake 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A6",
+            "floor_index": 5
+        },
+        {
+            "name": "Cedar Lake Crypto 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A5",
+            "floor_index": 5
+        },
+        {
+            "name": "GTO",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x033B",
+            "floor_index": 3
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0621",
+            "floor_index": 3
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0622",
+            "floor_index": 4
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0629",
+            "floor_index": 4
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064A",
+            "floor_index": 3
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064B",
+            "floor_index": 4
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064C",
+            "floor_index": 4
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0682",
+            "floor_index": 4
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0683",
+            "floor_index": 4
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0684",
+            "floor_index": 4
+        },
+        {
+            "name": "Puntfish",
+            "vendor_id": "0x1077",
+            "device_id": "0x2271",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x069E",
+            "floor_index": 1
+        },
+        {
+            "name": "Flavafish",
+            "vendor_id": "0x1077",
+            "device_id": "0x2281",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0651",
+            "floor_index": 1
+        },
+        {
+            "name": "Haleakala EN 2Port 100Gb",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1019",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0635",
+            "floor_index": 5
+        },
+        {
+            "name": "Crater Lake Crypto 200G 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A3",
+            "floor_index": 5
+        },
+        {
+            "name": "Crater Lake 200G 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A4",
+            "floor_index": 5
+        }
+    ]
 }
diff --git a/control/config_files/p10bmc/ibm,rainier-4u/events.json b/control/config_files/p10bmc/ibm,rainier-4u/events.json
index 5968efb..ec2923f 100644
--- a/control/config_files/p10bmc/ibm,rainier-4u/events.json
+++ b/control/config_files/p10bmc/ibm,rainier-4u/events.json
@@ -1,1461 +1,1461 @@
 [
-   {
-     // Hold fans at the given target when a number of fans are missing.
-     "name": "fan(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 10400
-       }
-     ]
-   },
-   {
-     // Hold fans at the given target when a number of rotors are nonfunctional.
-     "name": "fan rotor(s) faulted",
-     "groups": [
-       {
-         "name": "fan0 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan1 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan2 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan3 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan4 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       },
-       {
-         "name": "fan5 rotor inventory",
-         "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-         "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "count_state_before_target",
-         "count": 1,
-         "state": false,
-         "target": 10400
-       }
-     ]
-   },
-   {
-     // Hold fans at the given target when any critical service
-     // is not running for 5 seconds.
-     "name": "service(s) missing",
-     "groups": [
-       {
-         "name": "fan inventory",
-         "interface": "xyz.openbmc_project.Inventory.Item",
-         "property": { "name": "Present" }
-       },
-       {
-         "name": "occ objects",
-         "interface": "org.open_power.OCC.Status",
-         "property": { "name": "OccActive" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "flett temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "ambient temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "name_has_owner"
-       },
-       {
-         "class": "signal",
-         "signal": "name_owner_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "call_actions_based_on_timer",
-         "timer": {
-           "interval": 5000000,
-           "type": "oneshot"
-         },
-         "actions": [
-           {
-             "name": "set_target_on_missing_owner",
-             "groups": [
-               {
-                 "name": "fan inventory",
-                 "interface": "xyz.openbmc_project.Inventory.Item",
-                 "property": { "name": "Present" }
-               },
-               {
-                 "name": "occ objects",
-                 "interface": "org.open_power.OCC.Status",
-                 "property": { "name": "OccActive" }
-               },
-               {
-                 "name": "nvme temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "planar temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "flett temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "pcie cable card temps",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               },
-               {
-                 "name": "ambient temp",
-                 "interface": "xyz.openbmc_project.Sensor.Value",
-                 "property": { "name": "Value" }
-               }
-             ],
-             "target": 10400
-           }
-         ]
-       }
-     ]
-   },
-   {
-    // Set a fan floor if an OCC isn't active
-    "name": "Non-active OCCs",
-    "groups": [
-      {
-        "name": "occ objects",
-        "interface": "org.open_power.OCC.Status",
-        "property": {
-          "name": "OccActive"
-        }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 10400
-      }
-    ]
-  },
-  {
-    // Set a raised fan floor when any temperature sensor is nonfunctional
-    "name": "Nonfunctional temperature sensors",
-    "groups": [
-      {
-        "name": "proc0 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc2 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc3 core temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc0 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc1 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc2 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "proc3 ioring temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pmic temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "internal memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "dram and external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "external memory buffer temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "vdd vrm temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "planar temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "flett temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "pcie cable card temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      },
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-      }
-    ],
-    "triggers": [
-      {
-        "class": "signal",
-        "signal": "properties_changed"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_added"
-      },
-      {
-        "class": "signal",
-        "signal": "interfaces_removed"
-      },
-      {
-        "class": "init",
-        "method": "get_properties"
-      }
-    ],
-    "actions": [
-      {
-        "name": "count_state_floor",
-        "count": 1,
-        "state": false,
-        "floor": 10400
-      }
-    ]
-  },
-  {
-     "name": "Set Proc 0 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 1 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 2 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 2 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 3 Core DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 3 core dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_core_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 0 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 0 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-
-   {
-     "name": "Set Proc 1 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 1 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 2 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 2 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "name": "Set Proc 3 IO Ring DVFS parameter",
-     "groups": [
-       {
-         "name": "proc 3 ioring dvfs temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_ioring_dvfs_increase_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     // Collect group temperatures each iteration the repeating timer expires
-     "name": "Fan control timer loop",
-     "groups": [
-       {
-         "name": "proc0 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc2 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc3 core temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc0 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc1 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc2 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "proc3 ioring temp",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pmic temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "internal memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "dram and external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "external memory buffer temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "vdd vrm temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "planar temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "flett temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-         "name": "pcie cable card temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "timer",
-         "type": "repeating",
-         "interval": 2000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc2 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc3 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_core_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc2 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "proc3 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 63.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 74.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 66.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 82.0,
-         "delta": 300
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 58.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "flett temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 80.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 70.0,
-         "delta": 255
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc2 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc3 core temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc0 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc1 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc2 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "proc3 ioring temp",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 62.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 71.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "dram and external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 63.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "external memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 57.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "vdd vrm temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 79.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "nvme temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 55.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "planar temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 60.0,
-         "delta": 50
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "flett temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 75.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pcie cable card temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 65.0,
-         "delta": 50
-       }
-     ]
-   },
-   {
-     // Remove NVMe temperature objects from cache when they are removed from
-     // dbus. There's no need to react to their removal.
-     "name": "remove nvme objects",
-     "groups": [
-       {
-         "name": "nvme temps",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       },
-       {
-        "name": "nvme temps",
-        "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-        "property": { "name": "Functional" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "signal",
-         "signal": "interfaces_removed"
-       }
-     ]
-   },
-   {
-     "name": "set pcie floor index",
-     "groups": [
-       {
-         "name": "pcie slots",
-         "interface": "xyz.openbmc_project.State.Decorator.PowerState",
-         "property": {
-           "name": "PowerState"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0DeviceId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0VendorId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemId"
-         }
-       },
-       {
-         "name": "pcie cards",
-         "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
-         "property": {
-           "name": "Function0SubsystemVendorId"
-         }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       }
-     ],
-     "actions": [
-       {
-         "name": "pcie_card_floors",
-         "use_config_specific_files": true,
-         "settle_time": 2
-       }
-     ]
-   },
-   {
-     "name": "Set altitude offset parameter",
-     "groups": [
-       {
-         "name": "altitude",
-         "interface": "xyz.openbmc_project.Sensor.Value",
-         "property": { "name": "Value" }
-       }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         // Refresh altitude every 24hrs
-         "class": "timer",
-         "type": "repeating",
-         "interval": 86400000000,
-         "preload_groups": true
-       }
-     ],
-     "actions": [
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "altitude_offset",
-         "modifier": {
-           "operator": "less_than",
-           "default_value": 3000,
-           "value": [
-             { "arg_value": 1000, "parameter_value": 0 },
-             { "arg_value": 1900, "parameter_value": 1000 },
-             { "arg_value": 2800, "parameter_value": 2000 }
-           ]
-         }
-       }
-     ]
-   },
-   {
-     "name": "Fan floors",
-     "groups": [
-      {
-        "name": "ambient temp",
-        "interface": "xyz.openbmc_project.Sensor.Value",
-        "property": { "name": "Value" }
-      },
-      {
-        "name": "power mode",
-        "interface": "xyz.openbmc_project.Control.Power.Mode",
-        "property": { "name": "PowerMode" }
-      }
-     ],
-     "triggers": [
-       {
-         "class": "init",
-         "method": "get_properties"
-       },
-       {
-         "class": "signal",
-         "signal": "properties_changed"
-       },
-       {
-         "class": "signal",
-         "signal": "interfaces_added"
-       },
-       {
-         "class": "parameter",
-         "parameter": "pcie_floor_index"
-       },
-       {
-         "class": "parameter",
-         "parameter": "altitude_offset"
-       }
-     ],
-     "actions": [
-       {
-         "name": "mapped_floor",
-         "key_group": "ambient temp",
-         "fan_floors": [
-          {
-            // Entry valid for ambient temp < 27
-            "key": 27,
-            "default_floor": 5000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 7000 },
-                  { "value": 2, "floor": 8000 },
-                  { "value": 3, "floor": 9000 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for ambient temp < 32
-            "key": 32,
-            "default_floor": 6000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 8000 },
-                  { "value": 2, "floor": 9000 },
-                  { "value": 3, "floor": 9500 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for ambient temp < 37
-            "key": 37,
-            "default_floor": 7000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 9000 },
-                  { "value": 2, "floor": 9500 },
-                  { "value": 3, "floor": 10400 }
-                ]
-              }
-            ]
-          },
-          {
-            // Entry valid for ambient temp < 42
-            "key": 42,
-            "default_floor": 8000,
-            "floor_offset_parameter": "altitude_offset",
-            "floors": [
-              {
-                "parameter": "pcie_floor_index",
-                "floors": [
-                  { "value": 1, "floor": 9500 },
-                  { "value": 2, "floor": 10400 },
-                  { "value": 3, "floor": 10400 }
-                ]
-              }
-            ]
-          }
+    {
+        // Hold fans at the given target when a number of fans are missing.
+        "name": "fan(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 10400
+            }
         ]
-       }
-     ]
-   }
+    },
+    {
+        // Hold fans at the given target when a number of rotors are nonfunctional.
+        "name": "fan rotor(s) faulted",
+        "groups": [
+            {
+                "name": "fan0 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan1 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan2 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan3 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan4 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "fan5 rotor inventory",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_before_target",
+                "count": 1,
+                "state": false,
+                "target": 10400
+            }
+        ]
+    },
+    {
+        // Hold fans at the given target when any critical service
+        // is not running for 5 seconds.
+        "name": "service(s) missing",
+        "groups": [
+            {
+                "name": "fan inventory",
+                "interface": "xyz.openbmc_project.Inventory.Item",
+                "property": { "name": "Present" }
+            },
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": { "name": "OccActive" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "name_has_owner"
+            },
+            {
+                "class": "signal",
+                "signal": "name_owner_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "call_actions_based_on_timer",
+                "timer": {
+                    "interval": 5000000,
+                    "type": "oneshot"
+                },
+                "actions": [
+                    {
+                        "name": "set_target_on_missing_owner",
+                        "groups": [
+                            {
+                                "name": "fan inventory",
+                                "interface": "xyz.openbmc_project.Inventory.Item",
+                                "property": { "name": "Present" }
+                            },
+                            {
+                                "name": "occ objects",
+                                "interface": "org.open_power.OCC.Status",
+                                "property": { "name": "OccActive" }
+                            },
+                            {
+                                "name": "nvme temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "planar temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "flett temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "pcie cable card temps",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            },
+                            {
+                                "name": "ambient temp",
+                                "interface": "xyz.openbmc_project.Sensor.Value",
+                                "property": { "name": "Value" }
+                            }
+                        ],
+                        "target": 10400
+                    }
+                ]
+            }
+        ]
+    },
+    {
+        // Set a fan floor if an OCC isn't active
+        "name": "Non-active OCCs",
+        "groups": [
+            {
+                "name": "occ objects",
+                "interface": "org.open_power.OCC.Status",
+                "property": {
+                    "name": "OccActive"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 10400
+            }
+        ]
+    },
+    {
+        // Set a raised fan floor when any temperature sensor is nonfunctional
+        "name": "Nonfunctional temperature sensors",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc2 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc3 core temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc2 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "proc3 ioring temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            },
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            },
+            {
+                "class": "init",
+                "method": "get_properties"
+            }
+        ],
+        "actions": [
+            {
+                "name": "count_state_floor",
+                "count": 1,
+                "state": false,
+                "floor": 10400
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 1 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 2 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 2 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 3 Core DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 3 core dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_core_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_core_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 0 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 0 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+
+    {
+        "name": "Set Proc 1 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 1 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 2 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 2 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        "name": "Set Proc 3 IO Ring DVFS parameter",
+        "groups": [
+            {
+                "name": "proc 3 ioring dvfs temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_ioring_dvfs_increase_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 10
+                }
+            },
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
+                "modifier": {
+                    "operator": "minus",
+                    "value": 13
+                }
+            }
+        ]
+    },
+    {
+        // Collect group temperatures each iteration the repeating timer expires
+        "name": "Fan control timer loop",
+        "groups": [
+            {
+                "name": "proc0 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc2 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc3 core temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc0 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc1 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc2 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "proc3 ioring temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pmic temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "internal memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "dram and external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "external memory buffer temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "vdd vrm temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "planar temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "flett temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "pcie cable card temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "timer",
+                "type": "repeating",
+                "interval": 2000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc2 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc3 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_core_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc2 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "proc3 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 63.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 74.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 66.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 82.0,
+                "delta": 300
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 58.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "flett temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 80.0,
+                "delta": 200
+            },
+            {
+                "name": "set_net_increase_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 70.0,
+                "delta": 255
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc2 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc3 core temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc0 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc1 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc2 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "proc3 ioring temp",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pmic temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 62.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "internal memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 71.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "dram and external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 63.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "external memory buffer temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 57.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "vdd vrm temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 79.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "nvme temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 55.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "planar temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 60.0,
+                "delta": 50
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "flett temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 75.0,
+                "delta": 40
+            },
+            {
+                "name": "set_net_decrease_target",
+                "groups": [
+                    {
+                        "name": "pcie cable card temps",
+                        "interface": "xyz.openbmc_project.Sensor.Value",
+                        "property": { "name": "Value" }
+                    }
+                ],
+                "state": 65.0,
+                "delta": 50
+            }
+        ]
+    },
+    {
+        // Remove NVMe temperature objects from cache when they are removed from
+        // dbus. There's no need to react to their removal.
+        "name": "remove nvme objects",
+        "groups": [
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "nvme temps",
+                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
+                "property": { "name": "Functional" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "signal",
+                "signal": "interfaces_removed"
+            }
+        ]
+    },
+    {
+        "name": "set pcie floor index",
+        "groups": [
+            {
+                "name": "pcie slots",
+                "interface": "xyz.openbmc_project.State.Decorator.PowerState",
+                "property": {
+                    "name": "PowerState"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0DeviceId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0VendorId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemId"
+                }
+            },
+            {
+                "name": "pcie cards",
+                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
+                "property": {
+                    "name": "Function0SubsystemVendorId"
+                }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            }
+        ],
+        "actions": [
+            {
+                "name": "pcie_card_floors",
+                "use_config_specific_files": true,
+                "settle_time": 2
+            }
+        ]
+    },
+    {
+        "name": "Set altitude offset parameter",
+        "groups": [
+            {
+                "name": "altitude",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                // Refresh altitude every 24hrs
+                "class": "timer",
+                "type": "repeating",
+                "interval": 86400000000,
+                "preload_groups": true
+            }
+        ],
+        "actions": [
+            {
+                "name": "set_parameter_from_group_max",
+                "parameter_name": "altitude_offset",
+                "modifier": {
+                    "operator": "less_than",
+                    "default_value": 3000,
+                    "value": [
+                        { "arg_value": 1000, "parameter_value": 0 },
+                        { "arg_value": 1900, "parameter_value": 1000 },
+                        { "arg_value": 2800, "parameter_value": 2000 }
+                    ]
+                }
+            }
+        ]
+    },
+    {
+        "name": "Fan floors",
+        "groups": [
+            {
+                "name": "ambient temp",
+                "interface": "xyz.openbmc_project.Sensor.Value",
+                "property": { "name": "Value" }
+            },
+            {
+                "name": "power mode",
+                "interface": "xyz.openbmc_project.Control.Power.Mode",
+                "property": { "name": "PowerMode" }
+            }
+        ],
+        "triggers": [
+            {
+                "class": "init",
+                "method": "get_properties"
+            },
+            {
+                "class": "signal",
+                "signal": "properties_changed"
+            },
+            {
+                "class": "signal",
+                "signal": "interfaces_added"
+            },
+            {
+                "class": "parameter",
+                "parameter": "pcie_floor_index"
+            },
+            {
+                "class": "parameter",
+                "parameter": "altitude_offset"
+            }
+        ],
+        "actions": [
+            {
+                "name": "mapped_floor",
+                "key_group": "ambient temp",
+                "fan_floors": [
+                    {
+                        // Entry valid for ambient temp < 27
+                        "key": 27,
+                        "default_floor": 5000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 7000 },
+                                    { "value": 2, "floor": 8000 },
+                                    { "value": 3, "floor": 9000 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for ambient temp < 32
+                        "key": 32,
+                        "default_floor": 6000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 8000 },
+                                    { "value": 2, "floor": 9000 },
+                                    { "value": 3, "floor": 9500 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for ambient temp < 37
+                        "key": 37,
+                        "default_floor": 7000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 9000 },
+                                    { "value": 2, "floor": 9500 },
+                                    { "value": 3, "floor": 10400 }
+                                ]
+                            }
+                        ]
+                    },
+                    {
+                        // Entry valid for ambient temp < 42
+                        "key": 42,
+                        "default_floor": 8000,
+                        "floor_offset_parameter": "altitude_offset",
+                        "floors": [
+                            {
+                                "parameter": "pcie_floor_index",
+                                "floors": [
+                                    { "value": 1, "floor": 9500 },
+                                    { "value": 2, "floor": 10400 },
+                                    { "value": 3, "floor": 10400 }
+                                ]
+                            }
+                        ]
+                    }
+                ]
+            }
+        ]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,rainier-4u/groups.json b/control/config_files/p10bmc/ibm,rainier-4u/groups.json
index ebe4ad9..ab63ac8 100644
--- a/control/config_files/p10bmc/ibm,rainier-4u/groups.json
+++ b/control/config_files/p10bmc/ibm,rainier-4u/groups.json
@@ -1,605 +1,603 @@
 [
- {
-   "name": "fan inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5"
-   ]
- },
- {
-   "name": "fan0 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0"
-   ]
- },
- {
-   "name": "fan1 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0"
-   ]
- },
- {
-   "name": "fan2 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0"
-   ]
- },
- {
-   "name": "fan3 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0"
-   ]
- },
- {
-   "name": "fan4 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0"
-   ]
- },
- {
-   "name": "fan5 rotor inventory",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_0"
-   ]
- },
- {
-   "name": "occ objects",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/org/open_power/control/occ0",
-     "/org/open_power/control/occ1",
-     "/org/open_power/control/occ2",
-     "/org/open_power/control/occ3"
-   ]
- },
- {
-   "name": "proc0 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
-   ]
- },
- {
-   "name": "proc1 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
-   ]
- },
- {
-   "name": "proc2 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc2_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc2_core15_1_temp"
-   ]
- },
- {
-   "name": "proc3 core temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc3_core0_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core0_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core1_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core1_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core2_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core2_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core3_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core3_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core4_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core4_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core5_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core5_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core6_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core6_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core7_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core7_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core8_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core8_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core9_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core9_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core10_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core10_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core11_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core11_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core12_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core12_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core13_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core13_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core14_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core14_1_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core15_0_temp",
-     "/xyz/openbmc_project/sensors/temperature/proc3_core15_1_temp"
-   ]
- },
- {
-   "name": "proc0 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
-   ]
- },
- {
-   "name": "proc1 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
-   ]
- },
- {
-   "name": "proc2 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc2_ioring_temp"
-   ]
- },
- {
-   "name": "proc3 ioring temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/proc3_ioring_temp"
-   ]
- },
- {
-   "name": "dram temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_dram_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_dram_temp"
-   ]
- },
- {
-   "name": "pmic temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_pmic_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_pmic_temp"
-   ]
- },
- {
-   "name": "internal memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_intmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_intmb_temp"
-   ]
- },
- {
-   // Repurposed as DRAM temperature sensors for 4U DDIMMs
-   "name": "dram and external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_dram_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_dram_extmb_temp"
-   ]
- },
- {
-   // Repurposed as PMIC temperature sensors for 4U DDIMMs
-   "name": "external memory buffer temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm16_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm17_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm18_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm19_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm20_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm21_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm22_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm23_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm24_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm25_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm26_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm27_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm28_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm29_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm30_extmb_temp",
-     "/xyz/openbmc_project/sensors/temperature/dimm31_extmb_temp"
-   ]
- },
- {
-   "name": "vdd vrm temps",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd2_temp",
-     "/xyz/openbmc_project/sensors/temperature/vrm_vdd3_temp"
-   ]
- },
- {
-   "name": "proc 0 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 2 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc2_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 3 core dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc3_core_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 0 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 1 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 2 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc2_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "proc 3 ioring dvfs temp",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/proc3_ioring_dvfs_temp"
-    ]
- },
- {
-   "name": "nvme temps",
-   "service": "xyz.openbmc_project.NVMeSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_9_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_10_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_11_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_12_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_13_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_14_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_15_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_16_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_17_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_18_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_19_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_20_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_21_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_22_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_23_Temp",
-     "/xyz/openbmc_project/sensors/temperature/NVMe_24_Temp"
-   ]
- },
- {
-   "name": "planar temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-     "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
-     "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
-   ]
- },
- {
-   "name": "flett temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C8_Temp",
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C11_Temp"
-   ]
- },
- {
-   // Bear Lake card
-   "name": "pcie cable card temps",
-   "service": "xyz.openbmc_project.HwmonTempSensor",
-   "members": [
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C0_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C2_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C3_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C4_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
-       "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
-   ]
- },
- {
-   "name": "ambient temp",
-   "service": "xyz.openbmc_project.VirtualSensor",
-   "members": [
-      "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
-   ]
- },
- {
-   "name": "pcie cards",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1/pcie_card1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2/pcie_card2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3/pcie_card3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4/pcie_card4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
-   ]
- },
- {
-   "name": "pcie slots",
-   "members": [
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
-     "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
-   ]
- },
- {
-   "name": "power mode",
-   "service": "org.open_power.OCC.Control",
-   "members": [
-     "/xyz/openbmc_project/control/host0/power_mode"
-   ]
- }
+    {
+        "name": "fan inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5"
+        ]
+    },
+    {
+        "name": "fan0 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0"
+        ]
+    },
+    {
+        "name": "fan1 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0"
+        ]
+    },
+    {
+        "name": "fan2 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0"
+        ]
+    },
+    {
+        "name": "fan3 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0"
+        ]
+    },
+    {
+        "name": "fan4 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0"
+        ]
+    },
+    {
+        "name": "fan5 rotor inventory",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_0"
+        ]
+    },
+    {
+        "name": "occ objects",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/org/open_power/control/occ0",
+            "/org/open_power/control/occ1",
+            "/org/open_power/control/occ2",
+            "/org/open_power/control/occ3"
+        ]
+    },
+    {
+        "name": "proc0 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc0_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc1 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc1_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc2 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc2_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc3 core temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_core0_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core0_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core1_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core1_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core2_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core2_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core3_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core3_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core4_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core4_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core5_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core5_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core6_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core6_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core7_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core7_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core8_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core8_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core9_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core9_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core10_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core10_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core11_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core11_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core12_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core12_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core13_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core13_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core14_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core14_1_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core15_0_temp",
+            "/xyz/openbmc_project/sensors/temperature/proc3_core15_1_temp"
+        ]
+    },
+    {
+        "name": "proc0 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc1 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc2 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_ioring_temp"
+        ]
+    },
+    {
+        "name": "proc3 ioring temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_ioring_temp"
+        ]
+    },
+    {
+        "name": "dram temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_dram_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_dram_temp"
+        ]
+    },
+    {
+        "name": "pmic temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_pmic_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_pmic_temp"
+        ]
+    },
+    {
+        "name": "internal memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_intmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_intmb_temp"
+        ]
+    },
+    {
+        // Repurposed as DRAM temperature sensors for 4U DDIMMs
+        "name": "dram and external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_dram_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_dram_extmb_temp"
+        ]
+    },
+    {
+        // Repurposed as PMIC temperature sensors for 4U DDIMMs
+        "name": "external memory buffer temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/dimm0_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm1_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm2_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm3_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm4_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm5_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm6_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm7_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm8_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm9_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm10_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm11_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm12_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm13_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm14_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm15_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm16_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm17_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm18_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm19_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm20_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm21_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm22_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm23_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm24_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm25_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm26_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm27_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm28_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm29_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm30_extmb_temp",
+            "/xyz/openbmc_project/sensors/temperature/dimm31_extmb_temp"
+        ]
+    },
+    {
+        "name": "vdd vrm temps",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd0_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd1_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd2_temp",
+            "/xyz/openbmc_project/sensors/temperature/vrm_vdd3_temp"
+        ]
+    },
+    {
+        "name": "proc 0 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 2 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 3 core dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_core_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 0 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc0_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 1 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc1_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 2 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc2_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "proc 3 ioring dvfs temp",
+        "service": "org.open_power.OCC.Control",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/proc3_ioring_dvfs_temp"
+        ]
+    },
+    {
+        "name": "nvme temps",
+        "service": "xyz.openbmc_project.NVMeSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_1_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_5_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_6_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_11_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_12_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_13_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_14_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_15_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_16_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_17_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_18_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_19_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_20_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_21_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_22_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_23_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_24_Temp"
+        ]
+    },
+    {
+        "name": "planar temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIE_0_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIE_1_Temp"
+        ]
+    },
+    {
+        "name": "flett temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C8_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/NVMe_JBOF_Card_C11_Temp"
+        ]
+    },
+    {
+        // Bear Lake card
+        "name": "pcie cable card temps",
+        "service": "xyz.openbmc_project.HwmonTempSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C0_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C2_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C3_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C4_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C7_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C9_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C10_Temp",
+            "/xyz/openbmc_project/sensors/temperature/PCIe_Cable_Card_C11_Temp"
+        ]
+    },
+    {
+        "name": "ambient temp",
+        "service": "xyz.openbmc_project.VirtualSensor",
+        "members": [
+            "/xyz/openbmc_project/sensors/temperature/Ambient_Virtual_Temp"
+        ]
+    },
+    {
+        "name": "pcie cards",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1/pcie_card1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2/pcie_card2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3/pcie_card3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4/pcie_card4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6/pcie_card6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7/pcie_card7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8/pcie_card8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9/pcie_card9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10/pcie_card10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11/pcie_card11"
+        ]
+    },
+    {
+        "name": "pcie slots",
+        "members": [
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot4",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot6",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot7",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot8",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot9",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot10",
+            "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot11"
+        ]
+    },
+    {
+        "name": "power mode",
+        "service": "org.open_power.OCC.Control",
+        "members": ["/xyz/openbmc_project/control/host0/power_mode"]
+    }
 ]
diff --git a/control/config_files/p10bmc/ibm,rainier-4u/pcie_cards.json b/control/config_files/p10bmc/ibm,rainier-4u/pcie_cards.json
index 2347cbe..5402919 100644
--- a/control/config_files/p10bmc/ibm,rainier-4u/pcie_cards.json
+++ b/control/config_files/p10bmc/ibm,rainier-4u/pcie_cards.json
@@ -1,212 +1,212 @@
 {
-  "cards": [
-    {
-      "name": "PHYP had errors getting IDs",
-      "vendor_id": "0xFFFF",
-      "device_id": "0xFFFF",
-      "subsystem_vendor_id": "0xFFFF",
-      "subsystem_id": "0xFFFF",
-      "floor_index": 3
-    },
-    {
-      "name": "Flett",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0007",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "Bear Lake and Bear River",
-      "vendor_id": "0x1014",
-      "device_id": "0x04F2",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0004",
-      "has_temp_sensor": true
-    },
-    {
-      "name": "GTO",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x033B",
-      "floor_index": 2
-    },
-    {
-      "name": "ZR1",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x035E",
-      "floor_index": 2
-    },
-    {
-      "name": "Z06",
-      "vendor_id": "0x1014",
-      "device_id": "0x034A",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0355",
-      "floor_index": 2
-    },
-    {
-      "name": "Everglades 10Gb 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1015",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x061F",
-      "floor_index": 1
-    },
-    {
-      "name": "Everglades 25Gb 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1015",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x061E",
-      "floor_index": 1
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0621",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0622",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter II x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0629",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064A",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064B",
-      "floor_index": 2
-    },
-    {
-      "name": "Bolt PCIe3 NVMe Flash Adapter III x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA822",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x064C",
-      "floor_index": 2
-    },
-    {
-      "name": "Sentry",
-      "vendor_id": "0x1014",
-      "device_id": "0x0466",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0466",
-      "floor_index": 2
-    },
-    {
-      "name": "Haleakala EN 2Port 100Gb",
-      "vendor_id": "0x15B3",
-      "device_id": "0x1019",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0635",
-      "floor_index": 3
-    },
-    {
-      "name": "Cedar Lake 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A6",
-      "floor_index": 3
-    },
-    {
-      "name": "Cedar Lake Crypto 100G 2port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A5",
-      "floor_index": 3
-    },
-    {
-      "name": "Crater Lake 200G 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A4",
-      "floor_index": 3
-    },
-    {
-      "name": "Crater Lake Crypto 200G 2Port",
-      "vendor_id": "0x15B3",
-      "device_id": "0x101D",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x06A3",
-      "floor_index": 3
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 1.6TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0682",
-      "floor_index": 2
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 3.2TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0683",
-      "floor_index": 2
-    },
-    {
-      "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 6.4TB",
-      "vendor_id": "0x144D",
-      "device_id": "0xA824",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0684",
-      "floor_index": 2
-    },
-    {
-      "name": "Castello",
-      "vendor_id": "0x1014",
-      "device_id": "0x0611",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0611",
-      "floor_index": 3
-    },
-    {
-      "name": "Puntfish",
-      "vendor_id": "0x1077",
-      "device_id": "0x2271",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x069E",
-      "floor_index": 1
-    },
-    {
-      "name": "Bluefish",
-      "vendor_id": "0x10DF",
-      "device_id": "0xE300",
-      "subsystem_vendor_id": "0x1014",
-      "subsystem_id": "0x0614",
-      "floor_index": 1
-    }
-  ]
+    "cards": [
+        {
+            "name": "PHYP had errors getting IDs",
+            "vendor_id": "0xFFFF",
+            "device_id": "0xFFFF",
+            "subsystem_vendor_id": "0xFFFF",
+            "subsystem_id": "0xFFFF",
+            "floor_index": 3
+        },
+        {
+            "name": "Flett",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0007",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "Bear Lake and Bear River",
+            "vendor_id": "0x1014",
+            "device_id": "0x04F2",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0004",
+            "has_temp_sensor": true
+        },
+        {
+            "name": "GTO",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x033B",
+            "floor_index": 2
+        },
+        {
+            "name": "ZR1",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x035E",
+            "floor_index": 2
+        },
+        {
+            "name": "Z06",
+            "vendor_id": "0x1014",
+            "device_id": "0x034A",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0355",
+            "floor_index": 2
+        },
+        {
+            "name": "Everglades 10Gb 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1015",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x061F",
+            "floor_index": 1
+        },
+        {
+            "name": "Everglades 25Gb 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1015",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x061E",
+            "floor_index": 1
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0621",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0622",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter II x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0629",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064A",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064B",
+            "floor_index": 2
+        },
+        {
+            "name": "Bolt PCIe3 NVMe Flash Adapter III x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA822",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x064C",
+            "floor_index": 2
+        },
+        {
+            "name": "Sentry",
+            "vendor_id": "0x1014",
+            "device_id": "0x0466",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0466",
+            "floor_index": 2
+        },
+        {
+            "name": "Haleakala EN 2Port 100Gb",
+            "vendor_id": "0x15B3",
+            "device_id": "0x1019",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0635",
+            "floor_index": 3
+        },
+        {
+            "name": "Cedar Lake 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A6",
+            "floor_index": 3
+        },
+        {
+            "name": "Cedar Lake Crypto 100G 2port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A5",
+            "floor_index": 3
+        },
+        {
+            "name": "Crater Lake 200G 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A4",
+            "floor_index": 3
+        },
+        {
+            "name": "Crater Lake Crypto 200G 2Port",
+            "vendor_id": "0x15B3",
+            "device_id": "0x101D",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x06A3",
+            "floor_index": 3
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 1.6TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0682",
+            "floor_index": 2
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 3.2TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0683",
+            "floor_index": 2
+        },
+        {
+            "name": "Kona PCIe4 NVMe U.2 Flash Adapter x8 6.4TB",
+            "vendor_id": "0x144D",
+            "device_id": "0xA824",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0684",
+            "floor_index": 2
+        },
+        {
+            "name": "Castello",
+            "vendor_id": "0x1014",
+            "device_id": "0x0611",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0611",
+            "floor_index": 3
+        },
+        {
+            "name": "Puntfish",
+            "vendor_id": "0x1077",
+            "device_id": "0x2271",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x069E",
+            "floor_index": 1
+        },
+        {
+            "name": "Bluefish",
+            "vendor_id": "0x10DF",
+            "device_id": "0xE300",
+            "subsystem_vendor_id": "0x1014",
+            "subsystem_id": "0x0614",
+            "floor_index": 1
+        }
+    ]
 }