So now i have a DC relay being controlled by a microcontroller that turns an AC device on/off using a control line from the microcontroller being fed into a transistor to provide the necessary current for the relay coil.
The relay output is connected to a AC mains plug(female) in which the AC device plugs in(male connector).
I would like to add a status led display with the following states
red (device not plugged in)
yellow (device plugged in + off state / not drawing any current)
green (device plugged in + on state / drawing current)
Any ideas on how would i go detecting these 3 states from the microcontroller?
If I understand how your circuit is made, I would do something like this:
You can use an optocoupler like in this example to detect when your circuit is connected to the AC mains (optocoupler provides the galvanic isolation to avoid damaging the uC), and the coil (or transformer, like in Steven's answer) to sense the flowing current.
In both case 1 and 2 there's no current, and there's no electronic way to distinguish between the two on the socket side. You would need an electromechanical way to detect the presence of the plug in the socket, read: a switch in the socket, though I'm not aware of sockets which have this feature.
To distinguish between 2 and 3 you could use a current transformer or a current sense resistor. The former has the advantage that you have a galvanic separation; you don't want your microcontroller in direct contact with the AC mains voltage. The current in the transformer's secondary winding will generate a voltage across a load resistor if there's current through the primary. The resistor's value will depend on the mains current you want to detect and the transformer's winding ratio.