I believe smartctl and smartd are a start for what you’re looking for.(along with their configurations)
from the smartd manpage
Ignore device Attribute ID when tracking changes in the Attribute values. ID must be a decimal integer in the range from 1 to 255. This Directive modifies the behavior of the ‘-p’, ‘-u’, and ‘-t’ tracking Directives and has no effect without one of them.
This is useful, for example, if one of the device Attributes is the disk temperature (usually Attribute 194 or 231). It's annoying to get reports each time the temperature changes. This Directive may appear multiple times for a single device, if you want to ignore multiple Attributes.
In case anyone else was trying to figure this out, here is what I found. The smartd temperature reports are a not right for many drives. The number shown is actually a composite of several temperatures.
Several sources on the net people suggest -I 190 and -I 194 as you suggest. However I did find that the -w flag seems to track temperature changes more accurately so I ended up using -w 4,45,55. I believe this will only record changes >4 degrees, and log an alarm at 45. My full config ( /etc/smartd.conf) per drive is:
/dev/sda -a -o on -S on -s (S/…/…/./02||L/…/…/6/03) -I 190 -I 194 -w 4,45,55
I have it set to do a short test each day at 2AM and a long test Saturday at 3AM.