xref: /openbmc/phosphor-fan-presence/docs/control/zones.md (revision 5d6b36206588e2af9467334e12ea2f0e3224b047)
1*5d6b3620SMatt Spinler# zones.json
2*5d6b3620SMatt Spinler
3*5d6b3620SMatt SpinlerZones are groups of fans that are set to the same values and have the same
4*5d6b3620SMatt Spinlerproperties like `default_floor` and `poweron_target`.  The events in
5*5d6b3620SMatt Spinler[events.json](events.md) are then configured to operate on specific or all
6*5d6b3620SMatt Spinlerzones.
7*5d6b3620SMatt Spinler
8*5d6b3620SMatt Spinler## JSON Example
9*5d6b3620SMatt Spinler
10*5d6b3620SMatt Spinler```
11*5d6b3620SMatt Spinler{
12*5d6b3620SMatt Spinler  "name": "0",
13*5d6b3620SMatt Spinler  "poweron_target": 18000,
14*5d6b3620SMatt Spinler  "default_floor": 18000,
15*5d6b3620SMatt Spinler  "increase_delay": 5,
16*5d6b3620SMatt Spinler  "decrease_interval": 30
17*5d6b3620SMatt Spinler}
18*5d6b3620SMatt Spinler```
19*5d6b3620SMatt Spinler
20*5d6b3620SMatt Spinler## Attributes
21*5d6b3620SMatt Spinler
22*5d6b3620SMatt Spinler### name
23*5d6b3620SMatt SpinlerThe zone name.  Required.
24*5d6b3620SMatt Spinler
25*5d6b3620SMatt Spinler### poweron_target
26*5d6b3620SMatt SpinlerThe fan target value set immediately after the power state changes to on.
27*5d6b3620SMatt SpinlerThis is also the ceiling unless `default_ceiling` is specified.  Required.
28*5d6b3620SMatt Spinler
29*5d6b3620SMatt Spinler### default_floor
30*5d6b3620SMatt SpinlerThe default fan floor value to use for the zone, if necessary.  Possibly an
31*5d6b3620SMatt Spinleraction will be configured to be in charge of the floor so this isn't
32*5d6b3620SMatt Spinlernecessary.  Optional.
33*5d6b3620SMatt Spinler
34*5d6b3620SMatt Spinler### increase_delay
35*5d6b3620SMatt SpinlerThis throttles fan increases to the specified delay.
36*5d6b3620SMatt Spinler
37*5d6b3620SMatt SpinlerThe delay, in seconds, between fan target increases, when an action such as
38*5d6b3620SMatt SpinlerNetTargetIncrease requests an increase.  All increases requested
39*5d6b3620SMatt Spinlerinside of this interval are analyzed and if the highest requested target is
40*5d6b3620SMatt Spinlergreater than the current target, this new target is set when the delay expires.
41*5d6b3620SMatt Spinler
42*5d6b3620SMatt SpinlerSome actions may set the fan target directly, such as one that increases the
43*5d6b3620SMatt Spinlertarget when a fan is removed, and this does not apply then.
44*5d6b3620SMatt Spinler
45*5d6b3620SMatt SpinlerOptional with a default of zero, meaning increases are immediately requested.
46*5d6b3620SMatt Spinler
47*5d6b3620SMatt Spinler### decrease_interval
48*5d6b3620SMatt SpinlerThis throttles fan decreases to the specified delay.
49*5d6b3620SMatt Spinler
50*5d6b3620SMatt SpinlerThe delay, in seconds, between fan target decreases, when an action such as
51*5d6b3620SMatt SpinlerNetTargetDecrease requests a decrease.  All increases and decreases requested
52*5d6b3620SMatt Spinlerinside of this interval are analyzed and if the highest requested target is
53*5d6b3620SMatt Spinlerlower than the current target, this new target is set when the delay expires.
54*5d6b3620SMatt Spinler
55*5d6b3620SMatt SpinlerOptional with a default of zero, meaning decreases are immediately requested.
56*5d6b3620SMatt Spinler
57*5d6b3620SMatt Spinler### default_ceiling
58*5d6b3620SMatt SpinlerThe ceiling of the zone, i.e. the highest target that can be set.
59*5d6b3620SMatt Spinler
60*5d6b3620SMatt SpinlerThis is optional and if not specified it defaults to the `poweron_target`
61*5d6b3620SMatt Spinlervalue.
62