The protocols for use with the IOT will probably follow industry standards, since currently available protocols are sufficient for our needs and are readily available at very low cost.
Communication between the IOT will probably use IEEE 802.11: 
This is already used with the IOT, but the current implementation is not very robust, due to the limited WIFI ability of the HUZZAH ESP8266.
Transistor to Transistor Logic (TTL) is based on digital voltage levels: Wikipedia TTL
The proposed controller uses direct connections with digital voltage levels to control the relays. This is a limited protocol, since it requires one pin for each line controlled. For example: A 4 relay board requires 4 digital pins from the arduino. The state of each pin (high / low) determines the state of the relay (on / off). Several TTL lines can be multiplexed to expand the number of control lines into addresses - this requires additional hardware.
Pulse Width Modulation (PWM) uses digital pulses of varying widths to transmit information: Wikipedia PWM
PWM used by the digital input lines of the arduino and is currently used in the IOT to communicate with the DHT22 temperature & humidity sensors and the remote power switch transmitter. PWM is commonly used by arduino compatible devices.
The sensors use two protocols:
I2C is a two wire bus protocol detailed as follows: Wikipedia I2C
This is already useful for the IOT, since three of the sensors use I2C and it is commonly used in arduino compatible devices. Also, it only requires 2 pins to support hundreds of devices. Often, I2C device addresses are configurable. When they cannot, workarounds are possible, but require additional hardware.
Pulse Width Modulation (PWM) uses digital pulses of varying widths to transmit information and is documented above.
Transistor to Transistor Logic (TTL) is based on digital voltage levels in electronics and is documented above.
The Serial Peripheral Interface Bus (SPI) is a 4 wire bus protocol: Wikipedia SPI
While SPI is supported by the arduino, it is not very common in arduino devices or in available arduino software. It can be useful for this application, as it can be used for the SD Memory card interface.