13420426cSMatt Spinler[
23420426cSMatt Spinler    {
33420426cSMatt Spinler        // Hold fans at the given target when a number of fans are missing.
43420426cSMatt Spinler        "name": "fan(s) missing",
53420426cSMatt Spinler        "groups": [
63420426cSMatt Spinler            {
73420426cSMatt Spinler                "name": "fan inventory",
83420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item",
93420426cSMatt Spinler                "property": { "name": "Present" }
103420426cSMatt Spinler            }
113420426cSMatt Spinler        ],
123420426cSMatt Spinler        "triggers": [
133420426cSMatt Spinler            {
143420426cSMatt Spinler                "class": "init",
153420426cSMatt Spinler                "method": "get_properties"
163420426cSMatt Spinler            },
173420426cSMatt Spinler            {
183420426cSMatt Spinler                "class": "signal",
193420426cSMatt Spinler                "signal": "properties_changed"
203420426cSMatt Spinler            }
213420426cSMatt Spinler        ],
223420426cSMatt Spinler        "actions": [
233420426cSMatt Spinler            {
243420426cSMatt Spinler                "name": "count_state_before_target",
253420426cSMatt Spinler                "count": 1,
263420426cSMatt Spinler                "state": false,
273420426cSMatt Spinler                "target": 10400
283420426cSMatt Spinler            }
293420426cSMatt Spinler        ]
303420426cSMatt Spinler    },
313420426cSMatt Spinler    {
323420426cSMatt Spinler        // Hold fans at the given target when a number of rotors are nonfunctional.
333420426cSMatt Spinler        "name": "fan rotor(s) faulted",
343420426cSMatt Spinler        "groups": [
353420426cSMatt Spinler            {
363420426cSMatt Spinler                "name": "fan0 rotor inventory",
373420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
383420426cSMatt Spinler                "property": { "name": "Functional" }
393420426cSMatt Spinler            },
403420426cSMatt Spinler            {
413420426cSMatt Spinler                "name": "fan1 rotor inventory",
423420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
433420426cSMatt Spinler                "property": { "name": "Functional" }
443420426cSMatt Spinler            },
453420426cSMatt Spinler            {
463420426cSMatt Spinler                "name": "fan2 rotor inventory",
473420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
483420426cSMatt Spinler                "property": { "name": "Functional" }
493420426cSMatt Spinler            },
503420426cSMatt Spinler            {
513420426cSMatt Spinler                "name": "fan4 rotor inventory",
523420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
533420426cSMatt Spinler                "property": { "name": "Functional" }
543420426cSMatt Spinler            }
553420426cSMatt Spinler        ],
563420426cSMatt Spinler        "triggers": [
573420426cSMatt Spinler            {
583420426cSMatt Spinler                "class": "init",
593420426cSMatt Spinler                "method": "get_properties"
603420426cSMatt Spinler            },
613420426cSMatt Spinler            {
623420426cSMatt Spinler                "class": "signal",
633420426cSMatt Spinler                "signal": "properties_changed"
643420426cSMatt Spinler            }
653420426cSMatt Spinler        ],
663420426cSMatt Spinler        "actions": [
673420426cSMatt Spinler            {
683420426cSMatt Spinler                "name": "count_state_before_target",
693420426cSMatt Spinler                "count": 1,
703420426cSMatt Spinler                "state": false,
713420426cSMatt Spinler                "target": 10400
723420426cSMatt Spinler            }
733420426cSMatt Spinler        ]
743420426cSMatt Spinler    },
753420426cSMatt Spinler    {
763420426cSMatt Spinler        // Hold fans at the given target when any critical service
773420426cSMatt Spinler        // is not running for 5 seconds.
783420426cSMatt Spinler        "name": "service(s) missing",
793420426cSMatt Spinler        "groups": [
803420426cSMatt Spinler            {
813420426cSMatt Spinler                "name": "fan inventory",
823420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item",
833420426cSMatt Spinler                "property": { "name": "Present" }
843420426cSMatt Spinler            },
853420426cSMatt Spinler            {
863420426cSMatt Spinler                "name": "occ objects",
873420426cSMatt Spinler                "interface": "org.open_power.OCC.Status",
883420426cSMatt Spinler                "property": { "name": "OccActive" }
893420426cSMatt Spinler            },
903420426cSMatt Spinler            {
913420426cSMatt Spinler                "name": "nvme temps",
923420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
933420426cSMatt Spinler                "property": { "name": "Value" }
943420426cSMatt Spinler            },
953420426cSMatt Spinler            {
963420426cSMatt Spinler                "name": "planar temps",
973420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
983420426cSMatt Spinler                "property": { "name": "Value" }
993420426cSMatt Spinler            },
1003420426cSMatt Spinler            {
1013420426cSMatt Spinler                "name": "flett temps",
1023420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
1033420426cSMatt Spinler                "property": { "name": "Value" }
1043420426cSMatt Spinler            },
1053420426cSMatt Spinler            {
1063420426cSMatt Spinler                "name": "pcie cable card temps",
1073420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
1083420426cSMatt Spinler                "property": { "name": "Value" }
1093420426cSMatt Spinler            },
1103420426cSMatt Spinler            {
1113420426cSMatt Spinler                "name": "ambient temp",
1123420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
1133420426cSMatt Spinler                "property": { "name": "Value" }
1143420426cSMatt Spinler            }
1153420426cSMatt Spinler        ],
1163420426cSMatt Spinler        "triggers": [
1173420426cSMatt Spinler            {
1183420426cSMatt Spinler                "class": "signal",
1193420426cSMatt Spinler                "signal": "name_owner_changed"
120*6ef0d514SMatt Spinler            },
121*6ef0d514SMatt Spinler            {
122*6ef0d514SMatt Spinler                "class": "init",
123*6ef0d514SMatt Spinler                "method": "name_has_owner"
1243420426cSMatt Spinler            }
1253420426cSMatt Spinler        ],
1263420426cSMatt Spinler        "actions": [
1273420426cSMatt Spinler            {
1283420426cSMatt Spinler                "name": "call_actions_based_on_timer",
1293420426cSMatt Spinler                "timer": {
1303420426cSMatt Spinler                    "interval": 5000000,
1313420426cSMatt Spinler                    "type": "oneshot"
1323420426cSMatt Spinler                },
1333420426cSMatt Spinler                "actions": [
1343420426cSMatt Spinler                    {
1353420426cSMatt Spinler                        "name": "set_target_on_missing_owner",
1363420426cSMatt Spinler                        "groups": [
1373420426cSMatt Spinler                            {
1383420426cSMatt Spinler                                "name": "fan inventory",
1393420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Inventory.Item",
1403420426cSMatt Spinler                                "property": { "name": "Present" }
1413420426cSMatt Spinler                            },
1423420426cSMatt Spinler                            {
1433420426cSMatt Spinler                                "name": "occ objects",
1443420426cSMatt Spinler                                "interface": "org.open_power.OCC.Status",
1453420426cSMatt Spinler                                "property": { "name": "OccActive" }
1463420426cSMatt Spinler                            },
1473420426cSMatt Spinler                            {
1483420426cSMatt Spinler                                "name": "nvme temps",
1493420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
1503420426cSMatt Spinler                                "property": { "name": "Value" }
1513420426cSMatt Spinler                            },
1523420426cSMatt Spinler                            {
1533420426cSMatt Spinler                                "name": "planar temps",
1543420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
1553420426cSMatt Spinler                                "property": { "name": "Value" }
1563420426cSMatt Spinler                            },
1573420426cSMatt Spinler                            {
1583420426cSMatt Spinler                                "name": "flett temps",
1593420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
1603420426cSMatt Spinler                                "property": { "name": "Value" }
1613420426cSMatt Spinler                            },
1623420426cSMatt Spinler                            {
1633420426cSMatt Spinler                                "name": "pcie cable card temps",
1643420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
1653420426cSMatt Spinler                                "property": { "name": "Value" }
1663420426cSMatt Spinler                            },
1673420426cSMatt Spinler                            {
1683420426cSMatt Spinler                                "name": "ambient temp",
1693420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
1703420426cSMatt Spinler                                "property": { "name": "Value" }
1713420426cSMatt Spinler                            }
1723420426cSMatt Spinler                        ],
1733420426cSMatt Spinler                        "target": 10400
1743420426cSMatt Spinler                    }
1753420426cSMatt Spinler                ]
1763420426cSMatt Spinler            }
1773420426cSMatt Spinler        ]
1783420426cSMatt Spinler    },
1793420426cSMatt Spinler    {
180*6ef0d514SMatt Spinler        "name": "Force retry on the OCC status objects",
181*6ef0d514SMatt Spinler        "groups": [
182*6ef0d514SMatt Spinler            {
183*6ef0d514SMatt Spinler                "name": "occ objects",
184*6ef0d514SMatt Spinler                "interface": "org.open_power.OCC.Status",
185*6ef0d514SMatt Spinler                "property": { "name": "OccActive" }
186*6ef0d514SMatt Spinler            }
187*6ef0d514SMatt Spinler        ],
188*6ef0d514SMatt Spinler        "triggers": [
189*6ef0d514SMatt Spinler            {
190*6ef0d514SMatt Spinler                "class": "timer",
191*6ef0d514SMatt Spinler                "type": "oneshot",
192*6ef0d514SMatt Spinler                "interval": 30000000,
193*6ef0d514SMatt Spinler                "preload_groups": true
194*6ef0d514SMatt Spinler            }
195*6ef0d514SMatt Spinler        ],
196*6ef0d514SMatt Spinler        "actions": [
197*6ef0d514SMatt Spinler            {
198*6ef0d514SMatt Spinler                "name": "set_target_on_missing_owner",
199*6ef0d514SMatt Spinler                "groups": [
200*6ef0d514SMatt Spinler                    {
201*6ef0d514SMatt Spinler                        "name": "occ objects",
202*6ef0d514SMatt Spinler                        "interface": "org.open_power.OCC.Status",
203*6ef0d514SMatt Spinler                        "property": { "name": "OccActive" }
204*6ef0d514SMatt Spinler                    }
205*6ef0d514SMatt Spinler                ],
206*6ef0d514SMatt Spinler                "target": 10400
207*6ef0d514SMatt Spinler            }
208*6ef0d514SMatt Spinler        ]
209*6ef0d514SMatt Spinler    },
210*6ef0d514SMatt Spinler    {
2113420426cSMatt Spinler        // Set a fan floor if an OCC isn't active
2123420426cSMatt Spinler        "name": "Non-active OCC(s)",
2133420426cSMatt Spinler        "groups": [
2143420426cSMatt Spinler            {
2153420426cSMatt Spinler                "name": "occ objects",
2163420426cSMatt Spinler                "interface": "org.open_power.OCC.Status",
2173420426cSMatt Spinler                "property": {
2183420426cSMatt Spinler                    "name": "OccActive"
2193420426cSMatt Spinler                }
2203420426cSMatt Spinler            }
2213420426cSMatt Spinler        ],
2223420426cSMatt Spinler        "triggers": [
2233420426cSMatt Spinler            {
2243420426cSMatt Spinler                "class": "signal",
2253420426cSMatt Spinler                "signal": "properties_changed"
2263420426cSMatt Spinler            },
2273420426cSMatt Spinler            {
2283420426cSMatt Spinler                "class": "signal",
2293420426cSMatt Spinler                "signal": "interfaces_added"
2303420426cSMatt Spinler            },
2313420426cSMatt Spinler            {
2323420426cSMatt Spinler                "class": "init",
2333420426cSMatt Spinler                "method": "get_properties"
2343420426cSMatt Spinler            }
2353420426cSMatt Spinler        ],
2363420426cSMatt Spinler        "actions": [
2373420426cSMatt Spinler            {
2383420426cSMatt Spinler                "name": "count_state_floor",
2393420426cSMatt Spinler                "count": 1,
2403420426cSMatt Spinler                "state": false,
2413420426cSMatt Spinler                "floor": 10400
2423420426cSMatt Spinler            }
2433420426cSMatt Spinler        ]
2443420426cSMatt Spinler    },
2453420426cSMatt Spinler    {
2463420426cSMatt Spinler        // Set a raised fan floor when any temperature sensor is nonfunctional
2473420426cSMatt Spinler        "name": "Nonfunctional temperature sensors",
2483420426cSMatt Spinler        "groups": [
2493420426cSMatt Spinler            {
2503420426cSMatt Spinler                "name": "proc0 core temps",
2513420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2523420426cSMatt Spinler                "property": { "name": "Functional" }
2533420426cSMatt Spinler            },
2543420426cSMatt Spinler            {
2553420426cSMatt Spinler                "name": "proc1 core temps",
2563420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2573420426cSMatt Spinler                "property": { "name": "Functional" }
2583420426cSMatt Spinler            },
2593420426cSMatt Spinler            {
2603420426cSMatt Spinler                "name": "proc0 ioring temp",
2613420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2623420426cSMatt Spinler                "property": { "name": "Functional" }
2633420426cSMatt Spinler            },
2643420426cSMatt Spinler            {
2653420426cSMatt Spinler                "name": "proc1 ioring temp",
2663420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2673420426cSMatt Spinler                "property": { "name": "Functional" }
2683420426cSMatt Spinler            },
2693420426cSMatt Spinler            {
2703420426cSMatt Spinler                "name": "dram temps",
2713420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2723420426cSMatt Spinler                "property": { "name": "Functional" }
2733420426cSMatt Spinler            },
2743420426cSMatt Spinler            {
2753420426cSMatt Spinler                "name": "pmic temps",
2763420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2773420426cSMatt Spinler                "property": { "name": "Functional" }
2783420426cSMatt Spinler            },
2793420426cSMatt Spinler            {
2803420426cSMatt Spinler                "name": "internal memory buffer temps",
2813420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2823420426cSMatt Spinler                "property": { "name": "Functional" }
2833420426cSMatt Spinler            },
2843420426cSMatt Spinler            {
2853420426cSMatt Spinler                "name": "dram and external memory buffer temps",
2863420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2873420426cSMatt Spinler                "property": { "name": "Functional" }
2883420426cSMatt Spinler            },
2893420426cSMatt Spinler            {
2903420426cSMatt Spinler                "name": "external memory buffer temps",
2913420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2923420426cSMatt Spinler                "property": { "name": "Functional" }
2933420426cSMatt Spinler            },
2943420426cSMatt Spinler            {
2953420426cSMatt Spinler                "name": "vdd vrm temps",
2963420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2973420426cSMatt Spinler                "property": { "name": "Functional" }
2983420426cSMatt Spinler            },
2993420426cSMatt Spinler            {
3003420426cSMatt Spinler                "name": "nvme temps",
3013420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
3023420426cSMatt Spinler                "property": { "name": "Functional" }
3033420426cSMatt Spinler            },
3043420426cSMatt Spinler            {
3053420426cSMatt Spinler                "name": "planar temps",
3063420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
3073420426cSMatt Spinler                "property": { "name": "Functional" }
3083420426cSMatt Spinler            },
3093420426cSMatt Spinler            {
3103420426cSMatt Spinler                "name": "flett temps",
3113420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
3123420426cSMatt Spinler                "property": { "name": "Functional" }
3133420426cSMatt Spinler            },
3143420426cSMatt Spinler            {
3153420426cSMatt Spinler                "name": "pcie cable card temps",
3163420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
3173420426cSMatt Spinler                "property": { "name": "Functional" }
3183420426cSMatt Spinler            },
3193420426cSMatt Spinler            {
3203420426cSMatt Spinler                "name": "ambient temp",
3213420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
3223420426cSMatt Spinler                "property": { "name": "Functional" }
3233420426cSMatt Spinler            }
3243420426cSMatt Spinler        ],
3253420426cSMatt Spinler        "triggers": [
3263420426cSMatt Spinler            {
3273420426cSMatt Spinler                "class": "signal",
3283420426cSMatt Spinler                "signal": "properties_changed"
3293420426cSMatt Spinler            },
3303420426cSMatt Spinler            {
3313420426cSMatt Spinler                "class": "signal",
3323420426cSMatt Spinler                "signal": "interfaces_added"
3333420426cSMatt Spinler            },
3343420426cSMatt Spinler            {
3353420426cSMatt Spinler                "class": "signal",
3363420426cSMatt Spinler                "signal": "interfaces_removed"
3373420426cSMatt Spinler            },
3383420426cSMatt Spinler            {
3393420426cSMatt Spinler                "class": "init",
3403420426cSMatt Spinler                "method": "get_properties"
3413420426cSMatt Spinler            }
3423420426cSMatt Spinler        ],
3433420426cSMatt Spinler        "actions": [
3443420426cSMatt Spinler            {
3453420426cSMatt Spinler                "name": "count_state_floor",
3463420426cSMatt Spinler                "count": 1,
3473420426cSMatt Spinler                "state": false,
348a8c1cf50SMatt Spinler                "delay": 5,
3493420426cSMatt Spinler                "floor": 10400
3503420426cSMatt Spinler            }
3513420426cSMatt Spinler        ]
3523420426cSMatt Spinler    },
3533420426cSMatt Spinler    {
3543420426cSMatt Spinler        "name": "Set Proc 0 Core DVFS parameter",
3553420426cSMatt Spinler        "groups": [
3563420426cSMatt Spinler            {
3573420426cSMatt Spinler                "name": "proc 0 core dvfs temp",
3583420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
3593420426cSMatt Spinler                "property": { "name": "Value" }
3603420426cSMatt Spinler            }
3613420426cSMatt Spinler        ],
3623420426cSMatt Spinler        "triggers": [
3633420426cSMatt Spinler            {
3643420426cSMatt Spinler                "class": "init",
3653420426cSMatt Spinler                "method": "get_properties"
3663420426cSMatt Spinler            },
3673420426cSMatt Spinler            {
3683420426cSMatt Spinler                "class": "signal",
3693420426cSMatt Spinler                "signal": "interfaces_added"
3703420426cSMatt Spinler            },
3713420426cSMatt Spinler            {
3723420426cSMatt Spinler                "class": "signal",
3733420426cSMatt Spinler                "signal": "properties_changed"
3743420426cSMatt Spinler            }
3753420426cSMatt Spinler        ],
3763420426cSMatt Spinler        "actions": [
3773420426cSMatt Spinler            {
3783420426cSMatt Spinler                "name": "set_parameter_from_group_max",
3793420426cSMatt Spinler                "parameter_name": "proc_0_core_dvfs_increase_temp",
3803420426cSMatt Spinler                "modifier": {
3813420426cSMatt Spinler                    "operator": "minus",
3823420426cSMatt Spinler                    "value": 10
3833420426cSMatt Spinler                }
3843420426cSMatt Spinler            },
3853420426cSMatt Spinler            {
3863420426cSMatt Spinler                "name": "set_parameter_from_group_max",
3873420426cSMatt Spinler                "parameter_name": "proc_0_core_dvfs_decrease_temp",
3883420426cSMatt Spinler                "modifier": {
3893420426cSMatt Spinler                    "operator": "minus",
3903420426cSMatt Spinler                    "value": 13
3913420426cSMatt Spinler                }
3923420426cSMatt Spinler            }
3933420426cSMatt Spinler        ]
3943420426cSMatt Spinler    },
3953420426cSMatt Spinler    {
3963420426cSMatt Spinler        "name": "Set Proc 1 Core DVFS parameter",
3973420426cSMatt Spinler        "groups": [
3983420426cSMatt Spinler            {
3993420426cSMatt Spinler                "name": "proc 1 core dvfs temp",
4003420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
4013420426cSMatt Spinler                "property": { "name": "Value" }
4023420426cSMatt Spinler            }
4033420426cSMatt Spinler        ],
4043420426cSMatt Spinler        "triggers": [
4053420426cSMatt Spinler            {
4063420426cSMatt Spinler                "class": "init",
4073420426cSMatt Spinler                "method": "get_properties"
4083420426cSMatt Spinler            },
4093420426cSMatt Spinler            {
4103420426cSMatt Spinler                "class": "signal",
4113420426cSMatt Spinler                "signal": "interfaces_added"
4123420426cSMatt Spinler            },
4133420426cSMatt Spinler            {
4143420426cSMatt Spinler                "class": "signal",
4153420426cSMatt Spinler                "signal": "properties_changed"
4163420426cSMatt Spinler            }
4173420426cSMatt Spinler        ],
4183420426cSMatt Spinler        "actions": [
4193420426cSMatt Spinler            {
4203420426cSMatt Spinler                "name": "set_parameter_from_group_max",
4213420426cSMatt Spinler                "parameter_name": "proc_1_core_dvfs_increase_temp",
4223420426cSMatt Spinler                "modifier": {
4233420426cSMatt Spinler                    "operator": "minus",
4243420426cSMatt Spinler                    "value": 10
4253420426cSMatt Spinler                }
4263420426cSMatt Spinler            },
4273420426cSMatt Spinler            {
4283420426cSMatt Spinler                "name": "set_parameter_from_group_max",
4293420426cSMatt Spinler                "parameter_name": "proc_1_core_dvfs_decrease_temp",
4303420426cSMatt Spinler                "modifier": {
4313420426cSMatt Spinler                    "operator": "minus",
4323420426cSMatt Spinler                    "value": 13
4333420426cSMatt Spinler                }
4343420426cSMatt Spinler            }
4353420426cSMatt Spinler        ]
4363420426cSMatt Spinler    },
4373420426cSMatt Spinler    {
4383420426cSMatt Spinler        "name": "Set Proc 0 IO Ring DVFS parameter",
4393420426cSMatt Spinler        "groups": [
4403420426cSMatt Spinler            {
4413420426cSMatt Spinler                "name": "proc 0 ioring dvfs temp",
4423420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
4433420426cSMatt Spinler                "property": { "name": "Value" }
4443420426cSMatt Spinler            }
4453420426cSMatt Spinler        ],
4463420426cSMatt Spinler        "triggers": [
4473420426cSMatt Spinler            {
4483420426cSMatt Spinler                "class": "init",
4493420426cSMatt Spinler                "method": "get_properties"
4503420426cSMatt Spinler            },
4513420426cSMatt Spinler            {
4523420426cSMatt Spinler                "class": "signal",
4533420426cSMatt Spinler                "signal": "interfaces_added"
4543420426cSMatt Spinler            },
4553420426cSMatt Spinler            {
4563420426cSMatt Spinler                "class": "signal",
4573420426cSMatt Spinler                "signal": "properties_changed"
4583420426cSMatt Spinler            }
4593420426cSMatt Spinler        ],
4603420426cSMatt Spinler        "actions": [
4613420426cSMatt Spinler            {
4623420426cSMatt Spinler                "name": "set_parameter_from_group_max",
4633420426cSMatt Spinler                "parameter_name": "proc_0_ioring_dvfs_increase_temp",
4643420426cSMatt Spinler                "modifier": {
4653420426cSMatt Spinler                    "operator": "minus",
4663420426cSMatt Spinler                    "value": 10
4673420426cSMatt Spinler                }
4683420426cSMatt Spinler            },
4693420426cSMatt Spinler            {
4703420426cSMatt Spinler                "name": "set_parameter_from_group_max",
4713420426cSMatt Spinler                "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
4723420426cSMatt Spinler                "modifier": {
4733420426cSMatt Spinler                    "operator": "minus",
4743420426cSMatt Spinler                    "value": 13
4753420426cSMatt Spinler                }
4763420426cSMatt Spinler            }
4773420426cSMatt Spinler        ]
4783420426cSMatt Spinler    },
4793420426cSMatt Spinler    {
4803420426cSMatt Spinler        "name": "Set Proc 1 IO Ring DVFS parameter",
4813420426cSMatt Spinler        "groups": [
4823420426cSMatt Spinler            {
4833420426cSMatt Spinler                "name": "proc 1 ioring dvfs temp",
4843420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
4853420426cSMatt Spinler                "property": { "name": "Value" }
4863420426cSMatt Spinler            }
4873420426cSMatt Spinler        ],
4883420426cSMatt Spinler        "triggers": [
4893420426cSMatt Spinler            {
4903420426cSMatt Spinler                "class": "init",
4913420426cSMatt Spinler                "method": "get_properties"
4923420426cSMatt Spinler            },
4933420426cSMatt Spinler            {
4943420426cSMatt Spinler                "class": "signal",
4953420426cSMatt Spinler                "signal": "interfaces_added"
4963420426cSMatt Spinler            },
4973420426cSMatt Spinler            {
4983420426cSMatt Spinler                "class": "signal",
4993420426cSMatt Spinler                "signal": "properties_changed"
5003420426cSMatt Spinler            }
5013420426cSMatt Spinler        ],
5023420426cSMatt Spinler        "actions": [
5033420426cSMatt Spinler            {
5043420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5053420426cSMatt Spinler                "parameter_name": "proc_1_ioring_dvfs_increase_temp",
5063420426cSMatt Spinler                "modifier": {
5073420426cSMatt Spinler                    "operator": "minus",
5083420426cSMatt Spinler                    "value": 10
5093420426cSMatt Spinler                }
5103420426cSMatt Spinler            },
5113420426cSMatt Spinler            {
5123420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5133420426cSMatt Spinler                "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
5143420426cSMatt Spinler                "modifier": {
5153420426cSMatt Spinler                    "operator": "minus",
5163420426cSMatt Spinler                    "value": 13
5173420426cSMatt Spinler                }
5183420426cSMatt Spinler            }
5193420426cSMatt Spinler        ]
5203420426cSMatt Spinler    },
5213420426cSMatt Spinler    {
5223420426cSMatt Spinler        "name": "Set DRAM DVFS parameter",
5233420426cSMatt Spinler        "groups": [
5243420426cSMatt Spinler            {
5253420426cSMatt Spinler                "name": "dram dvfs temp",
5263420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
5273420426cSMatt Spinler                "property": { "name": "Value" }
5283420426cSMatt Spinler            }
5293420426cSMatt Spinler        ],
5303420426cSMatt Spinler        "triggers": [
5313420426cSMatt Spinler            {
5323420426cSMatt Spinler                "class": "init",
5333420426cSMatt Spinler                "method": "get_properties"
5343420426cSMatt Spinler            },
5353420426cSMatt Spinler            {
5363420426cSMatt Spinler                "class": "signal",
5373420426cSMatt Spinler                "signal": "properties_changed"
5383420426cSMatt Spinler            },
5393420426cSMatt Spinler            {
5403420426cSMatt Spinler                "class": "signal",
5413420426cSMatt Spinler                "signal": "interfaces_added"
5423420426cSMatt Spinler            }
5433420426cSMatt Spinler        ],
5443420426cSMatt Spinler        "actions": [
5453420426cSMatt Spinler            {
5463420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5473420426cSMatt Spinler                "parameter_name": "dram_dvfs_increase_temp",
5483420426cSMatt Spinler                "modifier": {
5493420426cSMatt Spinler                    "operator": "minus",
5503420426cSMatt Spinler                    "value": 10
5513420426cSMatt Spinler                }
5523420426cSMatt Spinler            },
5533420426cSMatt Spinler            {
5543420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5553420426cSMatt Spinler                "parameter_name": "dram_dvfs_decrease_temp",
5563420426cSMatt Spinler                "modifier": {
5573420426cSMatt Spinler                    "operator": "minus",
5583420426cSMatt Spinler                    "value": 13
5593420426cSMatt Spinler                }
5603420426cSMatt Spinler            }
5613420426cSMatt Spinler        ]
5623420426cSMatt Spinler    },
5633420426cSMatt Spinler    {
5643420426cSMatt Spinler        "name": "Set PMIC DVFS parameter",
5653420426cSMatt Spinler        "groups": [
5663420426cSMatt Spinler            {
5673420426cSMatt Spinler                "name": "pmic dvfs temp",
5683420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
5693420426cSMatt Spinler                "property": { "name": "Value" }
5703420426cSMatt Spinler            }
5713420426cSMatt Spinler        ],
5723420426cSMatt Spinler        "triggers": [
5733420426cSMatt Spinler            {
5743420426cSMatt Spinler                "class": "init",
5753420426cSMatt Spinler                "method": "get_properties"
5763420426cSMatt Spinler            },
5773420426cSMatt Spinler            {
5783420426cSMatt Spinler                "class": "signal",
5793420426cSMatt Spinler                "signal": "properties_changed"
5803420426cSMatt Spinler            },
5813420426cSMatt Spinler            {
5823420426cSMatt Spinler                "class": "signal",
5833420426cSMatt Spinler                "signal": "interfaces_added"
5843420426cSMatt Spinler            }
5853420426cSMatt Spinler        ],
5863420426cSMatt Spinler        "actions": [
5873420426cSMatt Spinler            {
5883420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5893420426cSMatt Spinler                "parameter_name": "pmic_dvfs_increase_temp",
5903420426cSMatt Spinler                "modifier": {
5913420426cSMatt Spinler                    "operator": "minus",
5923420426cSMatt Spinler                    "value": 10
5933420426cSMatt Spinler                }
5943420426cSMatt Spinler            },
5953420426cSMatt Spinler            {
5963420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5973420426cSMatt Spinler                "parameter_name": "pmic_dvfs_decrease_temp",
5983420426cSMatt Spinler                "modifier": {
5993420426cSMatt Spinler                    "operator": "minus",
6003420426cSMatt Spinler                    "value": 13
6013420426cSMatt Spinler                }
6023420426cSMatt Spinler            }
6033420426cSMatt Spinler        ]
6043420426cSMatt Spinler    },
6053420426cSMatt Spinler    {
6063420426cSMatt Spinler        "name": "Set internal memory buffer DVFS parameter",
6073420426cSMatt Spinler        "groups": [
6083420426cSMatt Spinler            {
6093420426cSMatt Spinler                "name": "internal memory buffer dvfs temp",
6103420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
6113420426cSMatt Spinler                "property": { "name": "Value" }
6123420426cSMatt Spinler            }
6133420426cSMatt Spinler        ],
6143420426cSMatt Spinler        "triggers": [
6153420426cSMatt Spinler            {
6163420426cSMatt Spinler                "class": "init",
6173420426cSMatt Spinler                "method": "get_properties"
6183420426cSMatt Spinler            },
6193420426cSMatt Spinler            {
6203420426cSMatt Spinler                "class": "signal",
6213420426cSMatt Spinler                "signal": "properties_changed"
6223420426cSMatt Spinler            },
6233420426cSMatt Spinler            {
6243420426cSMatt Spinler                "class": "signal",
6253420426cSMatt Spinler                "signal": "interfaces_added"
6263420426cSMatt Spinler            }
6273420426cSMatt Spinler        ],
6283420426cSMatt Spinler        "actions": [
6293420426cSMatt Spinler            {
6303420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6313420426cSMatt Spinler                "parameter_name": "intmb_dvfs_increase_temp",
6323420426cSMatt Spinler                "modifier": {
6333420426cSMatt Spinler                    "operator": "minus",
6343420426cSMatt Spinler                    "value": 10
6353420426cSMatt Spinler                }
6363420426cSMatt Spinler            },
6373420426cSMatt Spinler            {
6383420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6393420426cSMatt Spinler                "parameter_name": "intmb_dvfs_decrease_temp",
6403420426cSMatt Spinler                "modifier": {
6413420426cSMatt Spinler                    "operator": "minus",
6423420426cSMatt Spinler                    "value": 13
6433420426cSMatt Spinler                }
6443420426cSMatt Spinler            }
6453420426cSMatt Spinler        ]
6463420426cSMatt Spinler    },
6473420426cSMatt Spinler    {
6483420426cSMatt Spinler        "name": "Set DRAM and external memory buffer DVFS parameter",
6493420426cSMatt Spinler        "groups": [
6503420426cSMatt Spinler            {
6513420426cSMatt Spinler                "name": "dram and external memory buffer dvfs temp",
6523420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
6533420426cSMatt Spinler                "property": { "name": "Value" }
6543420426cSMatt Spinler            }
6553420426cSMatt Spinler        ],
6563420426cSMatt Spinler        "triggers": [
6573420426cSMatt Spinler            {
6583420426cSMatt Spinler                "class": "init",
6593420426cSMatt Spinler                "method": "get_properties"
6603420426cSMatt Spinler            },
6613420426cSMatt Spinler            {
6623420426cSMatt Spinler                "class": "signal",
6633420426cSMatt Spinler                "signal": "properties_changed"
6643420426cSMatt Spinler            },
6653420426cSMatt Spinler            {
6663420426cSMatt Spinler                "class": "signal",
6673420426cSMatt Spinler                "signal": "interfaces_added"
6683420426cSMatt Spinler            }
6693420426cSMatt Spinler        ],
6703420426cSMatt Spinler        "actions": [
6713420426cSMatt Spinler            {
6723420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6733420426cSMatt Spinler                "parameter_name": "dram_extmb_dvfs_increase_temp",
6743420426cSMatt Spinler                "modifier": {
6753420426cSMatt Spinler                    "operator": "minus",
6763420426cSMatt Spinler                    "value": 10
6773420426cSMatt Spinler                }
6783420426cSMatt Spinler            },
6793420426cSMatt Spinler            {
6803420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6813420426cSMatt Spinler                "parameter_name": "dram_extmb_dvfs_decrease_temp",
6823420426cSMatt Spinler                "modifier": {
6833420426cSMatt Spinler                    "operator": "minus",
6843420426cSMatt Spinler                    "value": 13
6853420426cSMatt Spinler                }
6863420426cSMatt Spinler            }
6873420426cSMatt Spinler        ]
6883420426cSMatt Spinler    },
6893420426cSMatt Spinler    {
6903420426cSMatt Spinler        "name": "Set external memory buffer DVFS parameter",
6913420426cSMatt Spinler        "groups": [
6923420426cSMatt Spinler            {
6933420426cSMatt Spinler                "name": "external memory buffer dvfs temp",
6943420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
6953420426cSMatt Spinler                "property": { "name": "Value" }
6963420426cSMatt Spinler            }
6973420426cSMatt Spinler        ],
6983420426cSMatt Spinler        "triggers": [
6993420426cSMatt Spinler            {
7003420426cSMatt Spinler                "class": "init",
7013420426cSMatt Spinler                "method": "get_properties"
7023420426cSMatt Spinler            },
7033420426cSMatt Spinler            {
7043420426cSMatt Spinler                "class": "signal",
7053420426cSMatt Spinler                "signal": "properties_changed"
7063420426cSMatt Spinler            },
7073420426cSMatt Spinler            {
7083420426cSMatt Spinler                "class": "signal",
7093420426cSMatt Spinler                "signal": "interfaces_added"
7103420426cSMatt Spinler            }
7113420426cSMatt Spinler        ],
7123420426cSMatt Spinler        "actions": [
7133420426cSMatt Spinler            {
7143420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7153420426cSMatt Spinler                "parameter_name": "extmb_dvfs_increase_temp",
7163420426cSMatt Spinler                "modifier": {
7173420426cSMatt Spinler                    "operator": "minus",
7183420426cSMatt Spinler                    "value": 7
7193420426cSMatt Spinler                }
7203420426cSMatt Spinler            },
7213420426cSMatt Spinler            {
7223420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7233420426cSMatt Spinler                "parameter_name": "extmb_dvfs_decrease_temp",
7243420426cSMatt Spinler                "modifier": {
7253420426cSMatt Spinler                    "operator": "minus",
7263420426cSMatt Spinler                    "value": 10
7273420426cSMatt Spinler                }
7283420426cSMatt Spinler            }
7293420426cSMatt Spinler        ]
7303420426cSMatt Spinler    },
7313420426cSMatt Spinler    {
7323420426cSMatt Spinler        // Collect group temperatures each iteration the repeating timer expires
7333420426cSMatt Spinler        "name": "Fan control timer loop",
7343420426cSMatt Spinler        "groups": [
7353420426cSMatt Spinler            {
7363420426cSMatt Spinler                "name": "proc0 core temps",
7373420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7383420426cSMatt Spinler                "property": { "name": "Value" }
7393420426cSMatt Spinler            },
7403420426cSMatt Spinler            {
7413420426cSMatt Spinler                "name": "proc1 core temps",
7423420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7433420426cSMatt Spinler                "property": { "name": "Value" }
7443420426cSMatt Spinler            },
7453420426cSMatt Spinler            {
7463420426cSMatt Spinler                "name": "proc0 ioring temp",
7473420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7483420426cSMatt Spinler                "property": { "name": "Value" }
7493420426cSMatt Spinler            },
7503420426cSMatt Spinler            {
7513420426cSMatt Spinler                "name": "proc1 ioring temp",
7523420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7533420426cSMatt Spinler                "property": { "name": "Value" }
7543420426cSMatt Spinler            },
7553420426cSMatt Spinler            {
7563420426cSMatt Spinler                "name": "dram temps",
7573420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7583420426cSMatt Spinler                "property": { "name": "Value" }
7593420426cSMatt Spinler            },
7603420426cSMatt Spinler            {
7613420426cSMatt Spinler                "name": "pmic temps",
7623420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7633420426cSMatt Spinler                "property": { "name": "Value" }
7643420426cSMatt Spinler            },
7653420426cSMatt Spinler            {
7663420426cSMatt Spinler                "name": "internal memory buffer temps",
7673420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7683420426cSMatt Spinler                "property": { "name": "Value" }
7693420426cSMatt Spinler            },
7703420426cSMatt Spinler            {
7713420426cSMatt Spinler                "name": "dram and external memory buffer temps",
7723420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7733420426cSMatt Spinler                "property": { "name": "Value" }
7743420426cSMatt Spinler            },
7753420426cSMatt Spinler            {
7763420426cSMatt Spinler                "name": "external memory buffer temps",
7773420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7783420426cSMatt Spinler                "property": { "name": "Value" }
7793420426cSMatt Spinler            },
7803420426cSMatt Spinler            {
7813420426cSMatt Spinler                "name": "vdd vrm temps",
7823420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7833420426cSMatt Spinler                "property": { "name": "Value" }
7843420426cSMatt Spinler            },
7853420426cSMatt Spinler            {
7863420426cSMatt Spinler                "name": "nvme temps",
7873420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7883420426cSMatt Spinler                "property": { "name": "Value" }
7893420426cSMatt Spinler            },
7903420426cSMatt Spinler            {
7913420426cSMatt Spinler                "name": "planar temps",
7923420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7933420426cSMatt Spinler                "property": { "name": "Value" }
7943420426cSMatt Spinler            },
7953420426cSMatt Spinler            {
7963420426cSMatt Spinler                "name": "flett temps",
7973420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7983420426cSMatt Spinler                "property": { "name": "Value" }
7993420426cSMatt Spinler            },
8003420426cSMatt Spinler            {
8013420426cSMatt Spinler                "name": "pcie cable card temps",
8023420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
8033420426cSMatt Spinler                "property": { "name": "Value" }
8043420426cSMatt Spinler            }
8053420426cSMatt Spinler        ],
8063420426cSMatt Spinler        "triggers": [
8073420426cSMatt Spinler            {
8083420426cSMatt Spinler                "class": "timer",
8093420426cSMatt Spinler                "type": "repeating",
8103420426cSMatt Spinler                "interval": 2000000,
8113420426cSMatt Spinler                "preload_groups": true
8123420426cSMatt Spinler            }
8133420426cSMatt Spinler        ],
8143420426cSMatt Spinler        "actions": [
8153420426cSMatt Spinler            {
8163420426cSMatt Spinler                "name": "set_net_increase_target",
8173420426cSMatt Spinler                "groups": [
8183420426cSMatt Spinler                    {
8193420426cSMatt Spinler                        "name": "proc0 core temps",
8203420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8213420426cSMatt Spinler                        "property": { "name": "Value" }
8223420426cSMatt Spinler                    }
8233420426cSMatt Spinler                ],
8243420426cSMatt Spinler                "state_parameter_name": "proc_0_core_dvfs_increase_temp",
8253420426cSMatt Spinler                "delta": 300
8263420426cSMatt Spinler            },
8273420426cSMatt Spinler            {
8283420426cSMatt Spinler                "name": "set_net_increase_target",
8293420426cSMatt Spinler                "groups": [
8303420426cSMatt Spinler                    {
8313420426cSMatt Spinler                        "name": "proc1 core temps",
8323420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8333420426cSMatt Spinler                        "property": { "name": "Value" }
8343420426cSMatt Spinler                    }
8353420426cSMatt Spinler                ],
8363420426cSMatt Spinler                "state_parameter_name": "proc_1_core_dvfs_increase_temp",
8373420426cSMatt Spinler                "delta": 300
8383420426cSMatt Spinler            },
8393420426cSMatt Spinler            {
8403420426cSMatt Spinler                "name": "set_net_increase_target",
8413420426cSMatt Spinler                "groups": [
8423420426cSMatt Spinler                    {
8433420426cSMatt Spinler                        "name": "proc0 ioring temp",
8443420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8453420426cSMatt Spinler                        "property": { "name": "Value" }
8463420426cSMatt Spinler                    }
8473420426cSMatt Spinler                ],
8483420426cSMatt Spinler                "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
8493420426cSMatt Spinler                "delta": 300
8503420426cSMatt Spinler            },
8513420426cSMatt Spinler            {
8523420426cSMatt Spinler                "name": "set_net_increase_target",
8533420426cSMatt Spinler                "groups": [
8543420426cSMatt Spinler                    {
8553420426cSMatt Spinler                        "name": "proc1 ioring temp",
8563420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8573420426cSMatt Spinler                        "property": { "name": "Value" }
8583420426cSMatt Spinler                    }
8593420426cSMatt Spinler                ],
8603420426cSMatt Spinler                "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
8613420426cSMatt Spinler                "delta": 300
8623420426cSMatt Spinler            },
8633420426cSMatt Spinler            {
8643420426cSMatt Spinler                "name": "set_net_increase_target",
8653420426cSMatt Spinler                "groups": [
8663420426cSMatt Spinler                    {
8673420426cSMatt Spinler                        "name": "dram temps",
8683420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8693420426cSMatt Spinler                        "property": { "name": "Value" }
8703420426cSMatt Spinler                    }
8713420426cSMatt Spinler                ],
8723420426cSMatt Spinler                "state_parameter_name": "dram_dvfs_increase_temp",
8733420426cSMatt Spinler                "delta": 200
8743420426cSMatt Spinler            },
8753420426cSMatt Spinler            {
8763420426cSMatt Spinler                "name": "set_net_increase_target",
8773420426cSMatt Spinler                "groups": [
8783420426cSMatt Spinler                    {
8793420426cSMatt Spinler                        "name": "pmic temps",
8803420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8813420426cSMatt Spinler                        "property": { "name": "Value" }
8823420426cSMatt Spinler                    }
8833420426cSMatt Spinler                ],
8843420426cSMatt Spinler                "state_parameter_name": "pmic_dvfs_increase_temp",
8853420426cSMatt Spinler                "delta": 200
8863420426cSMatt Spinler            },
8873420426cSMatt Spinler            {
8883420426cSMatt Spinler                "name": "set_net_increase_target",
8893420426cSMatt Spinler                "groups": [
8903420426cSMatt Spinler                    {
8913420426cSMatt Spinler                        "name": "internal memory buffer temps",
8923420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
8933420426cSMatt Spinler                        "property": { "name": "Value" }
8943420426cSMatt Spinler                    }
8953420426cSMatt Spinler                ],
8963420426cSMatt Spinler                "state_parameter_name": "intmb_dvfs_increase_temp",
8973420426cSMatt Spinler                "delta": 200
8983420426cSMatt Spinler            },
8993420426cSMatt Spinler            {
9003420426cSMatt Spinler                "name": "set_net_increase_target",
9013420426cSMatt Spinler                "groups": [
9023420426cSMatt Spinler                    {
9033420426cSMatt Spinler                        "name": "dram and external memory buffer temps",
9043420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9053420426cSMatt Spinler                        "property": { "name": "Value" }
9063420426cSMatt Spinler                    }
9073420426cSMatt Spinler                ],
9083420426cSMatt Spinler                "state_parameter_name": "dram_extmb_dvfs_increase_temp",
9093420426cSMatt Spinler                "delta": 200
9103420426cSMatt Spinler            },
9113420426cSMatt Spinler            {
9123420426cSMatt Spinler                "name": "set_net_increase_target",
9133420426cSMatt Spinler                "groups": [
9143420426cSMatt Spinler                    {
9153420426cSMatt Spinler                        "name": "external memory buffer temps",
9163420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9173420426cSMatt Spinler                        "property": { "name": "Value" }
9183420426cSMatt Spinler                    }
9193420426cSMatt Spinler                ],
9203420426cSMatt Spinler                "state_parameter_name": "extmb_dvfs_increase_temp",
9213420426cSMatt Spinler                "delta": 200
9223420426cSMatt Spinler            },
9233420426cSMatt Spinler            {
9243420426cSMatt Spinler                "name": "set_net_increase_target",
9253420426cSMatt Spinler                "groups": [
9263420426cSMatt Spinler                    {
9273420426cSMatt Spinler                        "name": "vdd vrm temps",
9283420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9293420426cSMatt Spinler                        "property": { "name": "Value" }
9303420426cSMatt Spinler                    }
9313420426cSMatt Spinler                ],
9323420426cSMatt Spinler                "state": 82.0,
9333420426cSMatt Spinler                "delta": 300
9343420426cSMatt Spinler            },
9353420426cSMatt Spinler            {
9363420426cSMatt Spinler                "name": "set_net_increase_target",
9373420426cSMatt Spinler                "groups": [
9383420426cSMatt Spinler                    {
9393420426cSMatt Spinler                        "name": "nvme temps",
9403420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9413420426cSMatt Spinler                        "property": { "name": "Value" }
9423420426cSMatt Spinler                    }
9433420426cSMatt Spinler                ],
9443420426cSMatt Spinler                "state": 58.0,
9453420426cSMatt Spinler                "delta": 200
9463420426cSMatt Spinler            },
9473420426cSMatt Spinler            {
9483420426cSMatt Spinler                "name": "set_net_increase_target",
9493420426cSMatt Spinler                "groups": [
9503420426cSMatt Spinler                    {
9513420426cSMatt Spinler                        "name": "planar temps",
9523420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9533420426cSMatt Spinler                        "property": { "name": "Value" }
9543420426cSMatt Spinler                    }
9553420426cSMatt Spinler                ],
9563420426cSMatt Spinler                "state": 65.0,
9573420426cSMatt Spinler                "delta": 255
9583420426cSMatt Spinler            },
9593420426cSMatt Spinler            {
9603420426cSMatt Spinler                "name": "set_net_increase_target",
9613420426cSMatt Spinler                "groups": [
9623420426cSMatt Spinler                    {
9633420426cSMatt Spinler                        "name": "flett temps",
9643420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9653420426cSMatt Spinler                        "property": { "name": "Value" }
9663420426cSMatt Spinler                    }
9673420426cSMatt Spinler                ],
9683420426cSMatt Spinler                "state": 80.0,
9693420426cSMatt Spinler                "delta": 200
9703420426cSMatt Spinler            },
9713420426cSMatt Spinler            {
9723420426cSMatt Spinler                "name": "set_net_increase_target",
9733420426cSMatt Spinler                "groups": [
9743420426cSMatt Spinler                    {
9753420426cSMatt Spinler                        "name": "pcie cable card temps",
9763420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9773420426cSMatt Spinler                        "property": { "name": "Value" }
9783420426cSMatt Spinler                    }
9793420426cSMatt Spinler                ],
9803420426cSMatt Spinler                "state": 70.0,
9813420426cSMatt Spinler                "delta": 255
9823420426cSMatt Spinler            },
9833420426cSMatt Spinler            {
9843420426cSMatt Spinler                "name": "set_net_decrease_target",
9853420426cSMatt Spinler                "groups": [
9863420426cSMatt Spinler                    {
9873420426cSMatt Spinler                        "name": "proc0 core temps",
9883420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
9893420426cSMatt Spinler                        "property": { "name": "Value" }
9903420426cSMatt Spinler                    }
9913420426cSMatt Spinler                ],
9923420426cSMatt Spinler                "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
9933420426cSMatt Spinler                "delta": 50
9943420426cSMatt Spinler            },
9953420426cSMatt Spinler            {
9963420426cSMatt Spinler                "name": "set_net_decrease_target",
9973420426cSMatt Spinler                "groups": [
9983420426cSMatt Spinler                    {
9993420426cSMatt Spinler                        "name": "proc1 core temps",
10003420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10013420426cSMatt Spinler                        "property": { "name": "Value" }
10023420426cSMatt Spinler                    }
10033420426cSMatt Spinler                ],
10043420426cSMatt Spinler                "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
10053420426cSMatt Spinler                "delta": 50
10063420426cSMatt Spinler            },
10073420426cSMatt Spinler            {
10083420426cSMatt Spinler                "name": "set_net_decrease_target",
10093420426cSMatt Spinler                "groups": [
10103420426cSMatt Spinler                    {
10113420426cSMatt Spinler                        "name": "proc0 ioring temp",
10123420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10133420426cSMatt Spinler                        "property": { "name": "Value" }
10143420426cSMatt Spinler                    }
10153420426cSMatt Spinler                ],
10163420426cSMatt Spinler                "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
10173420426cSMatt Spinler                "delta": 50
10183420426cSMatt Spinler            },
10193420426cSMatt Spinler            {
10203420426cSMatt Spinler                "name": "set_net_decrease_target",
10213420426cSMatt Spinler                "groups": [
10223420426cSMatt Spinler                    {
10233420426cSMatt Spinler                        "name": "proc1 ioring temp",
10243420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10253420426cSMatt Spinler                        "property": { "name": "Value" }
10263420426cSMatt Spinler                    }
10273420426cSMatt Spinler                ],
10283420426cSMatt Spinler                "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
10293420426cSMatt Spinler                "delta": 50
10303420426cSMatt Spinler            },
10313420426cSMatt Spinler            {
10323420426cSMatt Spinler                "name": "set_net_decrease_target",
10333420426cSMatt Spinler                "groups": [
10343420426cSMatt Spinler                    {
10353420426cSMatt Spinler                        "name": "dram temps",
10363420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10373420426cSMatt Spinler                        "property": { "name": "Value" }
10383420426cSMatt Spinler                    }
10393420426cSMatt Spinler                ],
10403420426cSMatt Spinler                "state_parameter_name": "dram_dvfs_decrease_temp",
10413420426cSMatt Spinler                "delta": 50
10423420426cSMatt Spinler            },
10433420426cSMatt Spinler            {
10443420426cSMatt Spinler                "name": "set_net_decrease_target",
10453420426cSMatt Spinler                "groups": [
10463420426cSMatt Spinler                    {
10473420426cSMatt Spinler                        "name": "pmic temps",
10483420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10493420426cSMatt Spinler                        "property": { "name": "Value" }
10503420426cSMatt Spinler                    }
10513420426cSMatt Spinler                ],
10523420426cSMatt Spinler                "state_parameter_name": "pmic_dvfs_decrease_temp",
10533420426cSMatt Spinler                "delta": 50
10543420426cSMatt Spinler            },
10553420426cSMatt Spinler            {
10563420426cSMatt Spinler                "name": "set_net_decrease_target",
10573420426cSMatt Spinler                "groups": [
10583420426cSMatt Spinler                    {
10593420426cSMatt Spinler                        "name": "internal memory buffer temps",
10603420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10613420426cSMatt Spinler                        "property": { "name": "Value" }
10623420426cSMatt Spinler                    }
10633420426cSMatt Spinler                ],
10643420426cSMatt Spinler                "state_parameter_name": "intmb_dvfs_decrease_temp",
10653420426cSMatt Spinler                "delta": 50
10663420426cSMatt Spinler            },
10673420426cSMatt Spinler            {
10683420426cSMatt Spinler                "name": "set_net_decrease_target",
10693420426cSMatt Spinler                "groups": [
10703420426cSMatt Spinler                    {
10713420426cSMatt Spinler                        "name": "dram and external memory buffer temps",
10723420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10733420426cSMatt Spinler                        "property": { "name": "Value" }
10743420426cSMatt Spinler                    }
10753420426cSMatt Spinler                ],
10763420426cSMatt Spinler                "state_parameter_name": "dram_extmb_dvfs_decrease_temp",
10773420426cSMatt Spinler                "delta": 50
10783420426cSMatt Spinler            },
10793420426cSMatt Spinler            {
10803420426cSMatt Spinler                "name": "set_net_decrease_target",
10813420426cSMatt Spinler                "groups": [
10823420426cSMatt Spinler                    {
10833420426cSMatt Spinler                        "name": "external memory buffer temps",
10843420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10853420426cSMatt Spinler                        "property": { "name": "Value" }
10863420426cSMatt Spinler                    }
10873420426cSMatt Spinler                ],
10883420426cSMatt Spinler                "state_parameter_name": "extmb_dvfs_decrease_temp",
10893420426cSMatt Spinler                "delta": 50
10903420426cSMatt Spinler            },
10913420426cSMatt Spinler            {
10923420426cSMatt Spinler                "name": "set_net_decrease_target",
10933420426cSMatt Spinler                "groups": [
10943420426cSMatt Spinler                    {
10953420426cSMatt Spinler                        "name": "vdd vrm temps",
10963420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
10973420426cSMatt Spinler                        "property": { "name": "Value" }
10983420426cSMatt Spinler                    }
10993420426cSMatt Spinler                ],
11003420426cSMatt Spinler                "state": 79.0,
11013420426cSMatt Spinler                "delta": 50
11023420426cSMatt Spinler            },
11033420426cSMatt Spinler            {
11043420426cSMatt Spinler                "name": "set_net_decrease_target",
11053420426cSMatt Spinler                "groups": [
11063420426cSMatt Spinler                    {
11073420426cSMatt Spinler                        "name": "nvme temps",
11083420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
11093420426cSMatt Spinler                        "property": { "name": "Value" }
11103420426cSMatt Spinler                    }
11113420426cSMatt Spinler                ],
11123420426cSMatt Spinler                "state": 55.0,
11133420426cSMatt Spinler                "delta": 50
11143420426cSMatt Spinler            },
11153420426cSMatt Spinler            {
11163420426cSMatt Spinler                "name": "set_net_decrease_target",
11173420426cSMatt Spinler                "groups": [
11183420426cSMatt Spinler                    {
11193420426cSMatt Spinler                        "name": "planar temps",
11203420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
11213420426cSMatt Spinler                        "property": { "name": "Value" }
11223420426cSMatt Spinler                    }
11233420426cSMatt Spinler                ],
11243420426cSMatt Spinler                "state": 60.0,
11253420426cSMatt Spinler                "delta": 50
11263420426cSMatt Spinler            },
11273420426cSMatt Spinler            {
11283420426cSMatt Spinler                "name": "set_net_decrease_target",
11293420426cSMatt Spinler                "groups": [
11303420426cSMatt Spinler                    {
11313420426cSMatt Spinler                        "name": "flett temps",
11323420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
11333420426cSMatt Spinler                        "property": { "name": "Value" }
11343420426cSMatt Spinler                    }
11353420426cSMatt Spinler                ],
11363420426cSMatt Spinler                "state": 75.0,
11373420426cSMatt Spinler                "delta": 40
11383420426cSMatt Spinler            },
11393420426cSMatt Spinler            {
11403420426cSMatt Spinler                "name": "set_net_decrease_target",
11413420426cSMatt Spinler                "groups": [
11423420426cSMatt Spinler                    {
11433420426cSMatt Spinler                        "name": "pcie cable card temps",
11443420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
11453420426cSMatt Spinler                        "property": { "name": "Value" }
11463420426cSMatt Spinler                    }
11473420426cSMatt Spinler                ],
11483420426cSMatt Spinler                "state": 65.0,
11493420426cSMatt Spinler                "delta": 50
11503420426cSMatt Spinler            }
11513420426cSMatt Spinler        ]
11523420426cSMatt Spinler    },
11533420426cSMatt Spinler    {
11543420426cSMatt Spinler        // Remove NVMe temperature objects from cache when they are removed from
11553420426cSMatt Spinler        // dbus. There's no need to react to their removal.
11563420426cSMatt Spinler        "name": "remove nvme objects",
11573420426cSMatt Spinler        "groups": [
11583420426cSMatt Spinler            {
11593420426cSMatt Spinler                "name": "nvme temps",
11603420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11613420426cSMatt Spinler                "property": { "name": "Value" }
11623420426cSMatt Spinler            },
11633420426cSMatt Spinler            {
11643420426cSMatt Spinler                "name": "nvme temps",
11653420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
11663420426cSMatt Spinler                "property": { "name": "Functional" }
11673420426cSMatt Spinler            }
11683420426cSMatt Spinler        ],
11693420426cSMatt Spinler        "triggers": [
11703420426cSMatt Spinler            {
11713420426cSMatt Spinler                "class": "signal",
11723420426cSMatt Spinler                "signal": "interfaces_removed"
11733420426cSMatt Spinler            }
11743420426cSMatt Spinler        ]
11753420426cSMatt Spinler    },
11763420426cSMatt Spinler    {
11773420426cSMatt Spinler        "name": "set pcie floor index",
11783420426cSMatt Spinler        "groups": [
11793420426cSMatt Spinler            {
11803420426cSMatt Spinler                "name": "pcie slots",
11813420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.PowerState",
11823420426cSMatt Spinler                "property": {
11833420426cSMatt Spinler                    "name": "PowerState"
11843420426cSMatt Spinler                }
11853420426cSMatt Spinler            },
11863420426cSMatt Spinler            {
11873420426cSMatt Spinler                "name": "pcie cards",
11883420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
11893420426cSMatt Spinler                "property": {
11903420426cSMatt Spinler                    "name": "Function0DeviceId"
11913420426cSMatt Spinler                }
11923420426cSMatt Spinler            },
11933420426cSMatt Spinler            {
11943420426cSMatt Spinler                "name": "pcie cards",
11953420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
11963420426cSMatt Spinler                "property": {
11973420426cSMatt Spinler                    "name": "Function0VendorId"
11983420426cSMatt Spinler                }
11993420426cSMatt Spinler            },
12003420426cSMatt Spinler            {
12013420426cSMatt Spinler                "name": "pcie cards",
12023420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
12033420426cSMatt Spinler                "property": {
12043420426cSMatt Spinler                    "name": "Function0SubsystemId"
12053420426cSMatt Spinler                }
12063420426cSMatt Spinler            },
12073420426cSMatt Spinler            {
12083420426cSMatt Spinler                "name": "pcie cards",
12093420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
12103420426cSMatt Spinler                "property": {
12113420426cSMatt Spinler                    "name": "Function0SubsystemVendorId"
12123420426cSMatt Spinler                }
12133420426cSMatt Spinler            }
12143420426cSMatt Spinler        ],
12153420426cSMatt Spinler        "triggers": [
12163420426cSMatt Spinler            {
12173420426cSMatt Spinler                "class": "init",
12183420426cSMatt Spinler                "method": "get_properties"
12193420426cSMatt Spinler            },
12203420426cSMatt Spinler            {
12213420426cSMatt Spinler                "class": "signal",
12223420426cSMatt Spinler                "signal": "properties_changed"
12233420426cSMatt Spinler            },
12243420426cSMatt Spinler            {
12253420426cSMatt Spinler                "class": "signal",
12263420426cSMatt Spinler                "signal": "interfaces_added"
12273420426cSMatt Spinler            }
12283420426cSMatt Spinler        ],
12293420426cSMatt Spinler        "actions": [
12303420426cSMatt Spinler            {
12313420426cSMatt Spinler                "name": "pcie_card_floors",
12323420426cSMatt Spinler                "use_config_specific_files": true,
12333420426cSMatt Spinler                "settle_time": 2
12343420426cSMatt Spinler            }
12353420426cSMatt Spinler        ]
12363420426cSMatt Spinler    },
12373420426cSMatt Spinler    {
12383420426cSMatt Spinler        "name": "Set altitude offset parameter",
12393420426cSMatt Spinler        "groups": [
12403420426cSMatt Spinler            {
12413420426cSMatt Spinler                "name": "altitude",
12423420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
12433420426cSMatt Spinler                "property": { "name": "Value" }
12443420426cSMatt Spinler            }
12453420426cSMatt Spinler        ],
12463420426cSMatt Spinler        "triggers": [
12473420426cSMatt Spinler            {
12483420426cSMatt Spinler                "class": "init",
12493420426cSMatt Spinler                "method": "get_properties"
12503420426cSMatt Spinler            },
12513420426cSMatt Spinler            {
12523420426cSMatt Spinler                "class": "signal",
12533420426cSMatt Spinler                "signal": "interfaces_added"
12543420426cSMatt Spinler            },
12553420426cSMatt Spinler            {
12563420426cSMatt Spinler                // Refresh altitude every 24hrs
12573420426cSMatt Spinler                "class": "timer",
12583420426cSMatt Spinler                "type": "repeating",
12593420426cSMatt Spinler                "interval": 86400000000,
12603420426cSMatt Spinler                "preload_groups": true
12613420426cSMatt Spinler            }
12623420426cSMatt Spinler        ],
12633420426cSMatt Spinler        "actions": [
12643420426cSMatt Spinler            {
12653420426cSMatt Spinler                "name": "set_parameter_from_group_max",
12663420426cSMatt Spinler                "parameter_name": "altitude_offset",
12673420426cSMatt Spinler                "modifier": {
12683420426cSMatt Spinler                    "operator": "less_than",
12693420426cSMatt Spinler                    "default_value": 3000,
12703420426cSMatt Spinler                    "value": [
12713420426cSMatt Spinler                        { "arg_value": 1000, "parameter_value": 0 },
12723420426cSMatt Spinler                        { "arg_value": 1900, "parameter_value": 1000 },
12733420426cSMatt Spinler                        { "arg_value": 2800, "parameter_value": 2000 }
12743420426cSMatt Spinler                    ]
12753420426cSMatt Spinler                }
12763420426cSMatt Spinler            }
12773420426cSMatt Spinler        ]
12783420426cSMatt Spinler    },
12793420426cSMatt Spinler    {
12803420426cSMatt Spinler        "name": "Fan floors",
12813420426cSMatt Spinler        "groups": [
12823420426cSMatt Spinler            {
12833420426cSMatt Spinler                "name": "ambient temp",
12843420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
12853420426cSMatt Spinler                "property": { "name": "Value" }
12863420426cSMatt Spinler            },
12873420426cSMatt Spinler            {
12883420426cSMatt Spinler                "name": "cpu 0 inventory",
12893420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Decorator.Asset",
12903420426cSMatt Spinler                "property": { "name": "Model" }
12913420426cSMatt Spinler            }
12923420426cSMatt Spinler        ],
12933420426cSMatt Spinler        "triggers": [
12943420426cSMatt Spinler            {
12953420426cSMatt Spinler                "class": "init",
12963420426cSMatt Spinler                "method": "get_properties"
12973420426cSMatt Spinler            },
12983420426cSMatt Spinler            {
12993420426cSMatt Spinler                "class": "signal",
13003420426cSMatt Spinler                "signal": "properties_changed"
13013420426cSMatt Spinler            },
13023420426cSMatt Spinler            {
13033420426cSMatt Spinler                "class": "signal",
13043420426cSMatt Spinler                "signal": "interfaces_added"
13053420426cSMatt Spinler            },
13063420426cSMatt Spinler            {
13073420426cSMatt Spinler                "class": "parameter",
13083420426cSMatt Spinler                "parameter": "pcie_floor_index"
13093420426cSMatt Spinler            },
13103420426cSMatt Spinler            {
13113420426cSMatt Spinler                "class": "parameter",
13123420426cSMatt Spinler                "parameter": "altitude_offset"
13133420426cSMatt Spinler            }
13143420426cSMatt Spinler        ],
13153420426cSMatt Spinler        "actions": [
13163420426cSMatt Spinler            {
13173420426cSMatt Spinler                "name": "mapped_floor",
13183420426cSMatt Spinler                "key_group": "ambient temp",
13193420426cSMatt Spinler                "condition_group": "cpu 0 inventory",
13203420426cSMatt Spinler                "condition_value": "5CF9",
13213420426cSMatt Spinler                "condition_op": "not_equal",
13223420426cSMatt Spinler                "fan_floors": [
13233420426cSMatt Spinler                    {
13243420426cSMatt Spinler                        // Entry valid for ambient temp < 27
13253420426cSMatt Spinler                        "key": 27,
13263420426cSMatt Spinler                        "default_floor": 3700,
13273420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
13283420426cSMatt Spinler                        "floors": [
13293420426cSMatt Spinler                            {
13303420426cSMatt Spinler                                "parameter": "pcie_floor_index",
13313420426cSMatt Spinler                                "floors": [
13323420426cSMatt Spinler                                    { "value": 1, "floor": 6000 },
13333420426cSMatt Spinler                                    { "value": 2, "floor": 7000 },
13343420426cSMatt Spinler                                    { "value": 3, "floor": 8000 }
13353420426cSMatt Spinler                                ]
13363420426cSMatt Spinler                            }
13373420426cSMatt Spinler                        ]
13383420426cSMatt Spinler                    },
13393420426cSMatt Spinler                    {
13403420426cSMatt Spinler                        // Entry valid for ambient temp < 32
13413420426cSMatt Spinler                        "key": 32,
13423420426cSMatt Spinler                        "default_floor": 5000,
13433420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
13443420426cSMatt Spinler                        "floors": [
13453420426cSMatt Spinler                            {
13463420426cSMatt Spinler                                "parameter": "pcie_floor_index",
13473420426cSMatt Spinler                                "floors": [
13483420426cSMatt Spinler                                    { "value": 1, "floor": 7000 },
13493420426cSMatt Spinler                                    { "value": 2, "floor": 9000 },
13503420426cSMatt Spinler                                    { "value": 3, "floor": 9500 }
13513420426cSMatt Spinler                                ]
13523420426cSMatt Spinler                            }
13533420426cSMatt Spinler                        ]
13543420426cSMatt Spinler                    },
13553420426cSMatt Spinler                    {
13563420426cSMatt Spinler                        // Entry valid for ambient temp < 37
13573420426cSMatt Spinler                        "key": 37,
13583420426cSMatt Spinler                        "default_floor": 6000,
13593420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
13603420426cSMatt Spinler                        "floors": [
13613420426cSMatt Spinler                            {
13623420426cSMatt Spinler                                "parameter": "pcie_floor_index",
13633420426cSMatt Spinler                                "floors": [
13643420426cSMatt Spinler                                    { "value": 1, "floor": 9000 },
13653420426cSMatt Spinler                                    { "value": 2, "floor": 9500 },
13663420426cSMatt Spinler                                    { "value": 3, "floor": 10400 }
13673420426cSMatt Spinler                                ]
13683420426cSMatt Spinler                            }
13693420426cSMatt Spinler                        ]
13703420426cSMatt Spinler                    },
13713420426cSMatt Spinler                    {
13723420426cSMatt Spinler                        // Entry valid for ambient temp < 42
13733420426cSMatt Spinler                        "key": 42,
13743420426cSMatt Spinler                        "default_floor": 8000,
13753420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
13763420426cSMatt Spinler                        "floors": [
13773420426cSMatt Spinler                            {
13783420426cSMatt Spinler                                "parameter": "pcie_floor_index",
13793420426cSMatt Spinler                                "floors": [
13803420426cSMatt Spinler                                    { "value": 1, "floor": 9500 },
13813420426cSMatt Spinler                                    { "value": 2, "floor": 10400 },
13823420426cSMatt Spinler                                    { "value": 3, "floor": 10400 }
13833420426cSMatt Spinler                                ]
13843420426cSMatt Spinler                            }
13853420426cSMatt Spinler                        ]
13863420426cSMatt Spinler                    }
13873420426cSMatt Spinler                ]
13883420426cSMatt Spinler            },
13893420426cSMatt Spinler            {
13903420426cSMatt Spinler                "name": "mapped_floor",
13913420426cSMatt Spinler                "key_group": "ambient temp",
13923420426cSMatt Spinler                "condition_group": "cpu 0 inventory",
13933420426cSMatt Spinler                "condition_value": "5CF9",
13943420426cSMatt Spinler                "condition_op": "equal",
13953420426cSMatt Spinler                "fan_floors": [
13963420426cSMatt Spinler                    {
13973420426cSMatt Spinler                        // Entry valid for ambient temp < 27
13983420426cSMatt Spinler                        "key": 27,
13993420426cSMatt Spinler                        "default_floor": 5000,
14003420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
14013420426cSMatt Spinler                        "floors": [
14023420426cSMatt Spinler                            {
14033420426cSMatt Spinler                                "parameter": "pcie_floor_index",
14043420426cSMatt Spinler                                "floors": [
14053420426cSMatt Spinler                                    { "value": 1, "floor": 7000 },
14063420426cSMatt Spinler                                    { "value": 2, "floor": 8000 },
14073420426cSMatt Spinler                                    { "value": 3, "floor": 9000 }
14083420426cSMatt Spinler                                ]
14093420426cSMatt Spinler                            }
14103420426cSMatt Spinler                        ]
14113420426cSMatt Spinler                    },
14123420426cSMatt Spinler                    {
14133420426cSMatt Spinler                        // Entry valid for ambient temp < 32
14143420426cSMatt Spinler                        "key": 32,
14153420426cSMatt Spinler                        "default_floor": 6000,
14163420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
14173420426cSMatt Spinler                        "floors": [
14183420426cSMatt Spinler                            {
14193420426cSMatt Spinler                                "parameter": "pcie_floor_index",
14203420426cSMatt Spinler                                "floors": [
14213420426cSMatt Spinler                                    { "value": 1, "floor": 8000 },
14223420426cSMatt Spinler                                    { "value": 2, "floor": 9000 },
14233420426cSMatt Spinler                                    { "value": 3, "floor": 9500 }
14243420426cSMatt Spinler                                ]
14253420426cSMatt Spinler                            }
14263420426cSMatt Spinler                        ]
14273420426cSMatt Spinler                    },
14283420426cSMatt Spinler                    {
14293420426cSMatt Spinler                        // Entry valid for ambient temp < 37
14303420426cSMatt Spinler                        "key": 37,
14313420426cSMatt Spinler                        "default_floor": 7000,
14323420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
14333420426cSMatt Spinler                        "floors": [
14343420426cSMatt Spinler                            {
14353420426cSMatt Spinler                                "parameter": "pcie_floor_index",
14363420426cSMatt Spinler                                "floors": [
14373420426cSMatt Spinler                                    { "value": 1, "floor": 9000 },
14383420426cSMatt Spinler                                    { "value": 2, "floor": 9500 },
14393420426cSMatt Spinler                                    { "value": 3, "floor": 10400 }
14403420426cSMatt Spinler                                ]
14413420426cSMatt Spinler                            }
14423420426cSMatt Spinler                        ]
14433420426cSMatt Spinler                    },
14443420426cSMatt Spinler                    {
14453420426cSMatt Spinler                        // Entry valid for ambient temp < 42
14463420426cSMatt Spinler                        "key": 42,
14473420426cSMatt Spinler                        "default_floor": 8000,
14483420426cSMatt Spinler                        "floor_offset_parameter": "altitude_offset",
14493420426cSMatt Spinler                        "floors": [
14503420426cSMatt Spinler                            {
14513420426cSMatt Spinler                                "parameter": "pcie_floor_index",
14523420426cSMatt Spinler                                "floors": [
14533420426cSMatt Spinler                                    { "value": 1, "floor": 9500 },
14543420426cSMatt Spinler                                    { "value": 2, "floor": 10400 },
14553420426cSMatt Spinler                                    { "value": 3, "floor": 10400 }
14563420426cSMatt Spinler                                ]
14573420426cSMatt Spinler                            }
14583420426cSMatt Spinler                        ]
14593420426cSMatt Spinler                    }
14603420426cSMatt Spinler                ]
14613420426cSMatt Spinler            }
14623420426cSMatt Spinler        ]
14633420426cSMatt Spinler    }
14643420426cSMatt Spinler]
1465