This project is still under development. Actually, version 1 was completed in 2013 with these specs:
1. Server: PHP REST API (not socket server), MySQL
2. Hardware (Base Station):
a) ATmega328P
b) ENC28J60 with TuxGraphics TCP/IP stack
c) nRF24L01+ RF module
3. Hardware (Modules):
a) ATmega328P
b) nRF24L01+ RF module
c) various hardware related to each different Module Type
Problems with version 1 were:
1) RF communication between Modules
and Base Station was encrypted using ARC4 where I actually added one
incrementing-byte into the payload in order to prevent replay attacks.
Later I realized that it was the same problem that WEP encryption has.
More details about this problem here: http://crypto.stackexchange.com/questions/14926/is-this-an-acceptable-implementation-of-arc4-encryption-for-my-system
2)
Another problem was that the Tuxgraphics Stack was used in Server-Mode,
meaning that when you want to control some module in your home (or
wherever), Server had to connect to your Base Station. This means that
you had to open a port in your ADSL router for system to work. This is
not very user friendly.
Version 2 is under development now. Server has been rewritten in NodeJS and the system is now using sockets for communication between Base Station and Server. Encryption is accomplished with AES-128. Each transmission is unique, encrypted and protected by AES-CMAC.
1. Server (socket server): NodeJS + MySQL
2. Hardware (Base Station): ESP8266EX or SIM900 GPRS