As a diesel, it may well be suffering the widespread problem of the underperforming thermostat. It's very common and has filled reams of forum space over the years. Of course, you won't get any heating if the coolant's not hot enough, so I'd suggest you first check the actual running temperaure. Don't rely on the temperature gauge to tell to anything. The pointer at 'normal' means very little. If it runs below the 'normal' point, you know it's below 75C, which is pretty poor for everything, heating, fuel economy and engine wear. So, run the Trip Screen Diagnostic test while driving normally and tell us the result. You want it near 90C.
HowTo (see section 7):
https://www.the75andztclub.co.uk/for...ad.php?t=55585
Diesel owners with the low temperature running issue typically fit the in-line thermostat modification with good results. Choose the stat carefully though using advice on here.
TC