Go Down

Topic: Concept for Home Automation (Lights) (Read 38 times) previous topic - next topic

jtnieder

Few things before I ask my real question. First, I'm looking to have various things in my house controlled via an Arduino based home controller that will reside in my basement. Second, control will be driven by an MQTT server that will send/receive the messages. None of this stuff is in place yet as I'm still in the design stages. Third I'm really only talking about the lights for now.

Ok, the overall design that I've liked the best so far of what I've seen out there follows a pattern similar to how Jonathan Oxer (superhouse.tv) has developed his framework. I won't go into details, but I encourage you to visit his site and watch his videos. My first automation to tackle will be light control. I have a 2 story house but it has a full basement which is where all the wiring terminates/originates. I have two big breaker boxes full of circuit breakers. In *most* cases those breakers control lights OR outlets in a given room (I had the breakers wired by rooms, not walls, so rarely is a single circuit shared in multiple rooms). For now let's ignore any circuits that travel to outlets and THEN to light switches.

So, in a basic setup, I'll have a wire leaving a breaker and traveling to a switch and then on to a light or bunch of lights. Sometimes the switches are 3-way (i.e. two switches controlling the same lights). Jonathan had the advantage of having his walls open when he ran his wires, but I do not have that luxury. However, I still want my controls hard wired, so except in rare circumstances I want to avoid wireless.

I also wanted to be the least invasive to my family so they could go on using the house as they do today. What I was thinking was to open up the switch boxes and directly connect the wires, thus bypassing the switches. Then I'd run a Cat5e wire from the same box down to the basement where the home controller (Arduino) will reside. I'll then reroute the wire coming out of the breaker to instead come out of a relay, then put in a new wire from the relay box to the breaker box as so:

breaker-->relay-->switch-->light

The wiring will be similar to this concept (https://www.arduino.cc/en/Tutorial/InputPullupSerial) where I will use one of the twisted pairs to connect to the switch. In theory, I could connect 4 switches in this manner to a single Cat5e. I'd put the striped wire in the pairs to ground and the solid color wire to power. Thus, flipping the switch would either pull the pin low or high. The code would simply send the appropriate MQTT message accordingly. Note that the idea here would be that each light switch in the house would simply toggle the light since you could also toggle the light by other inputs (phone/Alexa/etc.) that would also send the appropriate MQTT message.

I have numerous lights in the house, so I'll need more I/O than on a standard Arduino (probably even Mega), so I'll need to expand the I/O somehow - not sure what method (shift register, I2C, etc.) would work best.

Looking for guidance on this design or any advice. Am I on a right path here? Will this concept work the way I'm hoping?

Thanks so much!

(more info for some potentially complicated scenarios)
Now, regardless of how the above 'simple' conditions are handled, I have more complicated ones that presumably will require new wiring run. Some rooms (I think) have the switch lines running out of outlet boxes, which means a relay installed after the circuit would also affect the outlets. This is not desirable, so presumably I'd need to run a new wire from the switch to the basement to a new circuit. Hopefully I don't have this much.

Another problem might happen in the kitchen where I have 3 'zones' of lights that are all fed from a single circuit to the basement. Ideally I'd like to control these 'zones' individually, but again, seems like it would need new wires.

Of course, in these weird areas, I might break down and put in a Sonoff or my own flavor of an ESP8266-controlled device to handle the separation problems....

Go Up