Proxy-Powered Home Automation
The dictionary defines the word proxy as “the authority to represent someone else” which is close to what it means in software programming too.
In a nutshell, a proxy is when one thing stands in for another. You manipulate one thing, and the results are applied to the second.
You might think of it as a mirror image or a clone; that’s another way to describe the important concept of two things that are kept in lock-step synchronization with each other.
One of the most powerful techniques to solving home automation problems is the use of a proxy device.
This is both a basic and an advanced technique and there are many different ways it can be used.
I realize this may not be applicable to everyone, and you may never want to implement an advanced proxy solution yourself, but it worthwhile to understand the basic concepts and why it can be useful.
The Basics: At Some Level, Everything Is A Proxy
I don’t want to play semantic games, but many aspects of a smart home system use proxies without us even thinking about it.
A great example is the common motion detector. You might have a few of these that are part of a self-contained simple device like an outdoor floodlight or part of a large smart home system.
A dumb or regular floodlight works with a manual switch. Switch it on – the lights turns on, switch it off, the light turns off.
With a motion detector, the floodlight turns on or off automatically as the sensor detects motion or lack thereof.
Rather simple, but a motion controlled floodlight is actually two devices. It consists of a device to detect motion combined with a device that emits light.
The motion sensor can use any of a number of different techniques to detect motion – it might use infrared heat, a sound based radar-like signal that bounces off moving objects, or even a video processor that detects changes in the image seen by a camera sensor.
The light emitter is obviously any kind of light fixture itself – incandescent, fluorescent, LED, or other technology that emits light.
Now here’s the proxy thing – When you walk near the motion sensor, you trigger that device which then, on it’s own, causes the light to turn on.
So your action on one device, the motion sensor, results in another device, the light fixture, being controlled.
The motion sensor is acting as a proxy on behalf of the light fixture.
By using a proxy you can do anything you want to the light (turn it on or off) by manipulating the motion sensor instead.
So if desired, you could never interact with the light fixture itself and do anything you want only by triggering the sensor.
This is the essence of using a proxy – one device can be completely controlled by another device instead.
With a smart home system, the “light bulb moment” (sorry for that pun) is when you realize you can break apart the smart floodlight into two products.
The motion sensor and floodlight can be physically separate as they are linked by networking hardware (Wifi or other means) and software.
This gives you the flexibility to place each device where you need them or want them independently.
The motion detector might be at the front gate which is a few yards away from the house, yet it can turn the light outside your front door on or off just as easily.
Now take this into warp drive – the two devices do not have to have any meaningful or reasonable relationship to each other.
The motion sensor can just as easily open your garage door or maybe turn on your sprinklers to drive away the neighbor’s dog when they get too close to your lawn.
Replace the motion sensor with a battery-operated wireless switch like the Lutron Pico control and now you can put a light switch on the other side of the room without any wiring or electrician.
Just as easily add three-way controls to the light in a hall or staircase so you can always turn it on or off no matter which end of the hall, top or bottom of the stairs, or side of the room you enter or exit.
Revelation: User Interfaces Are Proxies
Home automation systems have many different kinds of user interfaces – switches, buttons, voice control, touch screens, gesture recognizers, and off course software apps or programs.
Understanding that all of these interfaces are simply proxies to manipulate the target device – lights, heat, smart plugs, appliances, music, TV, or other devices opens up a lot of options.
It makes it easier to understand why, and how, you can have multiple ways to do the same thing. Not only is it feasible, but it is desirable that you can turn lights on or off by more than one method.
Some people prefer physical buttons, others like to use smart devices like mobile phones or tablets, and still others prefer using their voice.
A well designed home automation system can be built with a modular approach – choose the user interaction methods you want and then link them to the physical devices you want to control.
Realistically this is an aspirational goal and not always achievable. Trying to tune your TV to a specific program using only your voice is a lot harder than using an on-screen program guide or the arrow keys on the remote.
But it is worthwhile to deconstruct systems into user interface “front-ends” as proxies to device control “back-ends” to clarify what the system will do and how it will be done.
Advanced Proxy Concepts
Now at this point if you click and move on, I won’t take it personally. It’s a bit hard to explain the advanced concepts and if you haven’t done any automation programming, but are still interested, please bear with me.
As a compromise, I’m not going to give you step-by-step, click-this, type-that, click-this cookbook style instructions.
My goal here is to only explain the power and theory but not bore you with excruciating details.
If you want to apply this technique, you’ll still have to do some homework and dig deeper a bit on your own, but this will hopefully provide a roadmap to what is possible.
Can’t We all Just Get Along?
In the ideal world, every device would connect and work flawlessly with every system.
The practical reality is that we choose to buy a variety of smart home devices and use them in a mixed environment.
There are benefits to not having only one smart home system to use, one supplier of products, and one approach to any problem.
The “My way or the highway” approach to building systems can be simpler and easier, but there are simply too many tradeoffs that most of us are not willing to make.
Nest thermostats cannot be controlled by Apple HomeKit. Ring video doorbells and cameras cannot send their video to local storage drives. Hue lights stop working if you flip the wall switch off.
Apple devices are elegantly designed but tightly controlled and often very pricey. Amazon Echo is far away the most popular voice assistant but the automation routines it provides are rudimentary.
Google Home is not compatible with Apple or Amazon. It is nearly impossible to stream video from an Android phone to an AppleTV. Sonos speakers work with Amazon Alex and Google Home, but not Apple Siri.
As you can see, the lure of inexpensive, sexy devices for do-it-yourself (DIY) or do-it-for-me (difm) home automation is also a black hole of incompatible systems, software, and hardware.
I’ve written in the past about trying to choose a single eco-system, buying compatible products instead of one-off “hero” or best-of-breed, and adhering to a “keep it simple, stupid” (KISS) guiding philosophy to avoid or curtail these challenges.
Crossing The Chasms
Even with the best of intentions, sooner or later, we all end up with one or more devices that can’t do what we want because they don’t work together.
Our human nature is to try and lash things together and force them to work. Beware that going down this path the results can be far from ideal.
This can take a lot more time than we expected. Discarding the recalcitrant device and buying a different piece of equipment may unfortunately be the more prudent and cost-effective solution but not as much fun!
Nonetheless, if you are determined to make things work, the cross eco-system proxy is the universal tool that can help get you there.
The concept, at its core, is rather simple – Use one device which is compatible with two or more systems as a proxy to another device which is not.
The proxy device can be controlled by either system so it creates the ability to control the second device, by proxy, from either system.
A real example will make this somewhat easier to follow.
Flexible Motion Controlled Lighting
Over the past year, I have been replacing several older lighting systems with Lutron RA2 Select lighting in my own home.
As part of replacing the older gear, I wanted to add motion controlled lighting for our garage lights. We are constantly going in and out of the garage from our kitchen to raid the second fridge.
Having the lights go on and off automatically is a real convenience and I wanted to replicate an older system that had worked well.
The chasm I found is that the Lutron occupancy/vacancy sensor for RA2 works great, but is not supported by Apple’s HomeKit.
Lutron lighting dimmers and switches are certified and support by Apple HomeKit, Amazon Alexa, and Google Home, but certain modules within the Lutron product line, such as the motion sensors, are not.
The Lutron sensor works perfectly when linked directly to the garage lights – It detects motion and turns on the lights.
Although the sensor isn’t compatible with Apple HomeKit, the rest of the Lutron switches and dimmers work perfectly with HomeKit.
In keeping with the KISS (keep it simple, stupid) principle, I would be done and not need anything else anyway.
But in this case, the garage is a multi-function room. It also serves as a makeshift workshop, storage area, and staging area for some home improvement projects.
There are times where I don’t want the motion sensor to automatically turn off the lights and there are some more complicated routines (If certain events happen, do not activate the lights, if other events happen, do not turn off the lights) and I can’t achieve these results without using Apple HomeKit automation routines (or some other automation system).
The Proxy Solution
I solved this integration challenge by using a third device – a Lutron switch as an intermediary proxy. This “proxy switch” is configured and installed, but not actually connected to any light or device.
The Lutron sensor is configured to control the proxy switch, instead of the actual garage switch, based on motion sensing.
With Apple HomeKit (or another automation controller) I have set up two rules:
When proxy switch turns on, turn on garage light
When proxy switch turns off, turn off garage light
With this automation, the basic setup works as it always did. The motion sensor detects motion, turns on the proxy switch, that is detected by a HomeKit rule, which then turns on the Garage light.
To the uninitiated person (i.e. the rest of my household), things work as they always did. Enter the garage and motion will turn on the light, leave the garage and the lack of motion will turn off the light.
The proxy solution allows me to add additional automation rules in HomeKit to do the more advanced functions I want.
I have programmed a rule to disable the motion sensor on weekends during the hours I might be working in the garage on other projects. So now, the lights don’t turn off unexpectedly but they still work using manual control via the regular wall switch or voice control with Amazon Alexa.
By interposing another Lutron switch as a proxy device, I have the ability to create more advanced automation rules because this switch allows me to cross the chasm of incompatibility between the Lutron Sensor and Apple HomeKit.
Using the same technique I have the ability to use Lutron Pico remotes with Apple HomeKit. This allows me to control other automation routines using physical buttons on the Lutron Pico keypad instead of needing to use apps on my iPhone or talk to Amazon Alexa or Siri.
The proxy device is a great tool for overcoming device and system limitations. I just caution against overuse – don’t be too clever or you will find yourself scratching your head 6 months later trying to understand what you originally did and how to make any changes.
What Do You Think?
Will a proxy device solve any home automation challenges you have now?