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#actions:
11#    - name: [The name associated with a supported action function]
12#      description: [A user description of what this action does]
13#      parameters:
14#          [Ordered list of required parameters for the associated function]
15#
16#events:
17#    - name: [A unique name for this event]
18#      zone_conditions:
19#          - name: [The name of the zone condition]
20#            zones:
21#                - [Zone number to include this set speed event with]
22#      group: [A group name from the list of groups]
23#      interface: [The Dbus interface on the group members' object path]
24#      property: [The property name and type on the interface to be used]
25#      action:
26#          name: [Name of an action from the list of actions]
27#          [List each required action parameter with a defined type and value
28#           for this event. The 'property' parameter utilizes the same type
29#           defined under the 'property' attribute.]
30
31#Example:
32#groups:
33#    - name: zone0_fans
34#      description: Group of fan inventory objects for zone 0
35#      type: /xyz/openbmc_project/inventory
36#      members:
37#          - /system/chassis/motherboard/fan0
38#          - /system/chassis/motherboard/fan1
39#          - /system/chassis/motherboard/fan2
40#          - /system/chassis/motherboard/fan3
41#    - name: zone0_ambient
42#      description: Group of ambient temperature sensors for zone 0
43#      type: /xyz/openbmc_project/sensors
44#      members:
45#          - /temperature/ambient
46#    - name: occ0_object
47#      description: Dbus object containing OCC0 properties
48#      type: /org/open_power/control
49#      members:
50#          - /occ0
51#    - name: zone0_regulators
52#      description: Group of regulator temperature sensors for zone 0
53#      type: /xyz/openbmc_project/sensors
54#      members:
55#          - /temperature/p0_vdd_temp
56#          - /temperature/p1_vdd_temp
57#    - name: zone0_dimms
58#      description: Group of dimm temperature sensors for zone 0
59#      type: /xyz/openbmc_project/sensors
60#      members:
61#          - /temperature/dimm0_temp
62#          - /temperature/dimm1_temp
63#          - /temperature/dimm2_temp
64#          - /temperature/dimm3_temp
65#          - /temperature/dimm4_temp
66#
67#preconditions:
68#    - name: property_states_match
69#      description: >
70#          All defined properties must match the values given to
71#          enable a set speed event otherwise fan speeds are set to full
72#      parameters:
73#          - groups
74#
75#actions:
76#    - name: count_state_before_speed
77#      description: Set the speed when a number of properties at a state
78#      parameters:
79#          - count
80#          - property
81#          - speed
82#    - name: set_floor_from_average_sensor_value
83#      description: Set floor speed from first entry with average less than key
84#      parameters:
85#          - map
86#    - name: set_ceiling_from_average_sensor_value
87#      description: Set ceiling speed based on key transition values with average
88#      parameters:
89#          - map
90#    - name: set_net_increase_speed
91#      description: >
92#          Set the speed increase delta based on the delta increase
93#          size times the given value and property's value difference
94#      parameters:
95#          - property
96#          - factor
97#          - delta
98#    - name: set_net_decrease_speed
99#      description: >
100#          Set the speed decrease delta based on the delta decrease
101#          size times the given value and property's value difference
102#      parameters:
103#          - property
104#          - factor
105#          - delta
106#
107#events:
108#    - name: missing_before_high_speed
109#      zone_conditions:
110#          - name: air_cooled_chassis
111#            zones:
112#                - 0
113#      group: zone0_fans
114#      interface: xyz.openbmc_project.Inventory.Item
115#      property:
116#          name: Present
117#          type: bool
118#      actions:
119#          - name: count_state_before_speed
120#            count: 1
121#            property: false
122#            speed:
123#                value: 10500
124#                type: uint64_t
125#    - name: set_air_cooled_speed_boundaries_based_on_ambient
126#      zone_conditions:
127#          - name: air_cooled_chassis
128#            zones:
129#                - 0
130#      group: zone0_ambient
131#      interface: xyz.openbmc_project.Sensor.Value
132#      property:
133#          name: Value
134#          type: int64_t
135#      actions:
136#          - name: set_floor_from_average_sensor_value
137#            map:
138#                value:
139#                    - 27000: 3500
140#                    - 32000: 4600
141#                    - 37000: 5200
142#                    - 40000: 5800
143#                type: std::map<int64_t, uint64_t>
144#          - name: set_ceiling_from_average_sensor_value
145#            map:
146#                value:
147#                    - 25000: 7200
148#                    - 27000: 10500
149#                type: std::map<int64_t, uint64_t>
150#    - name: set_water_cooled_speed_boundaries_based_on_ambient
151#      zone_conditions:
152#          - name: water_and_air_cooled_chassis
153#            zones:
154#                - 0
155#      group: zone0_ambient
156#      interface: xyz.openbmc_project.Sensor.Value
157#      property:
158#          name: Value
159#          type: int64_t
160#      actions:
161#          - name: set_floor_from_average_sensor_value
162#            map:
163#                value:
164#                    - 27000: 3000
165#                    - 32000: 4300
166#                    - 37000: 5000
167#                    - 40000: 5800
168#                type: std::map<int64_t, uint64_t>
169#          - name: set_ceiling_from_average_sensor_value
170#            map:
171#                value:
172#                    - 25000: 7200
173#                    - 27000: 10500
174#                type: std::map<int64_t, uint64_t>
175#    - name: speed_changes_based_on_regulator_temps
176#      zone_conditions:
177#          - name: air_cooled_chassis
178#            zones:
179#                - 0
180#          - name: water_and_air_cooled_chassis
181#            zones:
182#                - 0
183#      group: zone0_regulators
184#      interface: xyz.openbmc_project.Sensor.Value
185#      property:
186#          name: Value
187#          type: int64_t
188#      actions:
189#          - name: set_net_increase_speed
190#            property: 85000
191#            factor:
192#                value: 1000
193#                type: int64_t
194#            delta:
195#                value: 400
196#                type: uint64_t
197#          - name: set_net_decrease_speed
198#            property: 82000
199#            factor:
200#                value: 1000
201#                type: int64_t
202#            delta:
203#                value: 40
204#                type: uint64_t
205#      timer:
206#          interval: 5
207#    - name: occ_active_speed_changes
208#      precondition:
209#          name: property_states_match
210#          groups:
211#              - name: occ0_object
212#                interface: org.open_power.OCC.Status
213#                property:
214#                    name: OccActive
215#                    type: bool
216#                    value: true
217#              - name: occ1_object
218#                interface: org.open_power.OCC.Status
219#                property:
220#                    name: OccActive
221#                    type: bool
222#                    value: true
223#          events:
224#              - name: speed_changes_based_on_dimm_temps
225#                zone_conditions:
226#                    - name: air_cooled_chassis
227#                      zones:
228#                          - 0
229#                    - name: water_and_air_cooled_chassis
230#                      zones:
231#                          - 0
232#                group: zone0_dimms
233#                interface: xyz.openbmc_project.Sensor.Value
234#                property:
235#                    name: Value
236#                    type: int64_t
237#                actions:
238#                    - name: set_net_increase_speed
239#                      property: 64000
240#                      factor:
241#                          value: 1000
242#                          type: int64_t
243#                      delta:
244#                          value: 200
245#                          type: uint64_t
246#                    - name: set_net_decrease_speed
247#                      property: 61000
248#                      factor:
249#                          value: 1000
250#                          type: int64_t
251#                      delta:
252#                          value: 40
253#                          type: uint64_t
254#                timer:
255#                    interval: 5
256