@@ -102,37 +102,39 @@ def _check_fan_status(self, config):
102
102
if not self ._ignore_check (config .ignore_devices , 'fan' , name , 'speed' ):
103
103
speed = data_dict .get ('speed' , None )
104
104
speed_target = data_dict .get ('speed_target' , None )
105
- speed_tolerance = data_dict .get ('speed_tolerance' , None )
105
+ is_under_speed = data_dict .get ('is_under_speed' , None )
106
+ is_over_speed = data_dict .get ('is_over_speed' , None )
106
107
if not speed :
107
108
self .set_object_not_ok ('Fan' , name , 'Failed to get actual speed data for {}' .format (name ))
108
109
continue
109
110
elif not speed_target :
110
111
self .set_object_not_ok ('Fan' , name , 'Failed to get target speed date for {}' .format (name ))
111
112
continue
112
- elif not speed_tolerance :
113
- self .set_object_not_ok ('Fan' , name , 'Failed to get speed tolerance for {}' .format (name ))
113
+ elif is_under_speed is None :
114
+ self .set_object_not_ok ('Fan' , name , 'Failed to get under speed threshold check for {}' .format (name ))
115
+ continue
116
+ elif is_over_speed is None :
117
+ self .set_object_not_ok ('Fan' , name , 'Failed to get over speed threshold check for {}' .format (name ))
114
118
continue
115
119
else :
116
120
try :
117
121
speed = float (speed )
118
122
speed_target = float (speed_target )
119
- speed_tolerance = float (speed_tolerance )
120
- speed_min_th = speed_target * (1 - float (speed_tolerance ) / 100 )
121
- speed_max_th = speed_target * (1 + float (speed_tolerance ) / 100 )
122
- if speed < speed_min_th or speed > speed_max_th :
123
+ if 'true' in (is_under_speed .lower (), is_over_speed .lower ()):
123
124
self .set_object_not_ok ('Fan' , name ,
124
- '{} speed is out of range, speed={}, range=[{},{}] ' .format (name ,
125
- speed ,
126
- speed_min_th ,
127
- speed_max_th ))
125
+ '{} speed is out of range, speed={}, target={} ' .format (
126
+ name ,
127
+ speed ,
128
+ speed_target ))
128
129
continue
129
130
except ValueError :
130
131
self .set_object_not_ok ('Fan' , name ,
131
- 'Invalid fan speed data for {}, speed={}, target={}, tolerance ={}' .format (
132
+ 'Invalid fan speed data for {}, speed={}, target={}, is_under_speed={}, is_over_speed ={}' .format (
132
133
name ,
133
134
speed ,
134
135
speed_target ,
135
- speed_tolerance ))
136
+ is_under_speed ,
137
+ is_over_speed ))
136
138
continue
137
139
138
140
if not self ._ignore_check (config .ignore_devices , 'fan' , name , 'direction' ):
0 commit comments