1#Example set speed events for phosphor-fan-control 2 3#groups: 4# - name: [A unique name for this group] 5# description: [A user description of what makes up the group] 6# type: [The '/xyz/openbmc_project' path extension] 7# members: 8# [List of object paths under the path extension] 9# 10#matches: 11# - name: [The name associated with a supported match string function] 12# description: [A user description of what this match string represents] 13# parameters: 14# [Ordered list of required parameters for the match string function] 15# 16#signals: 17# - name: [The name associated with a supported signal function] 18# description: [A user description of what this signal does] 19# parameters: 20# [Ordered list of required parameters for the signal function] 21# match: [Match string function to use in subscribing to the signal] 22# 23#methods: 24# - name: [The name associated with a supported method function] 25# description: [A user description of what this method does] 26# parameters: 27# [Ordered list of required parameteres for the method function] 28# 29#handlers: 30# - name: [The name associated with a supported handler function] 31# description: [A user descriptiion of what this handler does] 32# parameters: 33# [Ordered list of required parameters for the handler function] 34# 35#preconditions: [Preconditions are intended to load or unload events based 36# on the precondition's resulting state] 37# - name: [Name associated with an available precondition function] 38# description: [A user description of the precondition's use] 39# parameters: 40# [Ordered list of required parameters for the precondition function] 41# 42#actions: 43# - name: [Name associated with an available action function] 44# description: [A user description of what this action does] 45# parameters: 46# [Ordered list of required parameters for the associated function] 47# 48#events: 49# - name: [A unique name for this event] 50# precondition{OPTIONAL}: 51# name: [Name of the precondition function] 52# groups: 53# - name: [A group name from the list of groups] 54# zone_conditions{OPTIONAL}: 55# - name: [The name of the zone condition] 56# zones: 57# - [Zone number to include this set speed event with] 58# interface: [Dbus interface on the group members' object path] 59# property: 60# name: [Name of the property on the interface] 61# type: [The property's data type] 62# triggers: 63# [At least 1 trigger is required per event from those available: 64# "init" - Executes a method(with associated handler) at startup 65# and then process the event actions 66# "signal" - Subscribes to a signal and executes the associated 67# handler when the signal is received and then process 68# the event actions 69# "timer" - Configures a type of timer over an interval that 70# processess the event actions each time the timer 71# expires] 72# - name: [Name of trigger to execute the event] 73# [Provide the required trigger parameter(s)] 74# events: [Define the event that is to be loaded when the precondition 75# succeeds] 76# groups: 77# - name: [A group name from the list of groups] 78# zone_conditions{OPTIONAL}: 79# - name: [The name of the zone condition] 80# zones: 81# - [Zone number to include this set speed event with] 82# interface: [The Dbus interface on the group members' object path] 83# property: 84# name: [Name of the property on the interface] 85# type: [The property's data type] 86# triggers: 87# [At least 1 trigger is required per event from those available: 88# "init" - Executes a method(with associated handler) at startup 89# and then process the event actions 90# "signal" - Subscribes to a signal and executes the associated 91# handler when the signal is received and then process 92# the event actions 93# "timer" - Configures a type of timer over an interval that 94# processess the event actions each time the timer expires] 95# - name: [Name of trigger to execute the event] 96# [Provide the required trigger parameter(s)] 97# actions: 98# - name: [Name of an action from the list of actions] 99# [Ordered list of each required action parameter with a defined 100# type and value for this event. The 'property' parameter utilizes 101# the same type defined under the 'property' attribute.] 102 103#Example: 104#groups: 105# - name: zone0_fans 106# description: Group of fan inventory objects for zone 0 107# type: /xyz/openbmc_project/inventory 108# members: 109# - /system/chassis/motherboard/fan0 110# - /system/chassis/motherboard/fan1 111# - /system/chassis/motherboard/fan2 112# - /system/chassis/motherboard/fan3 113# - name: zone0_ambient 114# description: Group of ambient temperature sensors for zone 0 115# type: /xyz/openbmc_project/sensors 116# members: 117# - /temperature/ambient 118# - name: occ0_object 119# description: Dbus object containing OCC0 properties 120# type: /org/open_power/control 121# members: 122# - /occ0 123# - name: zone0_regulators 124# description: Group of regulator temperature sensors for zone 0 125# type: /xyz/openbmc_project/sensors 126# members: 127# - /temperature/p0_vdd_temp 128# - /temperature/p1_vdd_temp 129# - name: zone0_dimms 130# description: Group of dimm temperature sensors for zone 0 131# type: /xyz/openbmc_project/sensors 132# members: 133# - /temperature/dimm0_temp 134# - /temperature/dimm1_temp 135# - /temperature/dimm2_temp 136# - /temperature/dimm3_temp 137# - /temperature/dimm4_temp 138# 139#matches: 140# - name: propertiesChanged 141# parameters: 142# - object 143# - interface 144# - name: interfacesAdded 145# parameters: 146# - object 147# - name: interfacesRemoved 148# parameters: 149# - object 150# 151#signals: 152# - name: propertiesChanged 153# description: > 154# A property changed signal 155# parameters: 156# - object 157# - interface 158# match: propertiesChanged 159# - name: interfacesAdded 160# description: > 161# An interfaces added signal 162# parameters: 163# - type 164# - object 165# - interface 166# - property 167# match: interfacesAdded 168# - name: interfacesRemoved 169# description: > 170# An interfaces removed match 171# parameters: 172# - object 173# - interface 174# match: interfacesRemoved 175# 176#methods: 177# - name: getProperties 178# description: > 179# Get the property values of the given group members 180# by performing a `GetProperty` method call on each 181# parameters: 182# - type 183# 184#handlers: 185# - name: setProperty 186# description: > 187# Sets a value for the givent object/interface/property 188# parameters: 189# - type 190# 191#preconditions: 192# - name: property_states_match 193# description: > 194# All defined properties must match the values given to 195# enable a set speed event otherwise fan speeds are set to full 196# parameters: 197# - groups 198# 199#actions: 200# - name: count_state_before_speed 201# description: Set the speed when a number of properties at a state 202# parameters: 203# - count 204# - property 205# - speed 206# - name: set_floor_from_average_sensor_value 207# description: Set floor speed from first entry with average less than key 208# parameters: 209# - map 210# - name: set_ceiling_from_average_sensor_value 211# description: Set ceiling speed based on key transition values with average 212# parameters: 213# - map 214# - name: set_net_increase_speed 215# description: > 216# Set the speed increase delta based on the delta increase 217# size times the given value and property's value difference 218# parameters: 219# - property 220# - factor 221# - delta 222# - name: set_net_decrease_speed 223# description: > 224# Set the speed decrease delta based on the delta decrease 225# size times the given value and property's value difference 226# parameters: 227# - property 228# - factor 229# - delta 230# - name: update_default_floor 231# description: > 232# Update the default fan floor to the given speed 233# parameters: 234# - property 235# - speed 236# - name: use_events_on_state 237# description: > 238# Use a set of events when all the group properties are at a given 239# state, otherwise remove the events 240# parameters: 241# - property 242# - events 243# 244#events: 245# - name: missing_before_high_speed 246# groups: 247# - name: zone0_fans 248# zone_conditions: 249# - name: air_cooled_chassis 250# zones: 251# - 0 252# interface: xyz.openbmc_project.Inventory.Item 253# property: 254# name: Present 255# type: bool 256# triggers: 257# - name: init 258# method: getProperties 259# handler: setProperty 260# - name: signal 261# signal: propertiesChanged 262# handler: setProperty 263# actions: 264# - name: count_state_before_speed 265# count: 1 266# property: 267# value: false 268# type: bool 269# speed: 270# value: 10500 271# type: uint64_t 272# - name: set_air_cooled_speed_boundaries_based_on_ambient 273# groups: 274# - name: zone0_ambient 275# zone_conditions: 276# - name: air_cooled_chassis 277# zones: 278# - 0 279# interface: xyz.openbmc_project.Sensor.Value 280# property: 281# name: Value 282# type: int64_t 283# triggers: 284# - name: init 285# method: getProperties 286# handler: setProperty 287# - name: signal 288# signal: propertiesChanged 289# handler: setProperty 290# actions: 291# - name: set_floor_from_average_sensor_value 292# map: 293# value: 294# - 27000: 3500 295# - 32000: 4600 296# - 37000: 5200 297# - 40000: 5800 298# type: std::map<int64_t, uint64_t> 299# - name: set_ceiling_from_average_sensor_value 300# map: 301# value: 302# - 25000: 7200 303# - 27000: 10500 304# type: std::map<int64_t, uint64_t> 305# - name: set_water_cooled_speed_boundaries_based_on_ambient 306# groups: 307# - name: zone0_ambient 308# zone_conditions: 309# - name: water_and_air_cooled_chassis 310# zones: 311# - 0 312# interface: xyz.openbmc_project.Sensor.Value 313# property: 314# name: Value 315# type: int64_t 316# triggers: 317# - name: init 318# method: getProperties 319# handler: setProperty 320# - name: signal 321# signal: propertiesChanged 322# handler: setProperty 323# actions: 324# - name: set_floor_from_average_sensor_value 325# map: 326# value: 327# - 27000: 3000 328# - 32000: 4300 329# - 37000: 5000 330# - 40000: 5800 331# type: std::map<int64_t, uint64_t> 332# - name: set_ceiling_from_average_sensor_value 333# map: 334# value: 335# - 25000: 7200 336# - 27000: 10500 337# type: std::map<int64_t, uint64_t> 338# - name: occ_active_speed_changes 339# precondition: 340# name: property_states_match 341# groups: 342# - name: occ0_object 343# interface: org.open_power.OCC.Status 344# property: 345# name: OccActive 346# type: bool 347# value: true 348# - name: occ1_object 349# interface: org.open_power.OCC.Status 350# property: 351# name: OccActive 352# type: bool 353# value: true 354# triggers: 355# - name: init 356# method: getProperties 357# handler: setProperty 358# - name: signal 359# signal: interfacesAdded 360# handler: setProperty 361# - name: signal 362# signal: propertiesChanged 363# handler: setProperty 364# events: 365# - name: speed_control_sensors 366# groups: 367# - name: zone0_regulators 368# interface: xyz.openbmc_project.Sensor.Value 369# property: 370# name: Value 371# type: int64_t 372# - name: zone0_dimms 373# interface: xyz.openbmc_project.Sensor.Value 374# property: 375# name: Value 376# type: int64_t 377# triggers: 378# - name: init 379# method: getProperties 380# handler: setProperty 381# - name: signal 382# signal: interfacesAdded 383# handler: setProperty 384# - name: signal 385# signal: propertiesChanged 386# handler: setProperty 387# - name: signal 388# signal: interfacesRemoved 389# handler: removeInterface 390# - name: 1sec_speed_change_request_sampling 391# triggers: 392# - name: timer 393# interval: 1000000 394# type: repeating 395# actions: 396# # Speed changes based on regulator temps 397# - name: set_net_increase_speed 398# groups: 399# - name: zone0_regulators 400# interface: xyz.openbmc_project.Sensor.Value 401# property: 402# name: Value 403# type: int64_t 404# property: 405# value: 85000 406# type: int64_t 407# factor: 408# value: 1000 409# type: int64_t 410# delta: 411# value: 400 412# type: uint64_t 413# - name: set_net_decrease_speed 414# groups: 415# - name: zone0_regulators 416# interface: xyz.openbmc_project.Sensor.Value 417# property: 418# name: Value 419# type: int64_t 420# property: 421# value: 82000 422# type: int64_t 423# factor: 424# value: 1000 425# type: int64_t 426# delta: 427# value: 40 428# type: uint64_t 429# # Speed changes based on dimm temps 430# - name: set_net_increase_speed 431# groups: 432# - name: zone0_dimms 433# interface: xyz.openbmc_project.Sensor.Value 434# property: 435# name: Value 436# type: int64_t 437# property: 438# value: 64000 439# type: int64_t 440# factor: 441# value: 1000 442# type: int64_t 443# delta: 444# value: 200 445# type: uint64_t 446# - name: set_net_decrease_speed 447# groups: 448# - name: zone0_dimms 449# interface: xyz.openbmc_project.Sensor.Value 450# property: 451# name: Value 452# type: int64_t 453# property: 454# value: 61000 455# type: int64_t 456# factor: 457# value: 1000 458# type: int64_t 459# delta: 460# value: 40 461# type: uint64_t 462