control:ibm,everest: Update events.json

Several updates to the control config in events.json from thermal
testing.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I6da31c45b9472fcc63dff5677d807d73266a22ca
diff --git a/control/config_files/p10bmc/ibm,everest/events.json b/control/config_files/p10bmc/ibm,everest/events.json
index 8129b0e..f17f64e 100644
--- a/control/config_files/p10bmc/ibm,everest/events.json
+++ b/control/config_files/p10bmc/ibm,everest/events.json
@@ -1,2129 +1,2119 @@
-[
-   {
-     // 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": 1,
-         "state": false,
-         "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": "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": 11300
-           }
-         ]
-       }
-     ]
-   },
-   {
-    // 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": 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 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": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_4_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "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": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_5_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "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": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_6_core_dvfs_decrease_temp",
-         "modifier": {
-             "operator": "minus",
-             "value": 13
-         }
-       }
-     ]
-   },
-   {
-     "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": 10
-         }
-       },
-       {
-         "name": "set_parameter_from_group_max",
-         "parameter_name": "proc_7_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
-         }
-       }
-     ]
-   },
-   {
-     "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": 66.0,
-         "delta": 175
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 52.0,
-         "delta": 200
-       },
-       {
-         "name": "set_net_increase_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 72.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": 65.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": 63.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "pmic temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 49.0,
-         "delta": 40
-       },
-       {
-         "name": "set_net_decrease_target",
-         "groups": [
-           {
-             "name": "internal memory buffer temps",
-             "interface": "xyz.openbmc_project.Sensor.Value",
-             "property": { "name": "Value" }
-           }
-         ],
-         "state": 69.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": 63.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": 5000,
-           "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": 5000,
-           "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": 5000,
-           "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": 5000,
-           "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": 5000,
-           "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": 5400,
-            "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": 7300,
-            "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": 9100,
-            "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": 10800,
-            "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": 12600,
-            "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

+       }

+     ]

+   },

+   {

+     // 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": 70.0,

+         "delta": 175

+       },

+       {

+         "name": "set_net_increase_target",

+         "groups": [

+           {

+             "name": "pmic temps",

+             "interface": "xyz.openbmc_project.Sensor.Value",

+             "property": { "name": "Value" }

+           }

+         ],

+         "state": 56.0,

+         "delta": 200

+       },

+       {

+         "name": "set_net_increase_target",

+         "groups": [

+           {

+             "name": "internal memory buffer temps",

+             "interface": "xyz.openbmc_project.Sensor.Value",

+             "property": { "name": "Value" }

+           }

+         ],

+         "state": 76.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": 68.0,

+         "delta": 40

+       },

+       {

+         "name": "set_net_decrease_target",

+         "groups": [

+           {

+             "name": "pmic temps",

+             "interface": "xyz.openbmc_project.Sensor.Value",

+             "property": { "name": "Value" }

+           }

+         ],

+         "state": 54.0,

+         "delta": 40

+       },

+       {

+         "name": "set_net_decrease_target",

+         "groups": [

+           {

+             "name": "internal memory buffer temps",

+             "interface": "xyz.openbmc_project.Sensor.Value",

+             "property": { "name": "Value" }

+           }

+         ],

+         "state": 74.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 }

+                ]

+              }

+            ]

+          }

+        ]

+       }

+     ]

+   }

+]