Hello,
If the engine temperature is not getting up to the half way mark this may indicate that the thermostat is stuck open. This makes it so the engine and the heater will not warm up.
It should not be to expensive of a repair if this is the problem.
BMW Technician
Master BMW and Master ASE Certified