I know the X-10 protocol. X-10 is a good choice or is there better?
It depends on what you want. X-10 is very limited. You can only send command messages to devices, and the bit rate is limited to 50 or 60 bits per second. But it is enough for turning things like lights on and off.
For large-scale automation, ethernet over power may be a good idea.
Or, you could try one of the newer protocols. http://en.wikipedia.org/wiki/Domotics lists many of them.
In my system, I've used a CAN bus, at 125kbit/s, using Microchip CAN controller and transceiver. X10 is a really simple and limited protocol, even with bidirectional modules, and it's SLOW! In my old house I had an X10 system with computer control... and there was a 3 seconds delay from the push of a button on the radio remote to the action (RADIO REMOTE -> RADIO RECEIVER -> X10 CODE ON POWERLINE -> COMPUTER RECEIVER -> COMPUTER PROCESS -> COMPUTER TRANSMITTER -> X10 CODE ON POWERLINE -> APPLIANCE/LAMP MODULE)
IP would be my choice, it has become 'the one protocol to rule them all'.
This site has some nice videos of a house being automated this way, he even injected an RFID under his skin!