It’s probably about time I started describing my home automation project, now that it is starting to look like it might just work. The last thing I am debugging is a weird issue with my relay cards, but I am sure I will have that solved soon.
First, a little background.
I have been wanting to set up a home automation project for years. I knew about Clipsal C-BUS, but it felt too expensive and not that extensible. After speaking to a friend that has an interest in this space, he convinced me that the best way to go was a commercial product called Loxone. It was quite good, heaps cheaper than C-BUS and had really good software to program the thing. Unfortunately, after running for 2 years, the ethernet bus stopped working on the central Loxone Miniserver and I was faced with spending quite a bit of money to purchase the most expensive part of the system. At that point I became aware of Superhouse (thanks @jon) and decided that the best way forward was to ditch the commercial solution in favour of a more open source approach.
I wanted to start with something simple that would be limited to controlling lights. One of my absolute requirements was that light switches and relays must be hard-wired for all the core lights to reduce the kinds of things that would cause a failure.
I started with a light switch controller shown on one of the Superhouse videos, and that worked really well. The only problem was that I was having trouble finding a solution for the actual light switch that you touch that would also be acceptable to my darling wife. It was at that point that a conversation with a friend in the UK led us to start an ambitious project to tick all my boxes.
The idea was simple. Use an off-the-shelf glass capacitive touch light switch from Livolo, and replace the brains with an microcontroller that would communicate via a wired network, and fire relays in the switchboard using a bunch of Superhouse Relay8 boards. It has taken us about 8 months to get to this point, but the results are looking really good.
For those playing at home, each lightswitch has a ESP32 microcontroller, a bunch of sensors (temperature, humidity, ambient light) connected to an I2C bus, and they communicate to all other lightswitches on a CAN bus. We have assumed a supply voltage of 12v, and have built in voltage regulators for 5v and 3.3v. We have exposed the 4 spare GPIO pins, as well as the I2C bus and voltage rails to a header that interfaces to the building cabling via a daughter board. We have only made one version, which has 3 light switches, and each switch has an RGB LED that relates to that switch. Currently, I am using Node Red to bring it all together.
I’m sorry I don’t have any pictures just yet, but everything is still a mess of cables on my bench, and I will add some pictures as I get things permanently installed. If this project is of interest to anyone, I am happy to answer any questions, and would welcome comments.