Guide step
Start by asking whether the engine really stayed cold
P0125 and P0128 both live in the warm-up branch, but they are not identical. P0128 usually points hardest at an engine that truly warms too slowly or runs too cool. P0125 is narrower: it says the ECU did not see enough coolant temperature to enter normal closed-loop fuel control in time. That can still be a thermostat story, but it can also happen because the coolant signal is lying cold.
Guide step
Why P0118 changes the routing
P0118 is not a thermostat code. It is a false-cold electrical clue until proven otherwise. When the scan tool claims the engine is extremely cold on a known cold soak and then barely climbs during driving even while cabin heat is decent, the graph should lean toward sensor circuit, connector, or wiring trouble before cooling-system hardware.
Guide step
What a real thermostat pattern usually looks like
A genuine stuck-open thermostat usually gives weak heater performance in cooler weather, slow warmup from a cold start, and sometimes a temperature drop once the vehicle gets moving faster on the highway. In that story, the temperature data often looks believable even if it is disappointingly low. P0128 belongs comfortably there, and P0125 can tag along when closed loop arrives late because the engine truly never got warm fast enough.
Guide step
Where P0116 and P2185 fit in
P0116 says the warm-up behavior or coolant signal is implausible. P2185 often creates a colder-than-reality sensor-2 story. Those codes matter because they warn you not to trust temperature reporting blindly. If one sensor says cold while heater output, hose temperature, and fan behavior disagree, stop treating every slow-warmup complaint like automatic thermostat replacement.
Guide step
Use closed-loop timing and heater output as tie-breakers
A car that enters closed loop late, smells rich, and returns poor fuel economy can still be doing that because the ECU is being fed false-cold data. Compare how long closed loop takes, whether the cabin heat is genuinely weak, and whether the upper hose warms suspiciously early. That three-way check splits false reporting from real coolant over-circulation much faster than code wording alone.
Guide step
The practical diagnostic order
First verify the cold-soak temperature reading against ambient. Second watch warm-up trend and note whether the heater output matches the reported rise. Third check whether closed loop arrives late because the engine stayed cold or because the ECU only thinks it did. Fourth only choose between thermostat, coolant level, sensor, or wiring once the physical warm-up story and the scan-data story agree.