Constraints

No additional wiring inside the walls.

All must be confined inside the small space of the wall switch.

Device is battery operated with as less as possible power consumption.

Switch unit

To do so, the wall switch is controlling the Mega's inputs that is setting and resetting the relay.

For the relay I am using a latch relay as it does not consume power during a set state.

After the state is set/reset, using the WiFi transceiver NRF24l01+ information is sent to the base station.

The switch is designed to be able to be turned off remotely and therefore the watchdog is waking the device to listen for an off command.

This approach comes from the need of the project and also it is a major improvement on the battery life. The current configuration allows running on 2 AAA batteries for 2 months.

Base station

For the base station I chose the RasPi as it can act also as a server if needed to hold the DB and the webapp.

Hooked with a NRF24l01, a daemon is listening for events from the switches and inserting them in the DB ( MongoDB).

Also the daemon is responsible in sending off command to a certain switch.

The webapp

Created with Meteor, the dashboard of the web interface displays the current state of all configured switches.

The "on" switches can be turned off remotely from the app.

To do

-- add power consumption calculation based on the historical data to the webapp

-- create a mesh of switches with NRF24Network ( current limitation is at 6 switches)

-- attempt to decrease the power consumption.