define(`TITLE', `RelayBox')
define(`DATE', `2015-06-05')
define(`CONTENT', `
Have you ever been in the situation that you are on the way to the office, or even more worse into holiday, and you can not remember certainly enough whether you switched off the oven or the tumble dryer. I was so often in that situation that I decided to make this:
On the first photo you see three high current switches (and on the right hand side two MBus power meters), on the second photo is the control stuff. From the bottom to the top there is a Meanwell power supply with 24V DC output for the switches and next to it a 5V SMPS for the Arduino. In the middle left is a card with eight opto coupler and an insulating DC-DC-converter for the feedback from the switches and on the right hand side an Arduino Mega with an Ethernet Shield. On top left just a row of screw terminal and on the left hand side a 8 port relay board from SainSmart. It is so cheap on ebay (only about 11€) you can not make it on you own - the parts would be more expensive.
For eight ports 16 input and 16 output pins on the Arduino are required: eight in and eight out for feedback and relays, eight in and eight out for push buttons and signaling LEDs (they are not on the photo).
This thing is controlled using the MQTT protocol too. A small Python coded webapp also siting on the broker serves as UI:
("Waschküche" is laundry room, "Küche" is kitchen and "Herd" is oven.)
The thing publishes every second the status of the switches via MQTT:
[code language="javascript"]
{
"data":{
"uptime":75407,
"switchStates":[
{
"stateConflict":0,
"index":0,
"state":1,
"feedbackState":1
},
{
"stateConflict":0,
"index":1,
"state":1,
"feedbackState":1
},
{
"stateConflict":0,
"index":2,
"state":1,
"feedbackState":1
},
{
"stateConflict":0,
"index":3,
"state":0,
"feedbackState":0
},
{
"stateConflict":0,
"index":4,
"state":0,
"feedbackState":0
},
{
"stateConflict":0,
"index":5,
"state":0,
"feedbackState":0
},
{
"stateConflict":0,
"index":6,
"state":0,
"feedbackState":0
},
{
"stateConflict":0,
"index":7,
"state":0,
"feedbackState":0
}
]
},
"metadata":{
"device":"RelayBox"
}
}
[/code]
The sources for the webapp are here: RelayBoxWebApp
The sources for the firmware are here: RelayBox
')