I have 2006 impala that randomly will blow cold air at idle. Sometimes if I stop at redlight the heater will blow cold air. If I get the engine above idle by reving the engine to about 1K rpm it starts to blow warm again. The temp gauge remains at the normal spot on the gauge. The radiator and expansion tank are at the correct levels.
It turns out the problem is pretty common with 3.5L Impalas. For some reason these engines lose coolant. Some blame is placed on head gaskets, some blame Dex-Cool. What ever the cause, refilling via the overflow jug can leave an air pocket in the cooling system. The cure is to fill via the pressure cap right to the top. Recheck the level after several heat/cool cycles. Then never let the overflow jug get empty.
Possible stuck thermostat. The "normal" indication on factory temperature gauges cover a huge range. My Eclipse has a factory gauge and an aftermarket gauge. The factory gauge settles in at "normal" for a 160-200 degree range (normal temp is 185). At 160 the car barely makes any heat in the cabin, at 185 it's got decent heat, and at 200 it can light your feet on fire. :-)
Could also be a failing water pump, but that mode of failure is not one I've heard of very often.
No heat or hot air during idle is the result of air gap in the heater core. Open hood, driver side fire wall you will the see the heater core rubber hoses. Remove the two hose clamps. Disconnect both hoses from the metal extension tubes (not the hose clamps located at fire wall, these are to difficult to reach). Use a funnel and fill both heater core hoses with 50/50 Dex-Cool (it does not take much, maybe 8 to 12 oz). Reconnect both hoses and reconnect both hose clamps. Fill overflow reservoir to proper level. Fill radiator to proper level. Now you will have heat at idle.
I have this same problem, and I can tell you exactly what it is. GM vehicles use the coolant DEX-COOL, which is the purple color coolant. In the impala's if the coolant hasn't been changed for a while the dex-cool will leave deposits, or get thick is easier way to think about it. When it runs through your heater core, that silt like deposit will clog the heater core. If it acts like mine did, when the car is idling it will not produce any heat but when you drive there is no problem with the heat. This is because the higher RPM's will allow for the fluid to move through the heater core and produce heat. To fix this you need to flush the heater core backwards and forwards to unclog the heater core. There are two hoses on the right side of the engine, which connect from the top right under the plastic cover to the fire wall. The hose on the left is the inlet and the hose on the right is the OUTLET. Disconnect the hoses from the engine and use a garden hose with a spray tip on it. Put the tip in the right hose and spray water through it. You will see a thick dark purple fluid come out of the other hose. When you see the water come through clear, then switch to the left hose and repeat. do this several times, and make sure your letting the water run through it for at least 30sec to 1min. reconnect the hoses, and replace the lost coolant then bleed the air out of the system. ON THESE CARS IT IS VERY EASY TO LEAVE AIR IN THE SYSTEM BECAUSE WHERE THE HOSES ATTACH TO THE ENGIN IS THE HIGHEST POINT OF THE COOLING SYSTEM AND NOT AT THE CAP. You may have to do this several times, and if it continues, then there has probably been too much damage to the heater core and will need to be replaced.
ALSO, if the coolant is bad enough the whole engine will need to be flushed, and if you don't have the knowhow to do that, I would recommend to take it to a mechanic to have this completed as all components of the cooling system including the reservoir need to be cleaned, flushed and refilled.
To anyone having poor heat or over heat problems with chevy motors 3.5l v6 and 3.4l and any other close to these. Go to Route 66 hot rod high friggin heat problems I did this on my chevy uplander.with a 3.5l v6 cost me under $20 and about half hour of work not 2or 3k at dealer go read this try it I have good heat and was able to bleed all air to get rid of overheat problem. Give it a try