The thermostat stuck open would also cause the engine to not warm up properly. OP: what kind of mileage are you getting, has it gone up, down, or stayed the same?
Something you can try is to add MORE coolant (if it needs it). This time though, turn your heater to full blast, blower fan as well. With the engine at idle, add more coolant to the reservoir, but sit in the cabin and rev the engine up to 3k (wait at least 5 minutes before rev...let the engine warm up slowly first). Hold it there for a few minutes and watch the temperature gauge go up to 1/2 way. The heater should be blowing very hot at this point. Check to make sure coolant is making it to the heater core by squeezing the heater hoses going into the firewall (directly behind the transmission bell housing). Also, after a few minutes of the engine at idle, the heater core hoses should feel hot to the touch. If not, then something is blocking coolant from entering the heater core.
The purpose of revving to 3k is to force the water pump to pump into the heater core. I had to do the same thing to get my heater core working, now it blows so hot, I have to keep the heater at 1/2 way, even that is too hot sometimes.
So try that before you change out the thermostat. If, while doing this, the engine doesn't seem to ever get to 1/2 way, then I would say the thermostat is to blame.
Let us know what you find.
Currently owned German vehicles:
2003 BMW X5
2001 BMW R1200c (motorrad)
Previously owned German vehicles:
1996 VW Golf GL
1975 VW Microbus
1981 BMW 528i
1987, 1989, 1990, 1991 BMW 535i
1990 BMW 525i
1998 BMW 328i
1997 BMW 740il
"Non Sibi Sed Patriae"