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