Possible Causes:
- Coolant Level
- Thermostat stuck open
- Heater Control Valve
- Temperature blend door
- Plugged heater core
Coolant Level
Coolant level that's even a little low can affect heater performance. It's near the top of the system so there could be enough coolant to prevent the engine from overheating but not enough to make it through the heater core.
Thermostat stuck open
If the engine isn't reaching operating temperature then suspect a stuck open thermostat.
Heater Control Valve
The heater control valve is inline with the inlet heater hoses running to the heater core. Look for 5/8 inch to 3/4 inch inside diameter hoses that pass though the firewall on the passenger side. Feel the one closest to the driver side at the firewall, this is the inlet hose. If this hose is not hot check the heater control valve. Follow that hose back until you find a valve that has a vacuum line attached to it. Make sure the line going into the valve is hot, if so then pull the vacuum line off the valve. There should not be vacuum present on the hose with the function knob in the floor position. If there is no vacuum on the valve, and the hose between the engine and the valve is hot at the hose between the valve and the firewall is not then you have a bad valve. If there is vacuum on the line then you likely have a bad function switch.
Temperature blend door
While that switch looks mechanical it's actually a potentiometer that controls the temperature blend door actuator.
This will require further testing, with a DVOM. Leave me a comment if everything else checks out.
Plugged heater core
If the inlet hose (closest to drivers side) is hot at the firewall and the outlet hose is only warm or cool you have a plugged heater core.