#Example set speed events for phosphor-fan-control #groups: # - name: [A unique name for this group] # description: [A user description of what makes up the group] # type: [The '/xyz/openbmc_project' path extension] # members: # [List of object paths under the path extension] # #matches: # - name: [The name associated with a supported match string function] # description: [A user description of what this match string represents] # parameters: # [Ordered list of required parameters for the match string function] # #signals: # - name: [The name associated with a supported signal function] # description: [A user description of what this signal does] # parameters: # [Ordered list of required parameters for the signal function] # match: [Match string function to use in subscribing to the signal] # #methods: # - name: [The name associated with a supported method function] # description: [A user description of what this method does] # parameters: # [Ordered list of required parameteres for the method function] # #handlers: # - name: [The name associated with a supported handler function] # description: [A user descriptiion of what this handler does] # parameters: # [Ordered list of required parameters for the handler function] # #preconditions: [Preconditions are intended to load or unload events based # on the precondition's resulting state] # - name: [Name associated with an available precondition function] # description: [A user description of the precondition's use] # parameters: # [Ordered list of required parameters for the precondition function] # #actions: # - name: [Name associated with an available action function] # description: [A user description of what this action does] # parameters: # [Ordered list of required parameters for the associated function] # #events: # - name: [A unique name for this event] # precondition{OPTIONAL}: # name: [Name of the precondition function] # groups: # - name: [A group name from the list of groups] # zone_conditions{OPTIONAL}: # - name: [The name of the zone condition] # zones: # - [Zone number to include this set speed event with] # interface: [Dbus interface on the group members' object path] # property: # name: [Name of the property on the interface] # type: [The property's data type] # triggers: # [At least 1 trigger is required per event from those available: # "init" - Executes a method(with associated handler) at startup # and then process the event actions # "signal" - Subscribes to a signal and executes the associated # handler when the signal is received and then process # the event actions # "timer" - Configures a type of timer over an interval that # processess the event actions each time the timer # expires] # - name: [Name of trigger to execute the event] # [Provide the required trigger parameter(s)] # events: [Define the event that is to be loaded when the precondition # succeeds] # groups: # - name: [A group name from the list of groups] # zone_conditions{OPTIONAL}: # - name: [The name of the zone condition] # zones: # - [Zone number to include this set speed event with] # interface: [The Dbus interface on the group members' object path] # property: # name: [Name of the property on the interface] # type: [The property's data type] # triggers: # [At least 1 trigger is required per event from those available: # "init" - Executes a method(with associated handler) at startup # and then process the event actions # "signal" - Subscribes to a signal and executes the associated # handler when the signal is received and then process # the event actions # "timer" - Configures a type of timer over an interval that # processess the event actions each time the timer expires] # - name: [Name of trigger to execute the event] # [Provide the required trigger parameter(s)] # actions: # - name: [Name of an action from the list of actions] # [Ordered list of each required action parameter with a defined # type and value for this event. The 'property' parameter utilizes # the same type defined under the 'property' attribute.] #Example: #groups: # - name: zone0_fans # description: Group of fan inventory objects for zone 0 # type: /xyz/openbmc_project/inventory # members: # - /system/chassis/motherboard/fan0 # - /system/chassis/motherboard/fan1 # - /system/chassis/motherboard/fan2 # - /system/chassis/motherboard/fan3 # - name: zone0_ambient # description: Group of ambient temperature sensors for zone 0 # type: /xyz/openbmc_project/sensors # members: # - /temperature/ambient # - name: occ0_object # description: Dbus object containing OCC0 properties # type: /org/open_power/control # members: # - /occ0 # - name: zone0_regulators # description: Group of regulator temperature sensors for zone 0 # type: /xyz/openbmc_project/sensors # members: # - /temperature/p0_vdd_temp # - /temperature/p1_vdd_temp # - name: zone0_dimms # description: Group of dimm temperature sensors for zone 0 # type: /xyz/openbmc_project/sensors # members: # - /temperature/dimm0_temp # - /temperature/dimm1_temp # - /temperature/dimm2_temp # - /temperature/dimm3_temp # - /temperature/dimm4_temp # #matches: # - name: propertiesChanged # parameters: # - object # - interface # - name: interfacesAdded # parameters: # - object # - name: interfacesRemoved # parameters: # - object # #signals: # - name: propertiesChanged # description: > # A property changed signal # parameters: # - object # - interface # match: propertiesChanged # - name: interfacesAdded # description: > # An interfaces added signal # parameters: # - type # - object # - interface # - property # match: interfacesAdded # - name: interfacesRemoved # description: > # An interfaces removed match # parameters: # - object # - interface # match: interfacesRemoved # #methods: # - name: getProperties # description: > # Get the property values of the given group members # by performing a `GetProperty` method call on each # parameters: # - type # #handlers: # - name: setProperty # description: > # Sets a value for the givent object/interface/property # parameters: # - type # #preconditions: # - name: property_states_match # description: > # All defined properties must match the values given to # enable a set speed event otherwise fan speeds are set to full # parameters: # - groups # #actions: # - name: count_state_before_speed # description: Set the speed when a number of properties at a state # parameters: # - count # - property # - speed # - name: set_floor_from_average_sensor_value # description: Set floor speed from first entry with average less than key # parameters: # - map # - name: set_ceiling_from_average_sensor_value # description: Set ceiling speed based on key transition values with average # parameters: # - map # - name: set_net_increase_speed # description: > # Set the speed increase delta based on the delta increase # size times the given value and property's value difference # parameters: # - property # - factor # - delta # - name: set_net_decrease_speed # description: > # Set the speed decrease delta based on the delta decrease # size times the given value and property's value difference # parameters: # - property # - factor # - delta # - name: update_default_floor # description: > # Update the default fan floor to the given speed # parameters: # - property # - speed # - name: use_events_on_state # description: > # Use a set of events when all the group properties are at a given # state, otherwise remove the events # parameters: # - property # - events # #events: # - name: missing_before_high_speed # groups: # - name: zone0_fans # zone_conditions: # - name: air_cooled_chassis # zones: # - 0 # interface: xyz.openbmc_project.Inventory.Item # property: # name: Present # type: bool # triggers: # - name: init # method: getProperties # handler: setProperty # - name: signal # signal: propertiesChanged # handler: setProperty # actions: # - name: count_state_before_speed # count: 1 # property: # value: false # type: bool # speed: # value: 10500 # type: uint64_t # - name: set_air_cooled_speed_boundaries_based_on_ambient # groups: # - name: zone0_ambient # zone_conditions: # - name: air_cooled_chassis # zones: # - 0 # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # triggers: # - name: init # method: getProperties # handler: setProperty # - name: signal # signal: propertiesChanged # handler: setProperty # actions: # - name: set_floor_from_average_sensor_value # map: # value: # - 27000: 3500 # - 32000: 4600 # - 37000: 5200 # - 40000: 5800 # type: std::map # - name: set_ceiling_from_average_sensor_value # map: # value: # - 25000: 7200 # - 27000: 10500 # type: std::map # - name: set_water_cooled_speed_boundaries_based_on_ambient # groups: # - name: zone0_ambient # zone_conditions: # - name: water_and_air_cooled_chassis # zones: # - 0 # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # triggers: # - name: init # method: getProperties # handler: setProperty # - name: signal # signal: propertiesChanged # handler: setProperty # actions: # - name: set_floor_from_average_sensor_value # map: # value: # - 27000: 3000 # - 32000: 4300 # - 37000: 5000 # - 40000: 5800 # type: std::map # - name: set_ceiling_from_average_sensor_value # map: # value: # - 25000: 7200 # - 27000: 10500 # type: std::map # - name: occ_active_speed_changes # precondition: # name: property_states_match # groups: # - name: occ0_object # interface: org.open_power.OCC.Status # property: # name: OccActive # type: bool # value: true # - name: occ1_object # interface: org.open_power.OCC.Status # property: # name: OccActive # type: bool # value: true # triggers: # - name: init # method: getProperties # handler: setProperty # - name: signal # signal: interfacesAdded # handler: setProperty # - name: signal # signal: propertiesChanged # handler: setProperty # events: # - name: speed_control_sensors # groups: # - name: zone0_regulators # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # - name: zone0_dimms # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # triggers: # - name: init # method: getProperties # handler: setProperty # - name: signal # signal: interfacesAdded # handler: setProperty # - name: signal # signal: propertiesChanged # handler: setProperty # - name: signal # signal: interfacesRemoved # handler: removeInterface # - name: 1sec_speed_change_request_sampling # triggers: # - name: timer # interval: 1000000 # type: repeating # actions: # # Speed changes based on regulator temps # - name: set_net_increase_speed # groups: # - name: zone0_regulators # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # property: # value: 85000 # type: int64_t # factor: # value: 1000 # type: int64_t # delta: # value: 400 # type: uint64_t # - name: set_net_decrease_speed # groups: # - name: zone0_regulators # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # property: # value: 82000 # type: int64_t # factor: # value: 1000 # type: int64_t # delta: # value: 40 # type: uint64_t # # Speed changes based on dimm temps # - name: set_net_increase_speed # groups: # - name: zone0_dimms # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # property: # value: 64000 # type: int64_t # factor: # value: 1000 # type: int64_t # delta: # value: 200 # type: uint64_t # - name: set_net_decrease_speed # groups: # - name: zone0_dimms # interface: xyz.openbmc_project.Sensor.Value # property: # name: Value # type: int64_t # property: # value: 61000 # type: int64_t # factor: # value: 1000 # type: int64_t # delta: # value: 40 # type: uint64_t