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": 18000
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": "fan3 rotor inventory",
523420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
533420426cSMatt Spinler                "property": { "name": "Functional" }
543420426cSMatt Spinler            },
553420426cSMatt Spinler            {
563420426cSMatt Spinler                "name": "fan4 rotor inventory",
573420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
583420426cSMatt Spinler                "property": { "name": "Functional" }
593420426cSMatt Spinler            },
603420426cSMatt Spinler            {
613420426cSMatt Spinler                "name": "fan5 rotor inventory",
623420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
633420426cSMatt Spinler                "property": { "name": "Functional" }
643420426cSMatt Spinler            }
653420426cSMatt Spinler        ],
663420426cSMatt Spinler        "triggers": [
673420426cSMatt Spinler            {
683420426cSMatt Spinler                "class": "init",
693420426cSMatt Spinler                "method": "get_properties"
703420426cSMatt Spinler            },
713420426cSMatt Spinler            {
723420426cSMatt Spinler                "class": "signal",
733420426cSMatt Spinler                "signal": "properties_changed"
743420426cSMatt Spinler            }
753420426cSMatt Spinler        ],
763420426cSMatt Spinler        "actions": [
773420426cSMatt Spinler            {
783420426cSMatt Spinler                "name": "count_state_before_target",
793420426cSMatt Spinler                "count": 1,
803420426cSMatt Spinler                "state": false,
813420426cSMatt Spinler                "target": 18000
823420426cSMatt Spinler            }
833420426cSMatt Spinler        ]
843420426cSMatt Spinler    },
853420426cSMatt Spinler    {
863420426cSMatt Spinler        // (for the following 6 rules)
873420426cSMatt Spinler        // if a dual-rotor fan becomes non-functional, lock its speed to
883420426cSMatt Spinler        // poweron_target to lock the other rotor to full_speed
893420426cSMatt Spinler        "name": "nonfunc rotor override-0",
903420426cSMatt Spinler        "groups": [
913420426cSMatt Spinler            {
923420426cSMatt Spinler                "name": "fan0 rotor inventory",
933420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
943420426cSMatt Spinler                "property": { "name": "Functional" }
953420426cSMatt Spinler            }
963420426cSMatt Spinler        ],
973420426cSMatt Spinler        "triggers": [
983420426cSMatt Spinler            {
993420426cSMatt Spinler                "class": "init",
1003420426cSMatt Spinler                "method": "get_properties"
1013420426cSMatt Spinler            },
1023420426cSMatt Spinler            {
1033420426cSMatt Spinler                "class": "signal",
1043420426cSMatt Spinler                "signal": "properties_changed"
1053420426cSMatt Spinler            }
1063420426cSMatt Spinler        ],
1073420426cSMatt Spinler        "actions": [
1083420426cSMatt Spinler            {
1093420426cSMatt Spinler                "name": "override_fan_target",
1103420426cSMatt Spinler                "count": 1,
1113420426cSMatt Spinler                "state": false,
1123420426cSMatt Spinler                "fans": ["fan0"],
1133420426cSMatt Spinler                "target": 18000
1143420426cSMatt Spinler            }
1153420426cSMatt Spinler        ]
1163420426cSMatt Spinler    },
1173420426cSMatt Spinler    {
1183420426cSMatt Spinler        "name": "nonfunc rotor override-1",
1193420426cSMatt Spinler        "groups": [
1203420426cSMatt Spinler            {
1213420426cSMatt Spinler                "name": "fan1 rotor inventory",
1223420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1233420426cSMatt Spinler                "property": { "name": "Functional" }
1243420426cSMatt Spinler            }
1253420426cSMatt Spinler        ],
1263420426cSMatt Spinler        "triggers": [
1273420426cSMatt Spinler            {
1283420426cSMatt Spinler                "class": "init",
1293420426cSMatt Spinler                "method": "get_properties"
1303420426cSMatt Spinler            },
1313420426cSMatt Spinler            {
1323420426cSMatt Spinler                "class": "signal",
1333420426cSMatt Spinler                "signal": "properties_changed"
1343420426cSMatt Spinler            }
1353420426cSMatt Spinler        ],
1363420426cSMatt Spinler        "actions": [
1373420426cSMatt Spinler            {
1383420426cSMatt Spinler                "name": "override_fan_target",
1393420426cSMatt Spinler                "count": 1,
1403420426cSMatt Spinler                "state": false,
1413420426cSMatt Spinler                "fans": ["fan1"],
1423420426cSMatt Spinler                "target": 18000
1433420426cSMatt Spinler            }
1443420426cSMatt Spinler        ]
1453420426cSMatt Spinler    },
1463420426cSMatt Spinler    {
1473420426cSMatt Spinler        "name": "nonfunc rotor override-2",
1483420426cSMatt Spinler        "groups": [
1493420426cSMatt Spinler            {
1503420426cSMatt Spinler                "name": "fan2 rotor inventory",
1513420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1523420426cSMatt Spinler                "property": { "name": "Functional" }
1533420426cSMatt Spinler            }
1543420426cSMatt Spinler        ],
1553420426cSMatt Spinler        "triggers": [
1563420426cSMatt Spinler            {
1573420426cSMatt Spinler                "class": "init",
1583420426cSMatt Spinler                "method": "get_properties"
1593420426cSMatt Spinler            },
1603420426cSMatt Spinler            {
1613420426cSMatt Spinler                "class": "signal",
1623420426cSMatt Spinler                "signal": "properties_changed"
1633420426cSMatt Spinler            }
1643420426cSMatt Spinler        ],
1653420426cSMatt Spinler        "actions": [
1663420426cSMatt Spinler            {
1673420426cSMatt Spinler                "name": "override_fan_target",
1683420426cSMatt Spinler                "count": 1,
1693420426cSMatt Spinler                "state": false,
1703420426cSMatt Spinler                "fans": ["fan2"],
1713420426cSMatt Spinler                "target": 18000
1723420426cSMatt Spinler            }
1733420426cSMatt Spinler        ]
1743420426cSMatt Spinler    },
1753420426cSMatt Spinler    {
1763420426cSMatt Spinler        "name": "nonfunc rotor override-3",
1773420426cSMatt Spinler        "groups": [
1783420426cSMatt Spinler            {
1793420426cSMatt Spinler                "name": "fan3 rotor inventory",
1803420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1813420426cSMatt Spinler                "property": { "name": "Functional" }
1823420426cSMatt Spinler            }
1833420426cSMatt Spinler        ],
1843420426cSMatt Spinler        "triggers": [
1853420426cSMatt Spinler            {
1863420426cSMatt Spinler                "class": "init",
1873420426cSMatt Spinler                "method": "get_properties"
1883420426cSMatt Spinler            },
1893420426cSMatt Spinler            {
1903420426cSMatt Spinler                "class": "signal",
1913420426cSMatt Spinler                "signal": "properties_changed"
1923420426cSMatt Spinler            }
1933420426cSMatt Spinler        ],
1943420426cSMatt Spinler        "actions": [
1953420426cSMatt Spinler            {
1963420426cSMatt Spinler                "name": "override_fan_target",
1973420426cSMatt Spinler                "count": 1,
1983420426cSMatt Spinler                "state": false,
1993420426cSMatt Spinler                "fans": ["fan3"],
2003420426cSMatt Spinler                "target": 18000
2013420426cSMatt Spinler            }
2023420426cSMatt Spinler        ]
2033420426cSMatt Spinler    },
2043420426cSMatt Spinler    {
2053420426cSMatt Spinler        "name": "nonfunc rotor override-4",
2063420426cSMatt Spinler        "groups": [
2073420426cSMatt Spinler            {
2083420426cSMatt Spinler                "name": "fan4 rotor inventory",
2093420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2103420426cSMatt Spinler                "property": { "name": "Functional" }
2113420426cSMatt Spinler            }
2123420426cSMatt Spinler        ],
2133420426cSMatt Spinler        "triggers": [
2143420426cSMatt Spinler            {
2153420426cSMatt Spinler                "class": "init",
2163420426cSMatt Spinler                "method": "get_properties"
2173420426cSMatt Spinler            },
2183420426cSMatt Spinler            {
2193420426cSMatt Spinler                "class": "signal",
2203420426cSMatt Spinler                "signal": "properties_changed"
2213420426cSMatt Spinler            }
2223420426cSMatt Spinler        ],
2233420426cSMatt Spinler        "actions": [
2243420426cSMatt Spinler            {
2253420426cSMatt Spinler                "name": "override_fan_target",
2263420426cSMatt Spinler                "count": 1,
2273420426cSMatt Spinler                "state": false,
2283420426cSMatt Spinler                "fans": ["fan4"],
2293420426cSMatt Spinler                "target": 18000
2303420426cSMatt Spinler            }
2313420426cSMatt Spinler        ]
2323420426cSMatt Spinler    },
2333420426cSMatt Spinler    {
2343420426cSMatt Spinler        "name": "nonfunc rotor override-5",
2353420426cSMatt Spinler        "groups": [
2363420426cSMatt Spinler            {
2373420426cSMatt Spinler                "name": "fan5 rotor inventory",
2383420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2393420426cSMatt Spinler                "property": { "name": "Functional" }
2403420426cSMatt Spinler            }
2413420426cSMatt Spinler        ],
2423420426cSMatt Spinler        "triggers": [
2433420426cSMatt Spinler            {
2443420426cSMatt Spinler                "class": "init",
2453420426cSMatt Spinler                "method": "get_properties"
2463420426cSMatt Spinler            },
2473420426cSMatt Spinler            {
2483420426cSMatt Spinler                "class": "signal",
2493420426cSMatt Spinler                "signal": "properties_changed"
2503420426cSMatt Spinler            }
2513420426cSMatt Spinler        ],
2523420426cSMatt Spinler        "actions": [
2533420426cSMatt Spinler            {
2543420426cSMatt Spinler                "name": "override_fan_target",
2553420426cSMatt Spinler                "count": 1,
2563420426cSMatt Spinler                "state": false,
2573420426cSMatt Spinler                "fans": ["fan5"],
2583420426cSMatt Spinler                "target": 18000
2593420426cSMatt Spinler            }
2603420426cSMatt Spinler        ]
2613420426cSMatt Spinler    },
2623420426cSMatt Spinler    {
2633420426cSMatt Spinler        // Hold fans at the given target when any critical service
2643420426cSMatt Spinler        // is not running for 5 seconds.
2653420426cSMatt Spinler        "name": "service(s) missing",
2663420426cSMatt Spinler        "groups": [
2673420426cSMatt Spinler            {
2683420426cSMatt Spinler                "name": "fan inventory",
2693420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item",
2703420426cSMatt Spinler                "property": { "name": "Present" }
2713420426cSMatt Spinler            },
2723420426cSMatt Spinler            {
2733420426cSMatt Spinler                "name": "occ objects",
2743420426cSMatt Spinler                "interface": "org.open_power.OCC.Status",
2753420426cSMatt Spinler                "property": { "name": "OccActive" }
2763420426cSMatt Spinler            },
2773420426cSMatt Spinler            {
2783420426cSMatt Spinler                "name": "nvme temps",
2793420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
2803420426cSMatt Spinler                "property": { "name": "Value" }
2813420426cSMatt Spinler            },
2823420426cSMatt Spinler            {
2833420426cSMatt Spinler                "name": "planar temps",
2843420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
2853420426cSMatt Spinler                "property": { "name": "Value" }
2863420426cSMatt Spinler            },
2873420426cSMatt Spinler            {
2883420426cSMatt Spinler                "name": "flett temps",
2893420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
2903420426cSMatt Spinler                "property": { "name": "Value" }
2913420426cSMatt Spinler            },
2923420426cSMatt Spinler            {
2933420426cSMatt Spinler                "name": "pcie cable card temps",
2943420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
2953420426cSMatt Spinler                "property": { "name": "Value" }
2963420426cSMatt Spinler            },
2973420426cSMatt Spinler            {
2983420426cSMatt Spinler                "name": "ambient temp",
2993420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
3003420426cSMatt Spinler                "property": { "name": "Value" }
3013420426cSMatt Spinler            },
3023420426cSMatt Spinler            {
3033420426cSMatt Spinler                "name": "altitude",
3043420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
3053420426cSMatt Spinler                "property": { "name": "Value" }
3063420426cSMatt Spinler            }
3073420426cSMatt Spinler        ],
3083420426cSMatt Spinler        "triggers": [
3093420426cSMatt Spinler            {
3103420426cSMatt Spinler                "class": "init",
3113420426cSMatt Spinler                "method": "name_has_owner"
3123420426cSMatt Spinler            },
3133420426cSMatt Spinler            {
3143420426cSMatt Spinler                "class": "signal",
3153420426cSMatt Spinler                "signal": "name_owner_changed"
3163420426cSMatt Spinler            }
3173420426cSMatt Spinler        ],
3183420426cSMatt Spinler        "actions": [
3193420426cSMatt Spinler            {
3203420426cSMatt Spinler                "name": "call_actions_based_on_timer",
3213420426cSMatt Spinler                "timer": {
3223420426cSMatt Spinler                    "interval": 5000000,
3233420426cSMatt Spinler                    "type": "oneshot"
3243420426cSMatt Spinler                },
3253420426cSMatt Spinler                "actions": [
3263420426cSMatt Spinler                    {
3273420426cSMatt Spinler                        "name": "set_target_on_missing_owner",
3283420426cSMatt Spinler                        "groups": [
3293420426cSMatt Spinler                            {
3303420426cSMatt Spinler                                "name": "fan inventory",
3313420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Inventory.Item",
3323420426cSMatt Spinler                                "property": { "name": "Present" }
3333420426cSMatt Spinler                            },
3343420426cSMatt Spinler                            {
3353420426cSMatt Spinler                                "name": "occ objects",
3363420426cSMatt Spinler                                "interface": "org.open_power.OCC.Status",
3373420426cSMatt Spinler                                "property": { "name": "OccActive" }
3383420426cSMatt Spinler                            },
3393420426cSMatt Spinler                            {
3403420426cSMatt Spinler                                "name": "nvme temps",
3413420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
3423420426cSMatt Spinler                                "property": { "name": "Value" }
3433420426cSMatt Spinler                            },
3443420426cSMatt Spinler                            {
3453420426cSMatt Spinler                                "name": "planar temps",
3463420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
3473420426cSMatt Spinler                                "property": { "name": "Value" }
3483420426cSMatt Spinler                            },
3493420426cSMatt Spinler                            {
3503420426cSMatt Spinler                                "name": "flett temps",
3513420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
3523420426cSMatt Spinler                                "property": { "name": "Value" }
3533420426cSMatt Spinler                            },
3543420426cSMatt Spinler                            {
3553420426cSMatt Spinler                                "name": "pcie cable card temps",
3563420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
3573420426cSMatt Spinler                                "property": { "name": "Value" }
3583420426cSMatt Spinler                            },
3593420426cSMatt Spinler                            {
3603420426cSMatt Spinler                                "name": "ambient temp",
3613420426cSMatt Spinler                                "interface": "xyz.openbmc_project.Sensor.Value",
3623420426cSMatt Spinler                                "property": { "name": "Value" }
3633420426cSMatt Spinler                            }
3643420426cSMatt Spinler                        ],
3653420426cSMatt Spinler                        "target": 18000
3663420426cSMatt Spinler                    }
3673420426cSMatt Spinler                ]
3683420426cSMatt Spinler            }
3693420426cSMatt Spinler        ]
3703420426cSMatt Spinler    },
3713420426cSMatt Spinler    {
3723420426cSMatt Spinler        // Set a fan floor if an OCC isn't active
3733420426cSMatt Spinler        "name": "Non-active OCCs",
3743420426cSMatt Spinler        "groups": [
3753420426cSMatt Spinler            {
3763420426cSMatt Spinler                "name": "occ objects",
3773420426cSMatt Spinler                "interface": "org.open_power.OCC.Status",
3783420426cSMatt Spinler                "property": {
3793420426cSMatt Spinler                    "name": "OccActive"
3803420426cSMatt Spinler                }
3813420426cSMatt Spinler            }
3823420426cSMatt Spinler        ],
3833420426cSMatt Spinler        "triggers": [
3843420426cSMatt Spinler            {
3853420426cSMatt Spinler                "class": "signal",
3863420426cSMatt Spinler                "signal": "properties_changed"
3873420426cSMatt Spinler            },
3883420426cSMatt Spinler            {
3893420426cSMatt Spinler                "class": "signal",
3903420426cSMatt Spinler                "signal": "interfaces_added"
3913420426cSMatt Spinler            },
3923420426cSMatt Spinler            {
3933420426cSMatt Spinler                "class": "init",
3943420426cSMatt Spinler                "method": "get_properties"
3953420426cSMatt Spinler            }
3963420426cSMatt Spinler        ],
3973420426cSMatt Spinler        "actions": [
3983420426cSMatt Spinler            {
3993420426cSMatt Spinler                "name": "count_state_floor",
4003420426cSMatt Spinler                "count": 1,
4013420426cSMatt Spinler                "state": false,
4023420426cSMatt Spinler                "floor": 18000
4033420426cSMatt Spinler            }
4043420426cSMatt Spinler        ]
4053420426cSMatt Spinler    },
4063420426cSMatt Spinler    {
4073420426cSMatt Spinler        // Set a raised fan floor when any temperature or altitude sensor is
4083420426cSMatt Spinler        // nonfunctional
4093420426cSMatt Spinler        "name": "Nonfunctional temperature sensors",
4103420426cSMatt Spinler        "groups": [
4113420426cSMatt Spinler            {
4123420426cSMatt Spinler                "name": "proc0 core temps",
4133420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4143420426cSMatt Spinler                "property": { "name": "Functional" }
4153420426cSMatt Spinler            },
4163420426cSMatt Spinler            {
4173420426cSMatt Spinler                "name": "proc1 core temps",
4183420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4193420426cSMatt Spinler                "property": { "name": "Functional" }
4203420426cSMatt Spinler            },
4213420426cSMatt Spinler            {
4223420426cSMatt Spinler                "name": "proc2 core temps",
4233420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4243420426cSMatt Spinler                "property": { "name": "Functional" }
4253420426cSMatt Spinler            },
4263420426cSMatt Spinler            {
4273420426cSMatt Spinler                "name": "proc3 core temps",
4283420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4293420426cSMatt Spinler                "property": { "name": "Functional" }
4303420426cSMatt Spinler            },
4313420426cSMatt Spinler            {
4323420426cSMatt Spinler                "name": "proc0 ioring temp",
4333420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4343420426cSMatt Spinler                "property": { "name": "Functional" }
4353420426cSMatt Spinler            },
4363420426cSMatt Spinler            {
4373420426cSMatt Spinler                "name": "proc1 ioring temp",
4383420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4393420426cSMatt Spinler                "property": { "name": "Functional" }
4403420426cSMatt Spinler            },
4413420426cSMatt Spinler            {
4423420426cSMatt Spinler                "name": "proc2 ioring temp",
4433420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4443420426cSMatt Spinler                "property": { "name": "Functional" }
4453420426cSMatt Spinler            },
4463420426cSMatt Spinler            {
4473420426cSMatt Spinler                "name": "proc3 ioring temp",
4483420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4493420426cSMatt Spinler                "property": { "name": "Functional" }
4503420426cSMatt Spinler            },
4513420426cSMatt Spinler            {
4523420426cSMatt Spinler                "name": "dram temps",
4533420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4543420426cSMatt Spinler                "property": { "name": "Functional" }
4553420426cSMatt Spinler            },
4563420426cSMatt Spinler            {
4573420426cSMatt Spinler                "name": "pmic temps",
4583420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4593420426cSMatt Spinler                "property": { "name": "Functional" }
4603420426cSMatt Spinler            },
4613420426cSMatt Spinler            {
4623420426cSMatt Spinler                "name": "internal memory buffer temps",
4633420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4643420426cSMatt Spinler                "property": { "name": "Functional" }
4653420426cSMatt Spinler            },
4663420426cSMatt Spinler            {
4673420426cSMatt Spinler                "name": "dram and external memory buffer temps",
4683420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4693420426cSMatt Spinler                "property": { "name": "Functional" }
4703420426cSMatt Spinler            },
4713420426cSMatt Spinler            {
4723420426cSMatt Spinler                "name": "external memory buffer temps",
4733420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4743420426cSMatt Spinler                "property": { "name": "Functional" }
4753420426cSMatt Spinler            },
4763420426cSMatt Spinler            {
4773420426cSMatt Spinler                "name": "vdd vrm temps",
4783420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4793420426cSMatt Spinler                "property": { "name": "Functional" }
4803420426cSMatt Spinler            },
4813420426cSMatt Spinler            {
4823420426cSMatt Spinler                "name": "nvme temps",
4833420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4843420426cSMatt Spinler                "property": { "name": "Functional" }
4853420426cSMatt Spinler            },
4863420426cSMatt Spinler            {
4873420426cSMatt Spinler                "name": "planar temps",
4883420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4893420426cSMatt Spinler                "property": { "name": "Functional" }
4903420426cSMatt Spinler            },
4913420426cSMatt Spinler            {
4923420426cSMatt Spinler                "name": "flett temps",
4933420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4943420426cSMatt Spinler                "property": { "name": "Functional" }
4953420426cSMatt Spinler            },
4963420426cSMatt Spinler            {
4973420426cSMatt Spinler                "name": "pcie cable card temps",
4983420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
4993420426cSMatt Spinler                "property": { "name": "Functional" }
5003420426cSMatt Spinler            },
5013420426cSMatt Spinler            {
5023420426cSMatt Spinler                "name": "ambient temp",
5033420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
5043420426cSMatt Spinler                "property": { "name": "Functional" }
5053420426cSMatt Spinler            },
5063420426cSMatt Spinler            {
5073420426cSMatt Spinler                "name": "altitude",
5083420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
5093420426cSMatt Spinler                "property": { "name": "Functional" }
5103420426cSMatt Spinler            }
5113420426cSMatt Spinler        ],
5123420426cSMatt Spinler        "triggers": [
5133420426cSMatt Spinler            {
5143420426cSMatt Spinler                "class": "signal",
5153420426cSMatt Spinler                "signal": "properties_changed"
5163420426cSMatt Spinler            },
5173420426cSMatt Spinler            {
5183420426cSMatt Spinler                "class": "signal",
5193420426cSMatt Spinler                "signal": "interfaces_added"
5203420426cSMatt Spinler            },
5213420426cSMatt Spinler            {
5223420426cSMatt Spinler                "class": "signal",
5233420426cSMatt Spinler                "signal": "interfaces_removed"
5243420426cSMatt Spinler            },
5253420426cSMatt Spinler            {
5263420426cSMatt Spinler                "class": "init",
5273420426cSMatt Spinler                "method": "get_properties"
5283420426cSMatt Spinler            }
5293420426cSMatt Spinler        ],
5303420426cSMatt Spinler        "actions": [
5313420426cSMatt Spinler            {
5323420426cSMatt Spinler                "name": "count_state_floor",
5333420426cSMatt Spinler                "count": 1,
5343420426cSMatt Spinler                "state": false,
535*a8c1cf50SMatt Spinler                "delay": 5,
5363420426cSMatt Spinler                "floor": 18000
5373420426cSMatt Spinler            }
5383420426cSMatt Spinler        ]
5393420426cSMatt Spinler    },
5403420426cSMatt Spinler    {
5413420426cSMatt Spinler        "name": "Set Proc 0 Core DVFS parameter",
5423420426cSMatt Spinler        "groups": [
5433420426cSMatt Spinler            {
5443420426cSMatt Spinler                "name": "proc 0 core dvfs temp",
5453420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
5463420426cSMatt Spinler                "property": { "name": "Value" }
5473420426cSMatt Spinler            }
5483420426cSMatt Spinler        ],
5493420426cSMatt Spinler        "triggers": [
5503420426cSMatt Spinler            {
5513420426cSMatt Spinler                "class": "init",
5523420426cSMatt Spinler                "method": "get_properties"
5533420426cSMatt Spinler            },
5543420426cSMatt Spinler            {
5553420426cSMatt Spinler                "class": "signal",
5563420426cSMatt Spinler                "signal": "interfaces_added"
5573420426cSMatt Spinler            },
5583420426cSMatt Spinler            {
5593420426cSMatt Spinler                "class": "signal",
5603420426cSMatt Spinler                "signal": "properties_changed"
5613420426cSMatt Spinler            }
5623420426cSMatt Spinler        ],
5633420426cSMatt Spinler        "actions": [
5643420426cSMatt Spinler            {
5653420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5663420426cSMatt Spinler                "parameter_name": "proc_0_core_dvfs_increase_temp",
5673420426cSMatt Spinler                "modifier": {
5683420426cSMatt Spinler                    "operator": "minus",
5693420426cSMatt Spinler                    "value": 10
5703420426cSMatt Spinler                }
5713420426cSMatt Spinler            },
5723420426cSMatt Spinler            {
5733420426cSMatt Spinler                "name": "set_parameter_from_group_max",
5743420426cSMatt Spinler                "parameter_name": "proc_0_core_dvfs_decrease_temp",
5753420426cSMatt Spinler                "modifier": {
5763420426cSMatt Spinler                    "operator": "minus",
5773420426cSMatt Spinler                    "value": 13
5783420426cSMatt Spinler                }
5793420426cSMatt Spinler            }
5803420426cSMatt Spinler        ]
5813420426cSMatt Spinler    },
5823420426cSMatt Spinler    {
5833420426cSMatt Spinler        "name": "Set Proc 1 Core DVFS parameter",
5843420426cSMatt Spinler        "groups": [
5853420426cSMatt Spinler            {
5863420426cSMatt Spinler                "name": "proc 1 core dvfs temp",
5873420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
5883420426cSMatt Spinler                "property": { "name": "Value" }
5893420426cSMatt Spinler            }
5903420426cSMatt Spinler        ],
5913420426cSMatt Spinler        "triggers": [
5923420426cSMatt Spinler            {
5933420426cSMatt Spinler                "class": "init",
5943420426cSMatt Spinler                "method": "get_properties"
5953420426cSMatt Spinler            },
5963420426cSMatt Spinler            {
5973420426cSMatt Spinler                "class": "signal",
5983420426cSMatt Spinler                "signal": "interfaces_added"
5993420426cSMatt Spinler            },
6003420426cSMatt Spinler            {
6013420426cSMatt Spinler                "class": "signal",
6023420426cSMatt Spinler                "signal": "properties_changed"
6033420426cSMatt Spinler            }
6043420426cSMatt Spinler        ],
6053420426cSMatt Spinler        "actions": [
6063420426cSMatt Spinler            {
6073420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6083420426cSMatt Spinler                "parameter_name": "proc_1_core_dvfs_increase_temp",
6093420426cSMatt Spinler                "modifier": {
6103420426cSMatt Spinler                    "operator": "minus",
6113420426cSMatt Spinler                    "value": 10
6123420426cSMatt Spinler                }
6133420426cSMatt Spinler            },
6143420426cSMatt Spinler            {
6153420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6163420426cSMatt Spinler                "parameter_name": "proc_1_core_dvfs_decrease_temp",
6173420426cSMatt Spinler                "modifier": {
6183420426cSMatt Spinler                    "operator": "minus",
6193420426cSMatt Spinler                    "value": 13
6203420426cSMatt Spinler                }
6213420426cSMatt Spinler            }
6223420426cSMatt Spinler        ]
6233420426cSMatt Spinler    },
6243420426cSMatt Spinler    {
6253420426cSMatt Spinler        "name": "Set Proc 2 Core DVFS parameter",
6263420426cSMatt Spinler        "groups": [
6273420426cSMatt Spinler            {
6283420426cSMatt Spinler                "name": "proc 2 core dvfs temp",
6293420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
6303420426cSMatt Spinler                "property": { "name": "Value" }
6313420426cSMatt Spinler            }
6323420426cSMatt Spinler        ],
6333420426cSMatt Spinler        "triggers": [
6343420426cSMatt Spinler            {
6353420426cSMatt Spinler                "class": "init",
6363420426cSMatt Spinler                "method": "get_properties"
6373420426cSMatt Spinler            },
6383420426cSMatt Spinler            {
6393420426cSMatt Spinler                "class": "signal",
6403420426cSMatt Spinler                "signal": "interfaces_added"
6413420426cSMatt Spinler            },
6423420426cSMatt Spinler            {
6433420426cSMatt Spinler                "class": "signal",
6443420426cSMatt Spinler                "signal": "properties_changed"
6453420426cSMatt Spinler            }
6463420426cSMatt Spinler        ],
6473420426cSMatt Spinler        "actions": [
6483420426cSMatt Spinler            {
6493420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6503420426cSMatt Spinler                "parameter_name": "proc_2_core_dvfs_increase_temp",
6513420426cSMatt Spinler                "modifier": {
6523420426cSMatt Spinler                    "operator": "minus",
6533420426cSMatt Spinler                    "value": 10
6543420426cSMatt Spinler                }
6553420426cSMatt Spinler            },
6563420426cSMatt Spinler            {
6573420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6583420426cSMatt Spinler                "parameter_name": "proc_2_core_dvfs_decrease_temp",
6593420426cSMatt Spinler                "modifier": {
6603420426cSMatt Spinler                    "operator": "minus",
6613420426cSMatt Spinler                    "value": 13
6623420426cSMatt Spinler                }
6633420426cSMatt Spinler            }
6643420426cSMatt Spinler        ]
6653420426cSMatt Spinler    },
6663420426cSMatt Spinler    {
6673420426cSMatt Spinler        "name": "Set Proc 3 Core DVFS parameter",
6683420426cSMatt Spinler        "groups": [
6693420426cSMatt Spinler            {
6703420426cSMatt Spinler                "name": "proc 3 core dvfs temp",
6713420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
6723420426cSMatt Spinler                "property": { "name": "Value" }
6733420426cSMatt Spinler            }
6743420426cSMatt Spinler        ],
6753420426cSMatt Spinler        "triggers": [
6763420426cSMatt Spinler            {
6773420426cSMatt Spinler                "class": "init",
6783420426cSMatt Spinler                "method": "get_properties"
6793420426cSMatt Spinler            },
6803420426cSMatt Spinler            {
6813420426cSMatt Spinler                "class": "signal",
6823420426cSMatt Spinler                "signal": "interfaces_added"
6833420426cSMatt Spinler            },
6843420426cSMatt Spinler            {
6853420426cSMatt Spinler                "class": "signal",
6863420426cSMatt Spinler                "signal": "properties_changed"
6873420426cSMatt Spinler            }
6883420426cSMatt Spinler        ],
6893420426cSMatt Spinler        "actions": [
6903420426cSMatt Spinler            {
6913420426cSMatt Spinler                "name": "set_parameter_from_group_max",
6923420426cSMatt Spinler                "parameter_name": "proc_3_core_dvfs_increase_temp",
6933420426cSMatt Spinler                "modifier": {
6943420426cSMatt Spinler                    "operator": "minus",
6953420426cSMatt Spinler                    "value": 10
6963420426cSMatt Spinler                }
6973420426cSMatt Spinler            },
6983420426cSMatt Spinler            {
6993420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7003420426cSMatt Spinler                "parameter_name": "proc_3_core_dvfs_decrease_temp",
7013420426cSMatt Spinler                "modifier": {
7023420426cSMatt Spinler                    "operator": "minus",
7033420426cSMatt Spinler                    "value": 13
7043420426cSMatt Spinler                }
7053420426cSMatt Spinler            }
7063420426cSMatt Spinler        ]
7073420426cSMatt Spinler    },
7083420426cSMatt Spinler    {
7093420426cSMatt Spinler        "name": "Set Proc 0 IO Ring DVFS parameter",
7103420426cSMatt Spinler        "groups": [
7113420426cSMatt Spinler            {
7123420426cSMatt Spinler                "name": "proc 0 ioring dvfs temp",
7133420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7143420426cSMatt Spinler                "property": { "name": "Value" }
7153420426cSMatt Spinler            }
7163420426cSMatt Spinler        ],
7173420426cSMatt Spinler        "triggers": [
7183420426cSMatt Spinler            {
7193420426cSMatt Spinler                "class": "init",
7203420426cSMatt Spinler                "method": "get_properties"
7213420426cSMatt Spinler            },
7223420426cSMatt Spinler            {
7233420426cSMatt Spinler                "class": "signal",
7243420426cSMatt Spinler                "signal": "interfaces_added"
7253420426cSMatt Spinler            },
7263420426cSMatt Spinler            {
7273420426cSMatt Spinler                "class": "signal",
7283420426cSMatt Spinler                "signal": "properties_changed"
7293420426cSMatt Spinler            }
7303420426cSMatt Spinler        ],
7313420426cSMatt Spinler        "actions": [
7323420426cSMatt Spinler            {
7333420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7343420426cSMatt Spinler                "parameter_name": "proc_0_ioring_dvfs_increase_temp",
7353420426cSMatt Spinler                "modifier": {
7363420426cSMatt Spinler                    "operator": "minus",
7373420426cSMatt Spinler                    "value": 10
7383420426cSMatt Spinler                }
7393420426cSMatt Spinler            },
7403420426cSMatt Spinler            {
7413420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7423420426cSMatt Spinler                "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
7433420426cSMatt Spinler                "modifier": {
7443420426cSMatt Spinler                    "operator": "minus",
7453420426cSMatt Spinler                    "value": 13
7463420426cSMatt Spinler                }
7473420426cSMatt Spinler            }
7483420426cSMatt Spinler        ]
7493420426cSMatt Spinler    },
7503420426cSMatt Spinler    {
7513420426cSMatt Spinler        "name": "Set Proc 1 IO Ring DVFS parameter",
7523420426cSMatt Spinler        "groups": [
7533420426cSMatt Spinler            {
7543420426cSMatt Spinler                "name": "proc 1 ioring dvfs temp",
7553420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7563420426cSMatt Spinler                "property": { "name": "Value" }
7573420426cSMatt Spinler            }
7583420426cSMatt Spinler        ],
7593420426cSMatt Spinler        "triggers": [
7603420426cSMatt Spinler            {
7613420426cSMatt Spinler                "class": "init",
7623420426cSMatt Spinler                "method": "get_properties"
7633420426cSMatt Spinler            },
7643420426cSMatt Spinler            {
7653420426cSMatt Spinler                "class": "signal",
7663420426cSMatt Spinler                "signal": "interfaces_added"
7673420426cSMatt Spinler            },
7683420426cSMatt Spinler            {
7693420426cSMatt Spinler                "class": "signal",
7703420426cSMatt Spinler                "signal": "properties_changed"
7713420426cSMatt Spinler            }
7723420426cSMatt Spinler        ],
7733420426cSMatt Spinler        "actions": [
7743420426cSMatt Spinler            {
7753420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7763420426cSMatt Spinler                "parameter_name": "proc_1_ioring_dvfs_increase_temp",
7773420426cSMatt Spinler                "modifier": {
7783420426cSMatt Spinler                    "operator": "minus",
7793420426cSMatt Spinler                    "value": 10
7803420426cSMatt Spinler                }
7813420426cSMatt Spinler            },
7823420426cSMatt Spinler            {
7833420426cSMatt Spinler                "name": "set_parameter_from_group_max",
7843420426cSMatt Spinler                "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
7853420426cSMatt Spinler                "modifier": {
7863420426cSMatt Spinler                    "operator": "minus",
7873420426cSMatt Spinler                    "value": 13
7883420426cSMatt Spinler                }
7893420426cSMatt Spinler            }
7903420426cSMatt Spinler        ]
7913420426cSMatt Spinler    },
7923420426cSMatt Spinler    {
7933420426cSMatt Spinler        "name": "Set Proc 2 IO Ring DVFS parameter",
7943420426cSMatt Spinler        "groups": [
7953420426cSMatt Spinler            {
7963420426cSMatt Spinler                "name": "proc 2 ioring dvfs temp",
7973420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
7983420426cSMatt Spinler                "property": { "name": "Value" }
7993420426cSMatt Spinler            }
8003420426cSMatt Spinler        ],
8013420426cSMatt Spinler        "triggers": [
8023420426cSMatt Spinler            {
8033420426cSMatt Spinler                "class": "init",
8043420426cSMatt Spinler                "method": "get_properties"
8053420426cSMatt Spinler            },
8063420426cSMatt Spinler            {
8073420426cSMatt Spinler                "class": "signal",
8083420426cSMatt Spinler                "signal": "interfaces_added"
8093420426cSMatt Spinler            },
8103420426cSMatt Spinler            {
8113420426cSMatt Spinler                "class": "signal",
8123420426cSMatt Spinler                "signal": "properties_changed"
8133420426cSMatt Spinler            }
8143420426cSMatt Spinler        ],
8153420426cSMatt Spinler        "actions": [
8163420426cSMatt Spinler            {
8173420426cSMatt Spinler                "name": "set_parameter_from_group_max",
8183420426cSMatt Spinler                "parameter_name": "proc_2_ioring_dvfs_increase_temp",
8193420426cSMatt Spinler                "modifier": {
8203420426cSMatt Spinler                    "operator": "minus",
8213420426cSMatt Spinler                    "value": 10
8223420426cSMatt Spinler                }
8233420426cSMatt Spinler            },
8243420426cSMatt Spinler            {
8253420426cSMatt Spinler                "name": "set_parameter_from_group_max",
8263420426cSMatt Spinler                "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
8273420426cSMatt Spinler                "modifier": {
8283420426cSMatt Spinler                    "operator": "minus",
8293420426cSMatt Spinler                    "value": 13
8303420426cSMatt Spinler                }
8313420426cSMatt Spinler            }
8323420426cSMatt Spinler        ]
8333420426cSMatt Spinler    },
8343420426cSMatt Spinler    {
8353420426cSMatt Spinler        "name": "Set Proc 3 IO Ring DVFS parameter",
8363420426cSMatt Spinler        "groups": [
8373420426cSMatt Spinler            {
8383420426cSMatt Spinler                "name": "proc 3 ioring dvfs temp",
8393420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
8403420426cSMatt Spinler                "property": { "name": "Value" }
8413420426cSMatt Spinler            }
8423420426cSMatt Spinler        ],
8433420426cSMatt Spinler        "triggers": [
8443420426cSMatt Spinler            {
8453420426cSMatt Spinler                "class": "init",
8463420426cSMatt Spinler                "method": "get_properties"
8473420426cSMatt Spinler            },
8483420426cSMatt Spinler            {
8493420426cSMatt Spinler                "class": "signal",
8503420426cSMatt Spinler                "signal": "properties_changed"
8513420426cSMatt Spinler            },
8523420426cSMatt Spinler            {
8533420426cSMatt Spinler                "class": "signal",
8543420426cSMatt Spinler                "signal": "interfaces_added"
8553420426cSMatt Spinler            }
8563420426cSMatt Spinler        ],
8573420426cSMatt Spinler        "actions": [
8583420426cSMatt Spinler            {
8593420426cSMatt Spinler                "name": "set_parameter_from_group_max",
8603420426cSMatt Spinler                "parameter_name": "proc_3_ioring_dvfs_increase_temp",
8613420426cSMatt Spinler                "modifier": {
8623420426cSMatt Spinler                    "operator": "minus",
8633420426cSMatt Spinler                    "value": 10
8643420426cSMatt Spinler                }
8653420426cSMatt Spinler            },
8663420426cSMatt Spinler            {
8673420426cSMatt Spinler                "name": "set_parameter_from_group_max",
8683420426cSMatt Spinler                "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
8693420426cSMatt Spinler                "modifier": {
8703420426cSMatt Spinler                    "operator": "minus",
8713420426cSMatt Spinler                    "value": 13
8723420426cSMatt Spinler                }
8733420426cSMatt Spinler            }
8743420426cSMatt Spinler        ]
8753420426cSMatt Spinler    },
8763420426cSMatt Spinler    {
8773420426cSMatt Spinler        "name": "Set DRAM DVFS parameter",
8783420426cSMatt Spinler        "groups": [
8793420426cSMatt Spinler            {
8803420426cSMatt Spinler                "name": "dram dvfs temp",
8813420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
8823420426cSMatt Spinler                "property": { "name": "Value" }
8833420426cSMatt Spinler            }
8843420426cSMatt Spinler        ],
8853420426cSMatt Spinler        "triggers": [
8863420426cSMatt Spinler            {
8873420426cSMatt Spinler                "class": "init",
8883420426cSMatt Spinler                "method": "get_properties"
8893420426cSMatt Spinler            },
8903420426cSMatt Spinler            {
8913420426cSMatt Spinler                "class": "signal",
8923420426cSMatt Spinler                "signal": "properties_changed"
8933420426cSMatt Spinler            },
8943420426cSMatt Spinler            {
8953420426cSMatt Spinler                "class": "signal",
8963420426cSMatt Spinler                "signal": "interfaces_added"
8973420426cSMatt Spinler            }
8983420426cSMatt Spinler        ],
8993420426cSMatt Spinler        "actions": [
9003420426cSMatt Spinler            {
9013420426cSMatt Spinler                "name": "set_parameter_from_group_max",
9023420426cSMatt Spinler                "parameter_name": "dram_dvfs_increase_temp",
9033420426cSMatt Spinler                "modifier": {
9043420426cSMatt Spinler                    "operator": "minus",
9053420426cSMatt Spinler                    "value": 9
9063420426cSMatt Spinler                }
9073420426cSMatt Spinler            },
9083420426cSMatt Spinler            {
9093420426cSMatt Spinler                "name": "set_parameter_from_group_max",
9103420426cSMatt Spinler                "parameter_name": "dram_dvfs_decrease_temp",
9113420426cSMatt Spinler                "modifier": {
9123420426cSMatt Spinler                    "operator": "minus",
9133420426cSMatt Spinler                    "value": 12
9143420426cSMatt Spinler                }
9153420426cSMatt Spinler            }
9163420426cSMatt Spinler        ]
9173420426cSMatt Spinler    },
9183420426cSMatt Spinler    {
9193420426cSMatt Spinler        "name": "Set PMIC DVFS parameter",
9203420426cSMatt Spinler        "groups": [
9213420426cSMatt Spinler            {
9223420426cSMatt Spinler                "name": "pmic dvfs temp",
9233420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
9243420426cSMatt Spinler                "property": { "name": "Value" }
9253420426cSMatt Spinler            }
9263420426cSMatt Spinler        ],
9273420426cSMatt Spinler        "triggers": [
9283420426cSMatt Spinler            {
9293420426cSMatt Spinler                "class": "init",
9303420426cSMatt Spinler                "method": "get_properties"
9313420426cSMatt Spinler            },
9323420426cSMatt Spinler            {
9333420426cSMatt Spinler                "class": "signal",
9343420426cSMatt Spinler                "signal": "properties_changed"
9353420426cSMatt Spinler            },
9363420426cSMatt Spinler            {
9373420426cSMatt Spinler                "class": "signal",
9383420426cSMatt Spinler                "signal": "interfaces_added"
9393420426cSMatt Spinler            }
9403420426cSMatt Spinler        ],
9413420426cSMatt Spinler        "actions": [
9423420426cSMatt Spinler            {
9433420426cSMatt Spinler                "name": "set_parameter_from_group_max",
9443420426cSMatt Spinler                "parameter_name": "pmic_dvfs_increase_temp",
9453420426cSMatt Spinler                "modifier": {
9463420426cSMatt Spinler                    "operator": "minus",
9473420426cSMatt Spinler                    "value": 9
9483420426cSMatt Spinler                }
9493420426cSMatt Spinler            },
9503420426cSMatt Spinler            {
9513420426cSMatt Spinler                "name": "set_parameter_from_group_max",
9523420426cSMatt Spinler                "parameter_name": "pmic_dvfs_decrease_temp",
9533420426cSMatt Spinler                "modifier": {
9543420426cSMatt Spinler                    "operator": "minus",
9553420426cSMatt Spinler                    "value": 12
9563420426cSMatt Spinler                }
9573420426cSMatt Spinler            }
9583420426cSMatt Spinler        ]
9593420426cSMatt Spinler    },
9603420426cSMatt Spinler    {
9613420426cSMatt Spinler        "name": "Set internal memory buffer DVFS parameter",
9623420426cSMatt Spinler        "groups": [
9633420426cSMatt Spinler            {
9643420426cSMatt Spinler                "name": "internal memory buffer dvfs temp",
9653420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
9663420426cSMatt Spinler                "property": { "name": "Value" }
9673420426cSMatt Spinler            }
9683420426cSMatt Spinler        ],
9693420426cSMatt Spinler        "triggers": [
9703420426cSMatt Spinler            {
9713420426cSMatt Spinler                "class": "init",
9723420426cSMatt Spinler                "method": "get_properties"
9733420426cSMatt Spinler            },
9743420426cSMatt Spinler            {
9753420426cSMatt Spinler                "class": "signal",
9763420426cSMatt Spinler                "signal": "properties_changed"
9773420426cSMatt Spinler            },
9783420426cSMatt Spinler            {
9793420426cSMatt Spinler                "class": "signal",
9803420426cSMatt Spinler                "signal": "interfaces_added"
9813420426cSMatt Spinler            }
9823420426cSMatt Spinler        ],
9833420426cSMatt Spinler        "actions": [
9843420426cSMatt Spinler            {
9853420426cSMatt Spinler                "name": "set_parameter_from_group_max",
9863420426cSMatt Spinler                "parameter_name": "intmb_dvfs_increase_temp",
9873420426cSMatt Spinler                "modifier": {
9883420426cSMatt Spinler                    "operator": "minus",
9893420426cSMatt Spinler                    "value": 10
9903420426cSMatt Spinler                }
9913420426cSMatt Spinler            },
9923420426cSMatt Spinler            {
9933420426cSMatt Spinler                "name": "set_parameter_from_group_max",
9943420426cSMatt Spinler                "parameter_name": "intmb_dvfs_decrease_temp",
9953420426cSMatt Spinler                "modifier": {
9963420426cSMatt Spinler                    "operator": "minus",
9973420426cSMatt Spinler                    "value": 13
9983420426cSMatt Spinler                }
9993420426cSMatt Spinler            }
10003420426cSMatt Spinler        ]
10013420426cSMatt Spinler    },
10023420426cSMatt Spinler    {
10033420426cSMatt Spinler        "name": "Set DRAM and external memory buffer DVFS parameter",
10043420426cSMatt Spinler        "groups": [
10053420426cSMatt Spinler            {
10063420426cSMatt Spinler                "name": "dram and external memory buffer dvfs temp",
10073420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
10083420426cSMatt Spinler                "property": { "name": "Value" }
10093420426cSMatt Spinler            }
10103420426cSMatt Spinler        ],
10113420426cSMatt Spinler        "triggers": [
10123420426cSMatt Spinler            {
10133420426cSMatt Spinler                "class": "init",
10143420426cSMatt Spinler                "method": "get_properties"
10153420426cSMatt Spinler            },
10163420426cSMatt Spinler            {
10173420426cSMatt Spinler                "class": "signal",
10183420426cSMatt Spinler                "signal": "properties_changed"
10193420426cSMatt Spinler            },
10203420426cSMatt Spinler            {
10213420426cSMatt Spinler                "class": "signal",
10223420426cSMatt Spinler                "signal": "interfaces_added"
10233420426cSMatt Spinler            }
10243420426cSMatt Spinler        ],
10253420426cSMatt Spinler        "actions": [
10263420426cSMatt Spinler            {
10273420426cSMatt Spinler                "name": "set_parameter_from_group_max",
10283420426cSMatt Spinler                "parameter_name": "dram_extmb_dvfs_increase_temp",
10293420426cSMatt Spinler                "modifier": {
10303420426cSMatt Spinler                    "operator": "minus",
10313420426cSMatt Spinler                    "value": 10
10323420426cSMatt Spinler                }
10333420426cSMatt Spinler            },
10343420426cSMatt Spinler            {
10353420426cSMatt Spinler                "name": "set_parameter_from_group_max",
10363420426cSMatt Spinler                "parameter_name": "dram_extmb_dvfs_decrease_temp",
10373420426cSMatt Spinler                "modifier": {
10383420426cSMatt Spinler                    "operator": "minus",
10393420426cSMatt Spinler                    "value": 13
10403420426cSMatt Spinler                }
10413420426cSMatt Spinler            }
10423420426cSMatt Spinler        ]
10433420426cSMatt Spinler    },
10443420426cSMatt Spinler    {
10453420426cSMatt Spinler        "name": "Set external memory buffer DVFS parameter",
10463420426cSMatt Spinler        "groups": [
10473420426cSMatt Spinler            {
10483420426cSMatt Spinler                "name": "external memory buffer dvfs temp",
10493420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
10503420426cSMatt Spinler                "property": { "name": "Value" }
10513420426cSMatt Spinler            }
10523420426cSMatt Spinler        ],
10533420426cSMatt Spinler        "triggers": [
10543420426cSMatt Spinler            {
10553420426cSMatt Spinler                "class": "init",
10563420426cSMatt Spinler                "method": "get_properties"
10573420426cSMatt Spinler            },
10583420426cSMatt Spinler            {
10593420426cSMatt Spinler                "class": "signal",
10603420426cSMatt Spinler                "signal": "properties_changed"
10613420426cSMatt Spinler            },
10623420426cSMatt Spinler            {
10633420426cSMatt Spinler                "class": "signal",
10643420426cSMatt Spinler                "signal": "interfaces_added"
10653420426cSMatt Spinler            }
10663420426cSMatt Spinler        ],
10673420426cSMatt Spinler        "actions": [
10683420426cSMatt Spinler            {
10693420426cSMatt Spinler                "name": "set_parameter_from_group_max",
10703420426cSMatt Spinler                "parameter_name": "extmb_dvfs_increase_temp",
10713420426cSMatt Spinler                "modifier": {
10723420426cSMatt Spinler                    "operator": "minus",
10733420426cSMatt Spinler                    "value": 10
10743420426cSMatt Spinler                }
10753420426cSMatt Spinler            },
10763420426cSMatt Spinler            {
10773420426cSMatt Spinler                "name": "set_parameter_from_group_max",
10783420426cSMatt Spinler                "parameter_name": "extmb_dvfs_decrease_temp",
10793420426cSMatt Spinler                "modifier": {
10803420426cSMatt Spinler                    "operator": "minus",
10813420426cSMatt Spinler                    "value": 13
10823420426cSMatt Spinler                }
10833420426cSMatt Spinler            }
10843420426cSMatt Spinler        ]
10853420426cSMatt Spinler    },
10863420426cSMatt Spinler    {
10873420426cSMatt Spinler        // Collect group temperatures each iteration the repeating timer expires
10883420426cSMatt Spinler        "name": "Fan control timer loop",
10893420426cSMatt Spinler        "groups": [
10903420426cSMatt Spinler            {
10913420426cSMatt Spinler                "name": "proc0 core temps",
10923420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
10933420426cSMatt Spinler                "property": { "name": "Value" }
10943420426cSMatt Spinler            },
10953420426cSMatt Spinler            {
10963420426cSMatt Spinler                "name": "proc1 core temps",
10973420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
10983420426cSMatt Spinler                "property": { "name": "Value" }
10993420426cSMatt Spinler            },
11003420426cSMatt Spinler            {
11013420426cSMatt Spinler                "name": "proc2 core temps",
11023420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11033420426cSMatt Spinler                "property": { "name": "Value" }
11043420426cSMatt Spinler            },
11053420426cSMatt Spinler            {
11063420426cSMatt Spinler                "name": "proc3 core temps",
11073420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11083420426cSMatt Spinler                "property": { "name": "Value" }
11093420426cSMatt Spinler            },
11103420426cSMatt Spinler            {
11113420426cSMatt Spinler                "name": "proc0 ioring temp",
11123420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11133420426cSMatt Spinler                "property": { "name": "Value" }
11143420426cSMatt Spinler            },
11153420426cSMatt Spinler            {
11163420426cSMatt Spinler                "name": "proc1 ioring temp",
11173420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11183420426cSMatt Spinler                "property": { "name": "Value" }
11193420426cSMatt Spinler            },
11203420426cSMatt Spinler            {
11213420426cSMatt Spinler                "name": "proc2 ioring temp",
11223420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11233420426cSMatt Spinler                "property": { "name": "Value" }
11243420426cSMatt Spinler            },
11253420426cSMatt Spinler            {
11263420426cSMatt Spinler                "name": "proc3 ioring temp",
11273420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11283420426cSMatt Spinler                "property": { "name": "Value" }
11293420426cSMatt Spinler            },
11303420426cSMatt Spinler            {
11313420426cSMatt Spinler                "name": "dram temps",
11323420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11333420426cSMatt Spinler                "property": { "name": "Value" }
11343420426cSMatt Spinler            },
11353420426cSMatt Spinler            {
11363420426cSMatt Spinler                "name": "pmic temps",
11373420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11383420426cSMatt Spinler                "property": { "name": "Value" }
11393420426cSMatt Spinler            },
11403420426cSMatt Spinler            {
11413420426cSMatt Spinler                "name": "internal memory buffer temps",
11423420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11433420426cSMatt Spinler                "property": { "name": "Value" }
11443420426cSMatt Spinler            },
11453420426cSMatt Spinler            {
11463420426cSMatt Spinler                "name": "dram and external memory buffer temps",
11473420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11483420426cSMatt Spinler                "property": { "name": "Value" }
11493420426cSMatt Spinler            },
11503420426cSMatt Spinler            {
11513420426cSMatt Spinler                "name": "external memory buffer temps",
11523420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11533420426cSMatt Spinler                "property": { "name": "Value" }
11543420426cSMatt Spinler            },
11553420426cSMatt Spinler            {
11563420426cSMatt Spinler                "name": "vdd vrm temps",
11573420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11583420426cSMatt Spinler                "property": { "name": "Value" }
11593420426cSMatt Spinler            },
11603420426cSMatt Spinler            {
11613420426cSMatt Spinler                "name": "nvme temps",
11623420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11633420426cSMatt Spinler                "property": { "name": "Value" }
11643420426cSMatt Spinler            },
11653420426cSMatt Spinler            {
11663420426cSMatt Spinler                "name": "planar temps",
11673420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11683420426cSMatt Spinler                "property": { "name": "Value" }
11693420426cSMatt Spinler            },
11703420426cSMatt Spinler            {
11713420426cSMatt Spinler                "name": "flett temps",
11723420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11733420426cSMatt Spinler                "property": { "name": "Value" }
11743420426cSMatt Spinler            },
11753420426cSMatt Spinler            {
11763420426cSMatt Spinler                "name": "pcie cable card temps",
11773420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
11783420426cSMatt Spinler                "property": { "name": "Value" }
11793420426cSMatt Spinler            }
11803420426cSMatt Spinler        ],
11813420426cSMatt Spinler        "triggers": [
11823420426cSMatt Spinler            {
11833420426cSMatt Spinler                "class": "timer",
11843420426cSMatt Spinler                "type": "repeating",
11853420426cSMatt Spinler                "interval": 2000000,
11863420426cSMatt Spinler                "preload_groups": true
11873420426cSMatt Spinler            }
11883420426cSMatt Spinler        ],
11893420426cSMatt Spinler        "actions": [
11903420426cSMatt Spinler            {
11913420426cSMatt Spinler                "name": "set_net_increase_target",
11923420426cSMatt Spinler                "groups": [
11933420426cSMatt Spinler                    {
11943420426cSMatt Spinler                        "name": "proc0 core temps",
11953420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
11963420426cSMatt Spinler                        "property": { "name": "Value" }
11973420426cSMatt Spinler                    }
11983420426cSMatt Spinler                ],
11993420426cSMatt Spinler                "state_parameter_name": "proc_0_core_dvfs_increase_temp",
12003420426cSMatt Spinler                "delta": 300
12013420426cSMatt Spinler            },
12023420426cSMatt Spinler            {
12033420426cSMatt Spinler                "name": "set_net_increase_target",
12043420426cSMatt Spinler                "groups": [
12053420426cSMatt Spinler                    {
12063420426cSMatt Spinler                        "name": "proc1 core temps",
12073420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12083420426cSMatt Spinler                        "property": { "name": "Value" }
12093420426cSMatt Spinler                    }
12103420426cSMatt Spinler                ],
12113420426cSMatt Spinler                "state_parameter_name": "proc_1_core_dvfs_increase_temp",
12123420426cSMatt Spinler                "delta": 300
12133420426cSMatt Spinler            },
12143420426cSMatt Spinler            {
12153420426cSMatt Spinler                "name": "set_net_increase_target",
12163420426cSMatt Spinler                "groups": [
12173420426cSMatt Spinler                    {
12183420426cSMatt Spinler                        "name": "proc2 core temps",
12193420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12203420426cSMatt Spinler                        "property": { "name": "Value" }
12213420426cSMatt Spinler                    }
12223420426cSMatt Spinler                ],
12233420426cSMatt Spinler                "state_parameter_name": "proc_2_core_dvfs_increase_temp",
12243420426cSMatt Spinler                "delta": 300
12253420426cSMatt Spinler            },
12263420426cSMatt Spinler            {
12273420426cSMatt Spinler                "name": "set_net_increase_target",
12283420426cSMatt Spinler                "groups": [
12293420426cSMatt Spinler                    {
12303420426cSMatt Spinler                        "name": "proc3 core temps",
12313420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12323420426cSMatt Spinler                        "property": { "name": "Value" }
12333420426cSMatt Spinler                    }
12343420426cSMatt Spinler                ],
12353420426cSMatt Spinler                "state_parameter_name": "proc_3_core_dvfs_increase_temp",
12363420426cSMatt Spinler                "delta": 300
12373420426cSMatt Spinler            },
12383420426cSMatt Spinler            {
12393420426cSMatt Spinler                "name": "set_net_increase_target",
12403420426cSMatt Spinler                "groups": [
12413420426cSMatt Spinler                    {
12423420426cSMatt Spinler                        "name": "proc0 ioring temp",
12433420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12443420426cSMatt Spinler                        "property": { "name": "Value" }
12453420426cSMatt Spinler                    }
12463420426cSMatt Spinler                ],
12473420426cSMatt Spinler                "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
12483420426cSMatt Spinler                "delta": 300
12493420426cSMatt Spinler            },
12503420426cSMatt Spinler            {
12513420426cSMatt Spinler                "name": "set_net_increase_target",
12523420426cSMatt Spinler                "groups": [
12533420426cSMatt Spinler                    {
12543420426cSMatt Spinler                        "name": "proc1 ioring temp",
12553420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12563420426cSMatt Spinler                        "property": { "name": "Value" }
12573420426cSMatt Spinler                    }
12583420426cSMatt Spinler                ],
12593420426cSMatt Spinler                "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
12603420426cSMatt Spinler                "delta": 300
12613420426cSMatt Spinler            },
12623420426cSMatt Spinler            {
12633420426cSMatt Spinler                "name": "set_net_increase_target",
12643420426cSMatt Spinler                "groups": [
12653420426cSMatt Spinler                    {
12663420426cSMatt Spinler                        "name": "proc2 ioring temp",
12673420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12683420426cSMatt Spinler                        "property": { "name": "Value" }
12693420426cSMatt Spinler                    }
12703420426cSMatt Spinler                ],
12713420426cSMatt Spinler                "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
12723420426cSMatt Spinler                "delta": 300
12733420426cSMatt Spinler            },
12743420426cSMatt Spinler            {
12753420426cSMatt Spinler                "name": "set_net_increase_target",
12763420426cSMatt Spinler                "groups": [
12773420426cSMatt Spinler                    {
12783420426cSMatt Spinler                        "name": "proc3 ioring temp",
12793420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12803420426cSMatt Spinler                        "property": { "name": "Value" }
12813420426cSMatt Spinler                    }
12823420426cSMatt Spinler                ],
12833420426cSMatt Spinler                "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
12843420426cSMatt Spinler                "delta": 300
12853420426cSMatt Spinler            },
12863420426cSMatt Spinler            {
12873420426cSMatt Spinler                "name": "set_net_increase_target",
12883420426cSMatt Spinler                "groups": [
12893420426cSMatt Spinler                    {
12903420426cSMatt Spinler                        "name": "dram temps",
12913420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
12923420426cSMatt Spinler                        "property": { "name": "Value" }
12933420426cSMatt Spinler                    }
12943420426cSMatt Spinler                ],
12953420426cSMatt Spinler                "state_parameter_name": "dram_dvfs_increase_temp",
12963420426cSMatt Spinler                "delta": 100
12973420426cSMatt Spinler            },
12983420426cSMatt Spinler            {
12993420426cSMatt Spinler                "name": "set_net_increase_target",
13003420426cSMatt Spinler                "groups": [
13013420426cSMatt Spinler                    {
13023420426cSMatt Spinler                        "name": "pmic temps",
13033420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13043420426cSMatt Spinler                        "property": { "name": "Value" }
13053420426cSMatt Spinler                    }
13063420426cSMatt Spinler                ],
13073420426cSMatt Spinler                "state_parameter_name": "pmic_dvfs_increase_temp",
13083420426cSMatt Spinler                "delta": 100
13093420426cSMatt Spinler            },
13103420426cSMatt Spinler            {
13113420426cSMatt Spinler                "name": "set_net_increase_target",
13123420426cSMatt Spinler                "groups": [
13133420426cSMatt Spinler                    {
13143420426cSMatt Spinler                        "name": "internal memory buffer temps",
13153420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13163420426cSMatt Spinler                        "property": { "name": "Value" }
13173420426cSMatt Spinler                    }
13183420426cSMatt Spinler                ],
13193420426cSMatt Spinler                "state_parameter_name": "intmb_dvfs_increase_temp",
13203420426cSMatt Spinler                "delta": 100
13213420426cSMatt Spinler            },
13223420426cSMatt Spinler            {
13233420426cSMatt Spinler                "name": "set_net_increase_target",
13243420426cSMatt Spinler                "groups": [
13253420426cSMatt Spinler                    {
13263420426cSMatt Spinler                        "name": "dram and external memory buffer temps",
13273420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13283420426cSMatt Spinler                        "property": { "name": "Value" }
13293420426cSMatt Spinler                    }
13303420426cSMatt Spinler                ],
13313420426cSMatt Spinler                "state_parameter_name": "dram_extmb_dvfs_increase_temp",
13323420426cSMatt Spinler                "delta": 200
13333420426cSMatt Spinler            },
13343420426cSMatt Spinler            {
13353420426cSMatt Spinler                "name": "set_net_increase_target",
13363420426cSMatt Spinler                "groups": [
13373420426cSMatt Spinler                    {
13383420426cSMatt Spinler                        "name": "external memory buffer temps",
13393420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13403420426cSMatt Spinler                        "property": { "name": "Value" }
13413420426cSMatt Spinler                    }
13423420426cSMatt Spinler                ],
13433420426cSMatt Spinler                "state_parameter_name": "extmb_dvfs_increase_temp",
13443420426cSMatt Spinler                "delta": 200
13453420426cSMatt Spinler            },
13463420426cSMatt Spinler            {
13473420426cSMatt Spinler                "name": "set_net_increase_target",
13483420426cSMatt Spinler                "groups": [
13493420426cSMatt Spinler                    {
13503420426cSMatt Spinler                        "name": "vdd vrm temps",
13513420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13523420426cSMatt Spinler                        "property": { "name": "Value" }
13533420426cSMatt Spinler                    }
13543420426cSMatt Spinler                ],
13553420426cSMatt Spinler                "state": 82.0,
13563420426cSMatt Spinler                "delta": 300
13573420426cSMatt Spinler            },
13583420426cSMatt Spinler            {
13593420426cSMatt Spinler                "name": "set_net_increase_target",
13603420426cSMatt Spinler                "groups": [
13613420426cSMatt Spinler                    {
13623420426cSMatt Spinler                        "name": "nvme temps",
13633420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13643420426cSMatt Spinler                        "property": { "name": "Value" }
13653420426cSMatt Spinler                    }
13663420426cSMatt Spinler                ],
13673420426cSMatt Spinler                "state": 58.0,
13683420426cSMatt Spinler                "delta": 200
13693420426cSMatt Spinler            },
13703420426cSMatt Spinler            {
13713420426cSMatt Spinler                "name": "set_net_increase_target",
13723420426cSMatt Spinler                "groups": [
13733420426cSMatt Spinler                    {
13743420426cSMatt Spinler                        "name": "planar temps",
13753420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13763420426cSMatt Spinler                        "property": { "name": "Value" }
13773420426cSMatt Spinler                    }
13783420426cSMatt Spinler                ],
13793420426cSMatt Spinler                "state": 65.0,
13803420426cSMatt Spinler                "delta": 255
13813420426cSMatt Spinler            },
13823420426cSMatt Spinler            {
13833420426cSMatt Spinler                "name": "set_net_increase_target",
13843420426cSMatt Spinler                "groups": [
13853420426cSMatt Spinler                    {
13863420426cSMatt Spinler                        "name": "flett temps",
13873420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
13883420426cSMatt Spinler                        "property": { "name": "Value" }
13893420426cSMatt Spinler                    }
13903420426cSMatt Spinler                ],
13913420426cSMatt Spinler                "state": 80.0,
13923420426cSMatt Spinler                "delta": 200
13933420426cSMatt Spinler            },
13943420426cSMatt Spinler            {
13953420426cSMatt Spinler                "name": "set_net_increase_target",
13963420426cSMatt Spinler                "groups": [
13973420426cSMatt Spinler                    {
13983420426cSMatt Spinler                        "name": "pcie cable card temps",
13993420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14003420426cSMatt Spinler                        "property": { "name": "Value" }
14013420426cSMatt Spinler                    }
14023420426cSMatt Spinler                ],
14033420426cSMatt Spinler                "state": 70.0,
14043420426cSMatt Spinler                "delta": 255
14053420426cSMatt Spinler            },
14063420426cSMatt Spinler            {
14073420426cSMatt Spinler                "name": "set_net_decrease_target",
14083420426cSMatt Spinler                "groups": [
14093420426cSMatt Spinler                    {
14103420426cSMatt Spinler                        "name": "proc0 core temps",
14113420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14123420426cSMatt Spinler                        "property": { "name": "Value" }
14133420426cSMatt Spinler                    }
14143420426cSMatt Spinler                ],
14153420426cSMatt Spinler                "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
14163420426cSMatt Spinler                "delta": 50
14173420426cSMatt Spinler            },
14183420426cSMatt Spinler            {
14193420426cSMatt Spinler                "name": "set_net_decrease_target",
14203420426cSMatt Spinler                "groups": [
14213420426cSMatt Spinler                    {
14223420426cSMatt Spinler                        "name": "proc1 core temps",
14233420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14243420426cSMatt Spinler                        "property": { "name": "Value" }
14253420426cSMatt Spinler                    }
14263420426cSMatt Spinler                ],
14273420426cSMatt Spinler                "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
14283420426cSMatt Spinler                "delta": 50
14293420426cSMatt Spinler            },
14303420426cSMatt Spinler            {
14313420426cSMatt Spinler                "name": "set_net_decrease_target",
14323420426cSMatt Spinler                "groups": [
14333420426cSMatt Spinler                    {
14343420426cSMatt Spinler                        "name": "proc2 core temps",
14353420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14363420426cSMatt Spinler                        "property": { "name": "Value" }
14373420426cSMatt Spinler                    }
14383420426cSMatt Spinler                ],
14393420426cSMatt Spinler                "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
14403420426cSMatt Spinler                "delta": 50
14413420426cSMatt Spinler            },
14423420426cSMatt Spinler            {
14433420426cSMatt Spinler                "name": "set_net_decrease_target",
14443420426cSMatt Spinler                "groups": [
14453420426cSMatt Spinler                    {
14463420426cSMatt Spinler                        "name": "proc3 core temps",
14473420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14483420426cSMatt Spinler                        "property": { "name": "Value" }
14493420426cSMatt Spinler                    }
14503420426cSMatt Spinler                ],
14513420426cSMatt Spinler                "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
14523420426cSMatt Spinler                "delta": 50
14533420426cSMatt Spinler            },
14543420426cSMatt Spinler            {
14553420426cSMatt Spinler                "name": "set_net_decrease_target",
14563420426cSMatt Spinler                "groups": [
14573420426cSMatt Spinler                    {
14583420426cSMatt Spinler                        "name": "proc0 ioring temp",
14593420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14603420426cSMatt Spinler                        "property": { "name": "Value" }
14613420426cSMatt Spinler                    }
14623420426cSMatt Spinler                ],
14633420426cSMatt Spinler                "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
14643420426cSMatt Spinler                "delta": 50
14653420426cSMatt Spinler            },
14663420426cSMatt Spinler            {
14673420426cSMatt Spinler                "name": "set_net_decrease_target",
14683420426cSMatt Spinler                "groups": [
14693420426cSMatt Spinler                    {
14703420426cSMatt Spinler                        "name": "proc1 ioring temp",
14713420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14723420426cSMatt Spinler                        "property": { "name": "Value" }
14733420426cSMatt Spinler                    }
14743420426cSMatt Spinler                ],
14753420426cSMatt Spinler                "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
14763420426cSMatt Spinler                "delta": 50
14773420426cSMatt Spinler            },
14783420426cSMatt Spinler            {
14793420426cSMatt Spinler                "name": "set_net_decrease_target",
14803420426cSMatt Spinler                "groups": [
14813420426cSMatt Spinler                    {
14823420426cSMatt Spinler                        "name": "proc2 ioring temp",
14833420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14843420426cSMatt Spinler                        "property": { "name": "Value" }
14853420426cSMatt Spinler                    }
14863420426cSMatt Spinler                ],
14873420426cSMatt Spinler                "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
14883420426cSMatt Spinler                "delta": 50
14893420426cSMatt Spinler            },
14903420426cSMatt Spinler            {
14913420426cSMatt Spinler                "name": "set_net_decrease_target",
14923420426cSMatt Spinler                "groups": [
14933420426cSMatt Spinler                    {
14943420426cSMatt Spinler                        "name": "proc3 ioring temp",
14953420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
14963420426cSMatt Spinler                        "property": { "name": "Value" }
14973420426cSMatt Spinler                    }
14983420426cSMatt Spinler                ],
14993420426cSMatt Spinler                "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
15003420426cSMatt Spinler                "delta": 50
15013420426cSMatt Spinler            },
15023420426cSMatt Spinler            {
15033420426cSMatt Spinler                "name": "set_net_decrease_target",
15043420426cSMatt Spinler                "groups": [
15053420426cSMatt Spinler                    {
15063420426cSMatt Spinler                        "name": "dram temps",
15073420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15083420426cSMatt Spinler                        "property": { "name": "Value" }
15093420426cSMatt Spinler                    }
15103420426cSMatt Spinler                ],
15113420426cSMatt Spinler                "state_parameter_name": "dram_dvfs_decrease_temp",
15123420426cSMatt Spinler                "delta": 40
15133420426cSMatt Spinler            },
15143420426cSMatt Spinler            {
15153420426cSMatt Spinler                "name": "set_net_decrease_target",
15163420426cSMatt Spinler                "groups": [
15173420426cSMatt Spinler                    {
15183420426cSMatt Spinler                        "name": "pmic temps",
15193420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15203420426cSMatt Spinler                        "property": { "name": "Value" }
15213420426cSMatt Spinler                    }
15223420426cSMatt Spinler                ],
15233420426cSMatt Spinler                "state_parameter_name": "pmic_dvfs_decrease_temp",
15243420426cSMatt Spinler                "delta": 40
15253420426cSMatt Spinler            },
15263420426cSMatt Spinler            {
15273420426cSMatt Spinler                "name": "set_net_decrease_target",
15283420426cSMatt Spinler                "groups": [
15293420426cSMatt Spinler                    {
15303420426cSMatt Spinler                        "name": "internal memory buffer temps",
15313420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15323420426cSMatt Spinler                        "property": { "name": "Value" }
15333420426cSMatt Spinler                    }
15343420426cSMatt Spinler                ],
15353420426cSMatt Spinler                "state_parameter_name": "intmb_dvfs_decrease_temp",
15363420426cSMatt Spinler                "delta": 40
15373420426cSMatt Spinler            },
15383420426cSMatt Spinler            {
15393420426cSMatt Spinler                "name": "set_net_decrease_target",
15403420426cSMatt Spinler                "groups": [
15413420426cSMatt Spinler                    {
15423420426cSMatt Spinler                        "name": "dram and external memory buffer temps",
15433420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15443420426cSMatt Spinler                        "property": { "name": "Value" }
15453420426cSMatt Spinler                    }
15463420426cSMatt Spinler                ],
15473420426cSMatt Spinler                "state_parameter_name": "dram_extmb_dvfs_decrease_temp",
15483420426cSMatt Spinler                "delta": 40
15493420426cSMatt Spinler            },
15503420426cSMatt Spinler            {
15513420426cSMatt Spinler                "name": "set_net_decrease_target",
15523420426cSMatt Spinler                "groups": [
15533420426cSMatt Spinler                    {
15543420426cSMatt Spinler                        "name": "external memory buffer temps",
15553420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15563420426cSMatt Spinler                        "property": { "name": "Value" }
15573420426cSMatt Spinler                    }
15583420426cSMatt Spinler                ],
15593420426cSMatt Spinler                "state_parameter_name": "extmb_dvfs_decrease_temp",
15603420426cSMatt Spinler                "delta": 40
15613420426cSMatt Spinler            },
15623420426cSMatt Spinler            {
15633420426cSMatt Spinler                "name": "set_net_decrease_target",
15643420426cSMatt Spinler                "groups": [
15653420426cSMatt Spinler                    {
15663420426cSMatt Spinler                        "name": "vdd vrm temps",
15673420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15683420426cSMatt Spinler                        "property": { "name": "Value" }
15693420426cSMatt Spinler                    }
15703420426cSMatt Spinler                ],
15713420426cSMatt Spinler                "state": 79.0,
15723420426cSMatt Spinler                "delta": 30
15733420426cSMatt Spinler            },
15743420426cSMatt Spinler            {
15753420426cSMatt Spinler                "name": "set_net_decrease_target",
15763420426cSMatt Spinler                "groups": [
15773420426cSMatt Spinler                    {
15783420426cSMatt Spinler                        "name": "nvme temps",
15793420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15803420426cSMatt Spinler                        "property": { "name": "Value" }
15813420426cSMatt Spinler                    }
15823420426cSMatt Spinler                ],
15833420426cSMatt Spinler                "state": 55.0,
15843420426cSMatt Spinler                "delta": 40
15853420426cSMatt Spinler            },
15863420426cSMatt Spinler            {
15873420426cSMatt Spinler                "name": "set_net_decrease_target",
15883420426cSMatt Spinler                "groups": [
15893420426cSMatt Spinler                    {
15903420426cSMatt Spinler                        "name": "planar temps",
15913420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
15923420426cSMatt Spinler                        "property": { "name": "Value" }
15933420426cSMatt Spinler                    }
15943420426cSMatt Spinler                ],
15953420426cSMatt Spinler                "state": 60.0,
15963420426cSMatt Spinler                "delta": 80
15973420426cSMatt Spinler            },
15983420426cSMatt Spinler            {
15993420426cSMatt Spinler                "name": "set_net_decrease_target",
16003420426cSMatt Spinler                "groups": [
16013420426cSMatt Spinler                    {
16023420426cSMatt Spinler                        "name": "flett temps",
16033420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
16043420426cSMatt Spinler                        "property": { "name": "Value" }
16053420426cSMatt Spinler                    }
16063420426cSMatt Spinler                ],
16073420426cSMatt Spinler                "state": 75.0,
16083420426cSMatt Spinler                "delta": 80
16093420426cSMatt Spinler            },
16103420426cSMatt Spinler            {
16113420426cSMatt Spinler                "name": "set_net_decrease_target",
16123420426cSMatt Spinler                "groups": [
16133420426cSMatt Spinler                    {
16143420426cSMatt Spinler                        "name": "pcie cable card temps",
16153420426cSMatt Spinler                        "interface": "xyz.openbmc_project.Sensor.Value",
16163420426cSMatt Spinler                        "property": { "name": "Value" }
16173420426cSMatt Spinler                    }
16183420426cSMatt Spinler                ],
16193420426cSMatt Spinler                "state": 65.0,
16203420426cSMatt Spinler                "delta": 80
16213420426cSMatt Spinler            }
16223420426cSMatt Spinler        ]
16233420426cSMatt Spinler    },
16243420426cSMatt Spinler    {
16253420426cSMatt Spinler        // Remove NVMe temperature objects from cache when they are removed from
16263420426cSMatt Spinler        // dbus. There's no need to react to their removal.
16273420426cSMatt Spinler        "name": "remove nvme objects",
16283420426cSMatt Spinler        "groups": [
16293420426cSMatt Spinler            {
16303420426cSMatt Spinler                "name": "nvme temps",
16313420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
16323420426cSMatt Spinler                "property": { "name": "Value" }
16333420426cSMatt Spinler            },
16343420426cSMatt Spinler            {
16353420426cSMatt Spinler                "name": "nvme temps",
16363420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
16373420426cSMatt Spinler                "property": { "name": "Functional" }
16383420426cSMatt Spinler            }
16393420426cSMatt Spinler        ],
16403420426cSMatt Spinler        "triggers": [
16413420426cSMatt Spinler            {
16423420426cSMatt Spinler                "class": "signal",
16433420426cSMatt Spinler                "signal": "interfaces_removed"
16443420426cSMatt Spinler            }
16453420426cSMatt Spinler        ]
16463420426cSMatt Spinler    },
16473420426cSMatt Spinler    {
16483420426cSMatt Spinler        "name": "set pcie floor index",
16493420426cSMatt Spinler        "groups": [
16503420426cSMatt Spinler            {
16513420426cSMatt Spinler                "name": "pcie slots",
16523420426cSMatt Spinler                "interface": "xyz.openbmc_project.State.Decorator.PowerState",
16533420426cSMatt Spinler                "property": {
16543420426cSMatt Spinler                    "name": "PowerState"
16553420426cSMatt Spinler                }
16563420426cSMatt Spinler            },
16573420426cSMatt Spinler            {
16583420426cSMatt Spinler                "name": "pcie cards",
16593420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
16603420426cSMatt Spinler                "property": {
16613420426cSMatt Spinler                    "name": "Function0DeviceId"
16623420426cSMatt Spinler                }
16633420426cSMatt Spinler            },
16643420426cSMatt Spinler            {
16653420426cSMatt Spinler                "name": "pcie cards",
16663420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
16673420426cSMatt Spinler                "property": {
16683420426cSMatt Spinler                    "name": "Function0VendorId"
16693420426cSMatt Spinler                }
16703420426cSMatt Spinler            },
16713420426cSMatt Spinler            {
16723420426cSMatt Spinler                "name": "pcie cards",
16733420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
16743420426cSMatt Spinler                "property": {
16753420426cSMatt Spinler                    "name": "Function0SubsystemId"
16763420426cSMatt Spinler                }
16773420426cSMatt Spinler            },
16783420426cSMatt Spinler            {
16793420426cSMatt Spinler                "name": "pcie cards",
16803420426cSMatt Spinler                "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
16813420426cSMatt Spinler                "property": {
16823420426cSMatt Spinler                    "name": "Function0SubsystemVendorId"
16833420426cSMatt Spinler                }
16843420426cSMatt Spinler            }
16853420426cSMatt Spinler        ],
16863420426cSMatt Spinler        "triggers": [
16873420426cSMatt Spinler            {
16883420426cSMatt Spinler                "class": "init",
16893420426cSMatt Spinler                "method": "get_properties"
16903420426cSMatt Spinler            },
16913420426cSMatt Spinler            {
16923420426cSMatt Spinler                "class": "signal",
16933420426cSMatt Spinler                "signal": "properties_changed"
16943420426cSMatt Spinler            },
16953420426cSMatt Spinler            {
16963420426cSMatt Spinler                "class": "signal",
16973420426cSMatt Spinler                "signal": "interfaces_added"
16983420426cSMatt Spinler            }
16993420426cSMatt Spinler        ],
17003420426cSMatt Spinler        "actions": [
17013420426cSMatt Spinler            {
17023420426cSMatt Spinler                "name": "pcie_card_floors",
17033420426cSMatt Spinler                "use_config_specific_files": true,
17043420426cSMatt Spinler                "settle_time": 2
17053420426cSMatt Spinler            }
17063420426cSMatt Spinler        ]
17073420426cSMatt Spinler    },
17083420426cSMatt Spinler    {
17093420426cSMatt Spinler        "name": "Set altitude offset parameter",
17103420426cSMatt Spinler        "groups": [
17113420426cSMatt Spinler            {
17123420426cSMatt Spinler                "name": "altitude",
17133420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
17143420426cSMatt Spinler                "property": { "name": "Value" }
17153420426cSMatt Spinler            }
17163420426cSMatt Spinler        ],
17173420426cSMatt Spinler        "triggers": [
17183420426cSMatt Spinler            {
17193420426cSMatt Spinler                "class": "init",
17203420426cSMatt Spinler                "method": "get_properties"
17213420426cSMatt Spinler            },
17223420426cSMatt Spinler            {
17233420426cSMatt Spinler                "class": "signal",
17243420426cSMatt Spinler                "signal": "interfaces_added"
17253420426cSMatt Spinler            },
17263420426cSMatt Spinler            {
17273420426cSMatt Spinler                // Refresh altitude every 24hrs
17283420426cSMatt Spinler                "class": "timer",
17293420426cSMatt Spinler                "type": "repeating",
17303420426cSMatt Spinler                "interval": 86400000000,
17313420426cSMatt Spinler                "preload_groups": true
17323420426cSMatt Spinler            }
17333420426cSMatt Spinler        ],
17343420426cSMatt Spinler        "actions": [
17353420426cSMatt Spinler            {
17363420426cSMatt Spinler                "name": "set_parameter_from_group_max",
17373420426cSMatt Spinler                "parameter_name": "ambient_20_altitude_offset",
17383420426cSMatt Spinler                "modifier": {
17393420426cSMatt Spinler                    "operator": "less_than",
17403420426cSMatt Spinler                    "default_value": 10000,
17413420426cSMatt Spinler                    "value": [
17423420426cSMatt Spinler                        { "arg_value": 500, "parameter_value": 0 },
17433420426cSMatt Spinler                        { "arg_value": 1000, "parameter_value": 700 },
17443420426cSMatt Spinler                        { "arg_value": 1500, "parameter_value": 1600 },
17453420426cSMatt Spinler                        { "arg_value": 2000, "parameter_value": 2300 },
17463420426cSMatt Spinler                        { "arg_value": 2500, "parameter_value": 3200 },
17473420426cSMatt Spinler                        { "arg_value": 3300, "parameter_value": 4000 }
17483420426cSMatt Spinler                    ]
17493420426cSMatt Spinler                }
17503420426cSMatt Spinler            },
17513420426cSMatt Spinler            {
17523420426cSMatt Spinler                "name": "set_parameter_from_group_max",
17533420426cSMatt Spinler                "parameter_name": "ambient_25_altitude_offset",
17543420426cSMatt Spinler                "modifier": {
17553420426cSMatt Spinler                    "operator": "less_than",
17563420426cSMatt Spinler                    "default_value": 10000,
17573420426cSMatt Spinler                    "value": [
17583420426cSMatt Spinler                        { "arg_value": 500, "parameter_value": 0 },
17593420426cSMatt Spinler                        { "arg_value": 1000, "parameter_value": 1000 },
17603420426cSMatt Spinler                        { "arg_value": 1500, "parameter_value": 2100 },
17613420426cSMatt Spinler                        { "arg_value": 2000, "parameter_value": 3100 },
17623420426cSMatt Spinler                        { "arg_value": 2500, "parameter_value": 4100 },
17633420426cSMatt Spinler                        { "arg_value": 3300, "parameter_value": 4900 }
17643420426cSMatt Spinler                    ]
17653420426cSMatt Spinler                }
17663420426cSMatt Spinler            },
17673420426cSMatt Spinler            {
17683420426cSMatt Spinler                "name": "set_parameter_from_group_max",
17693420426cSMatt Spinler                "parameter_name": "ambient_30_altitude_offset",
17703420426cSMatt Spinler                "modifier": {
17713420426cSMatt Spinler                    "operator": "less_than",
17723420426cSMatt Spinler                    "default_value": 10000,
17733420426cSMatt Spinler                    "value": [
17743420426cSMatt Spinler                        { "arg_value": 500, "parameter_value": 0 },
17753420426cSMatt Spinler                        { "arg_value": 1000, "parameter_value": 1000 },
17763420426cSMatt Spinler                        { "arg_value": 1500, "parameter_value": 2100 },
17773420426cSMatt Spinler                        { "arg_value": 2000, "parameter_value": 3200 },
17783420426cSMatt Spinler                        { "arg_value": 2500, "parameter_value": 4000 },
17793420426cSMatt Spinler                        { "arg_value": 3300, "parameter_value": 4800 }
17803420426cSMatt Spinler                    ]
17813420426cSMatt Spinler                }
17823420426cSMatt Spinler            },
17833420426cSMatt Spinler            {
17843420426cSMatt Spinler                "name": "set_parameter_from_group_max",
17853420426cSMatt Spinler                "parameter_name": "ambient_35_altitude_offset",
17863420426cSMatt Spinler                "modifier": {
17873420426cSMatt Spinler                    "operator": "less_than",
17883420426cSMatt Spinler                    "default_value": 10000,
17893420426cSMatt Spinler                    "value": [
17903420426cSMatt Spinler                        { "arg_value": 500, "parameter_value": 0 },
17913420426cSMatt Spinler                        { "arg_value": 1000, "parameter_value": 900 },
17923420426cSMatt Spinler                        { "arg_value": 1500, "parameter_value": 1700 },
17933420426cSMatt Spinler                        { "arg_value": 2000, "parameter_value": 2500 },
17943420426cSMatt Spinler                        { "arg_value": 2500, "parameter_value": 3400 },
17953420426cSMatt Spinler                        { "arg_value": 3300, "parameter_value": 4200 }
17963420426cSMatt Spinler                    ]
17973420426cSMatt Spinler                }
17983420426cSMatt Spinler            },
17993420426cSMatt Spinler            {
18003420426cSMatt Spinler                "name": "set_parameter_from_group_max",
18013420426cSMatt Spinler                "parameter_name": "ambient_40_altitude_offset",
18023420426cSMatt Spinler                "modifier": {
18033420426cSMatt Spinler                    "operator": "less_than",
18043420426cSMatt Spinler                    "default_value": 10000,
18053420426cSMatt Spinler                    "value": [
18063420426cSMatt Spinler                        { "arg_value": 500, "parameter_value": 0 },
18073420426cSMatt Spinler                        { "arg_value": 1000, "parameter_value": 1000 },
18083420426cSMatt Spinler                        { "arg_value": 1500, "parameter_value": 1900 },
18093420426cSMatt Spinler                        { "arg_value": 2000, "parameter_value": 2800 },
18103420426cSMatt Spinler                        { "arg_value": 2500, "parameter_value": 3700 },
18113420426cSMatt Spinler                        { "arg_value": 3300, "parameter_value": 4500 }
18123420426cSMatt Spinler                    ]
18133420426cSMatt Spinler                }
18143420426cSMatt Spinler            }
18153420426cSMatt Spinler        ]
18163420426cSMatt Spinler    },
18173420426cSMatt Spinler    {
18183420426cSMatt Spinler        "name": "Fan floors",
18193420426cSMatt Spinler        "groups": [
18203420426cSMatt Spinler            {
18213420426cSMatt Spinler                "name": "ambient temp",
18223420426cSMatt Spinler                "interface": "xyz.openbmc_project.Sensor.Value",
18233420426cSMatt Spinler                "property": { "name": "Value" }
18243420426cSMatt Spinler            }
18253420426cSMatt Spinler        ],
18263420426cSMatt Spinler        "triggers": [
18273420426cSMatt Spinler            {
18283420426cSMatt Spinler                "class": "init",
18293420426cSMatt Spinler                "method": "get_properties"
18303420426cSMatt Spinler            },
18313420426cSMatt Spinler            {
18323420426cSMatt Spinler                "class": "signal",
18333420426cSMatt Spinler                "signal": "properties_changed"
18343420426cSMatt Spinler            },
18353420426cSMatt Spinler            {
18363420426cSMatt Spinler                "class": "signal",
18373420426cSMatt Spinler                "signal": "interfaces_added"
18383420426cSMatt Spinler            },
18393420426cSMatt Spinler            {
18403420426cSMatt Spinler                "class": "parameter",
18413420426cSMatt Spinler                "parameter": "pcie_floor_index"
18423420426cSMatt Spinler            },
18433420426cSMatt Spinler            {
18443420426cSMatt Spinler                "class": "parameter",
18453420426cSMatt Spinler                "parameter": "ambient_20_altitude_offset"
18463420426cSMatt Spinler            },
18473420426cSMatt Spinler            {
18483420426cSMatt Spinler                "class": "parameter",
18493420426cSMatt Spinler                "parameter": "ambient_25_altitude_offset"
18503420426cSMatt Spinler            },
18513420426cSMatt Spinler            {
18523420426cSMatt Spinler                "class": "parameter",
18533420426cSMatt Spinler                "parameter": "ambient_30_altitude_offset"
18543420426cSMatt Spinler            },
18553420426cSMatt Spinler            {
18563420426cSMatt Spinler                "class": "parameter",
18573420426cSMatt Spinler                "parameter": "ambient_35_altitude_offset"
18583420426cSMatt Spinler            },
18593420426cSMatt Spinler            {
18603420426cSMatt Spinler                "class": "parameter",
18613420426cSMatt Spinler                "parameter": "ambient_40_altitude_offset"
18623420426cSMatt Spinler            }
18633420426cSMatt Spinler        ],
18643420426cSMatt Spinler        "actions": [
18653420426cSMatt Spinler            {
18663420426cSMatt Spinler                "name": "mapped_floor",
18673420426cSMatt Spinler                "key_group": "ambient temp",
18683420426cSMatt Spinler                "fan_floors": [
18693420426cSMatt Spinler                    {
18703420426cSMatt Spinler                        // Entry valid for temps < 20
18713420426cSMatt Spinler                        "key": 20,
18723420426cSMatt Spinler                        "default_floor": 5400,
18733420426cSMatt Spinler                        "floor_offset_parameter": "ambient_20_altitude_offset",
18743420426cSMatt Spinler                        "floors": [
18753420426cSMatt Spinler                            {
18763420426cSMatt Spinler                                "parameter": "pcie_floor_index",
18773420426cSMatt Spinler                                "floors": [
18783420426cSMatt Spinler                                    { "value": 1, "floor": 5600 },
18793420426cSMatt Spinler                                    { "value": 2, "floor": 9000 },
18803420426cSMatt Spinler                                    { "value": 3, "floor": 9000 },
18813420426cSMatt Spinler                                    { "value": 4, "floor": 9200 },
18823420426cSMatt Spinler                                    { "value": 5, "floor": 10600 }
18833420426cSMatt Spinler                                ]
18843420426cSMatt Spinler                            }
18853420426cSMatt Spinler                        ]
18863420426cSMatt Spinler                    },
18873420426cSMatt Spinler                    {
18883420426cSMatt Spinler                        // Entry valid for temps < 25
18893420426cSMatt Spinler                        "key": 25,
18903420426cSMatt Spinler                        "default_floor": 7300,
18913420426cSMatt Spinler                        "floor_offset_parameter": "ambient_25_altitude_offset",
18923420426cSMatt Spinler                        "floors": [
18933420426cSMatt Spinler                            {
18943420426cSMatt Spinler                                "parameter": "pcie_floor_index",
18953420426cSMatt Spinler                                "floors": [
18963420426cSMatt Spinler                                    { "value": 1, "floor": 7800 },
18973420426cSMatt Spinler                                    { "value": 2, "floor": 10700 },
18983420426cSMatt Spinler                                    { "value": 3, "floor": 11300 },
18993420426cSMatt Spinler                                    { "value": 4, "floor": 12700 },
19003420426cSMatt Spinler                                    { "value": 5, "floor": 13900 }
19013420426cSMatt Spinler                                ]
19023420426cSMatt Spinler                            }
19033420426cSMatt Spinler                        ]
19043420426cSMatt Spinler                    },
19053420426cSMatt Spinler                    {
19063420426cSMatt Spinler                        // Entry valid for temps < 30
19073420426cSMatt Spinler                        "key": 30,
19083420426cSMatt Spinler                        "default_floor": 9100,
19093420426cSMatt Spinler                        "floor_offset_parameter": "ambient_30_altitude_offset",
19103420426cSMatt Spinler                        "floors": [
19113420426cSMatt Spinler                            {
19123420426cSMatt Spinler                                "parameter": "pcie_floor_index",
19133420426cSMatt Spinler                                "floors": [
19143420426cSMatt Spinler                                    { "value": 1, "floor": 10300 },
19153420426cSMatt Spinler                                    { "value": 2, "floor": 12100 },
19163420426cSMatt Spinler                                    { "value": 3, "floor": 14400 },
19173420426cSMatt Spinler                                    { "value": 4, "floor": 16300 },
19183420426cSMatt Spinler                                    { "value": 5, "floor": 17200 }
19193420426cSMatt Spinler                                ]
19203420426cSMatt Spinler                            }
19213420426cSMatt Spinler                        ]
19223420426cSMatt Spinler                    },
19233420426cSMatt Spinler                    {
19243420426cSMatt Spinler                        // Entry valid for temps < 35
19253420426cSMatt Spinler                        "key": 35,
19263420426cSMatt Spinler                        "default_floor": 10800,
19273420426cSMatt Spinler                        "floor_offset_parameter": "ambient_35_altitude_offset",
19283420426cSMatt Spinler                        "floors": [
19293420426cSMatt Spinler                            {
19303420426cSMatt Spinler                                "parameter": "pcie_floor_index",
19313420426cSMatt Spinler                                "floors": [
19323420426cSMatt Spinler                                    { "value": 1, "floor": 12700 },
19333420426cSMatt Spinler                                    { "value": 2, "floor": 13500 },
19343420426cSMatt Spinler                                    { "value": 3, "floor": 17400 },
19353420426cSMatt Spinler                                    { "value": 4, "floor": 18000 },
19363420426cSMatt Spinler                                    { "value": 5, "floor": 18000 }
19373420426cSMatt Spinler                                ]
19383420426cSMatt Spinler                            }
19393420426cSMatt Spinler                        ]
19403420426cSMatt Spinler                    },
19413420426cSMatt Spinler                    {
19423420426cSMatt Spinler                        // Entry valid for temps < 40
19433420426cSMatt Spinler                        "key": 40,
19443420426cSMatt Spinler                        "default_floor": 12600,
19453420426cSMatt Spinler                        "floor_offset_parameter": "ambient_40_altitude_offset",
19463420426cSMatt Spinler                        "floors": [
19473420426cSMatt Spinler                            {
19483420426cSMatt Spinler                                "parameter": "pcie_floor_index",
19493420426cSMatt Spinler                                "floors": [
19503420426cSMatt Spinler                                    { "value": 1, "floor": 15000 },
19513420426cSMatt Spinler                                    { "value": 2, "floor": 15500 },
19523420426cSMatt Spinler                                    { "value": 3, "floor": 18000 },
19533420426cSMatt Spinler                                    { "value": 4, "floor": 18000 },
19543420426cSMatt Spinler                                    { "value": 5, "floor": 18000 }
19553420426cSMatt Spinler                                ]
19563420426cSMatt Spinler                            }
19573420426cSMatt Spinler                        ]
19583420426cSMatt Spinler                    }
19593420426cSMatt Spinler                ]
19603420426cSMatt Spinler            }
19613420426cSMatt Spinler        ]
19623420426cSMatt Spinler    }
19633420426cSMatt Spinler]
1964