It may be your coolant temp. sensor. It tells the ecu the temp and then will send info to the fan switch. So your fan switch maybe good and the temp sensor is bad. Had a similar problem. Best bet change them all. Cost just under about 100 bucks for all of them and its worth knowing all of them are brand new.