The JSON config for the fan monitor application is broken up into 2 sections - fan configuration and fault handling configuration.
Fans are individually configured in an array:
"fans": [ { // Configuration entries }, ... ]
The available configuration entries are:
This contains the inventory D-Bus path of the fan.
"inventory": "/xyz/openbmc_project/inventory/system/chassis/fan0"
Required.
This is the number of seconds to wait after system PGOOD before the tach feedback sensors will start being compared to their targets to look for faults. This gives the fans a chance to ramp up after a cold start.
"monitor_start_delay": 30
This is optional and defaults to 30s.
This contains the number of seconds a fan rotor needs to be within spec before it is set back to functional from nonfunctional.
"functional_delay": 5
This is optional and defaults to zero.
This contains the number of seconds a fan rotor needs to be out of spec before the tach sensor, and possibly the fan FRU depending on the configuration, will be set to nonfunctional.
TODO
For fan FRUs that have more than 1 rotor and hence tach sensor, this defines how many tach sensors in that fan FRU must be set to nonfunctional before the fan FRU inventory object it also set to nonfunctional.
"num_sensors_nonfunc_for_fan_nonfunc": 1
This is optional and if not present then the code will not touch fan FRU functional status.
This is an array with an entry for each tach sensor contained in the fan FRU.
TODO
TODO