control:ibm,everest: Fix events.json line endings

Change them to unix line endings.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I5a2fae2fd83b1becfabd1cc8427e4b91e42c2ee5
diff --git a/control/config_files/p10bmc/ibm,everest/events.json b/control/config_files/p10bmc/ibm,everest/events.json
index f17f64e..506ca7c 100644
--- a/control/config_files/p10bmc/ibm,everest/events.json
+++ b/control/config_files/p10bmc/ibm,everest/events.json
@@ -1,2119 +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": 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 }

-                ]

-              }

-            ]

-          }

-        ]

-       }

-     ]

-   }

-]

+[
+   {
+     // 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 }
+                ]
+              }
+            ]
+          }
+        ]
+       }
+     ]
+   }
+]