have you ran a scanner across the ecm, had that before and found it to be a coolant temp sensor. it read a higher temp even when the temp outside was cold.
Mine read 80 deg. and temp outside was 36 deg.once the engine was warm it was fine. my two cents on this...