MySensors

MySensors is a free and open source DIY (do-it yourself) software framework for wireless IoT (Internet of Things) devices allowing devices to communicate using radio transmitters. The library was originally developed for the Arduino platform.
The MySensors devices create a virtual radio network of nodes that automatically forms a self healing mesh like structure. Each node can relay messages for other nodes to cover greater distances using simple short range transceivers. Each node can have several sensors or actuators attached and can interact with other nodes in the network.
The radio network can consist of up to 254 nodes where one node can act as a gateway to the internet or a home automation controller. The controller adds functionality to the radio network such as id assignment and time awareness.
Supported hardware platforms.
The framework can natively be run on the following platforms and micro controllers. 
Communication options.
MySensors supports wireless communication using the following transceivers:
Wired communication over:
Security.
The wireless communication can be signed using truncated HMAC-SHA256 either through hardware with Atmel ATSHA204A or compatible software emulation and optionally encrypted. The implementation is timing neutral with whitened random numbers, attack detection-and-lockout and protects against timing attacks, replay attacks and man in the middle attacks.
Over the air firmware updates.
The firmware of a MySensor node can be updated over the air using a few different bootloader options: