1#Example fan monitor definitions for phosphor-fan-monitor 2 3#List the fans that need to be monitored, along with some 4#properties that define how much slack is allowed in the actual 5#tach value as compared to the target tach value. 6 7#fans: 8# - inventory: 9# [The system inventory location for the fan] 10# functional_delay: 11# [Delay (in secs) before a fan is marked functional after returning 12# within the allowed deviation] 13# allowed_out_of_range_time: 14# [Time (in secs) actual speed can be outside of deviation of 15# target speed] 16# deviation: 17# [Percentage that actual speed must be within target speed] 18# num_sensors_nonfunc_for_fan_nonfunc: 19# [How many sensors on the fan must be faulted before fan 20# will be considered faulted] 21# sensors: [array of speed sensors for the fan] 22# - name [The name of the fan sensor] 23# has_target [true|false If this sensor has a Target property for 24# setting a fan speed (otherwise just for reads)] 25# target_interface [The fan target interface used by the sensor. 26# Default is "xyz.openbmc_project.Control.FanSpeed"] 27# factor [The factor to multiply with target to calculate the expected 28# fan speed. Default is 1 for fan speed target; 29# Customized value for pwm target] 30# offset [The offset to add to calculate the expected fan speed. 31# Default is 0 for fan speed target; 32# Customized value for pwm target] 33# condition: [optional condition function to create fan functional monitoring] 34# name: [The name of an available condition function] 35# properties: [The properties used in the condition function] 36# - object: [Object path of property to use] 37# interface: [Interface of property to use] 38# property: 39# name: [Property name] 40# type: [Property data type] 41# value: [Property value to check condition against] 42# 43#sensor_trust_groups: 44# - class: [Group class name 45# Available classes: 46# * NonzeroSpeed - Only trust if at least one sensor in the group 47# has a nonzero speed.] 48# group: 49# - name [The name of the fan sensor in this group] 50# in_trust: [true|false] (optional) 51# [Include in trust determination or not. Default = true] 52 53#The code uses these parameters as follows: 54# After a speed reading of a sensor is outside of the allowed deviation of 55# the target speed for the allowed out of range time, if at least 56# num_sensors_nonfunc_for_fan_nonfunc sensors meet this condition, 57# the fan will be set to nonfunctional in the inventory. 58# 59# Sensor trust groups are used to specify that the speed values for the 60# sensors in a group cannot be trusted based on some condition, where 61# the condition is based on the class used to implement the group. All 62# sensors in the group go in and out of trust based on those defined 63# to be part of determining the trust. This section is optional. 64 65#Example entries for 1 fan system: 66#fans: 67# - inventory: /system/chassis/motherboard/fan0 68# functional_delay: 5 69# allowed_out_of_range_time: 15 70# deviation: 15 71# num_sensors_nonfunc_for_fan_nonfunc: 1 72# sensors: 73# - name: fan0 74# has_target: true 75# # Only create fan functional properties and monitor on air cooled 76# condition: 77# name: propertiesMatch 78# properties: 79# - object: /xyz/openbmc_project/inventory/system/chassis 80# interface: xyz.openbmc_project.Inventory.Decorator.CoolingType 81# property: 82# name: WaterCooled 83# type: bool 84# value: false 85#sensor_trust_groups: 86# - class: NonzeroSpeed 87# group: 88# - name: fan0_0 89# in_trust: false 90# - name: fan0_1 91