You may not realize it, but your house is getting smarter. Devices that were once entirely manually controlled, whether it be your thermostat, the locks on your doors, or your porch lights, are now entering an era of autonomy, and the list of devices in the home automation spectrum is continuing to grow. Now that the masses are armed with smartphones, why shouldn’t you be able to control your home…when you’re not home?
Home automation is getting more advanced, smarter, and more streamlined by the day. When you flip a light switch, you expect that light bulb to turn on instantly. For a home automation solution, you need that exact same functionality when controlling your home from a smartphone app; the same speed and reliability.
It’s gone beyond just being able to schedule your lights to turn on at a certain time. Users now expect to be able to monitor their home’s “health,” make changes on the fly, and operate and command their home remotely at the exact moment they want to. As a result, real-time interaction through a data stream network is now a key component of home automation. Without being able to signal your home in real-time, whether you’re on a phone or iPad, you’re not getting that real-time connection and functionality you need.
So where exactly does real-time come into play?
Say you have an event that occurs, like hitting a certain threshold or being located within a specific proximity from your home. You need a system that is bidirectional, one that can constantly send updates through a dedicated channel relaying photonic/thermo sensor broadcasts, but also a signaling channel that can trigger events (a light bulb turning on, a thermostat adjusting temperature, or a garage door opening as you approach it). You need real-time signaling for that on both the send side and the receive side.
What Issues Will A Developer Run Into When Building a Home Automation Solution?
To allow users to control their home in real-time, you need to establish an open connection between Point A and Point B to allow that signaling. Today there are open source technologies like SignalR and Socket.io that use this websocket technology. However, with these technologies, it’s tricky to scale and maintain a system with an always-on heartbeat. With home automation, a user needs to be able to immediately interact with their home when they want to, so an open connection is vital to the functionality of the home automation solution.
Using a real-time service provider rather than a custom, in-house built real-time solution has numerous advantages, including reliability, easy scalability, and security, the most important being reliabiltiy. When you flip that switch, or that threshold is triggered, that signal needs to go through, 100% of the time. This can only be achieved if it’s backed by a redundant, distributed system. The best way to do that is through a globally distributed network with multiple physical buildings around Earth, with fallbacks in the event that one of these datacenters fails.
Let’s just say, if you lock your door through a home automation app, you want that door to lock, every time.
When using a custom solution, you can’t get this unless you invest a substantial amount of money and build a massive real-time infrastructure. That can be challenging to maintain on your own, especially in terms of cost and technology requirements.
How To Use PubNub to Power a Home Automation Solution
PubNub allows you to keep a reliable and redundant connection open between the user and their home automation solution. The PubNub Data Stream Network can easily power the real-time functionality of any home automation solution. By embedding PubNub into a microprocessor, the device has the power and capability to to communicate with your house. With an active, outbound connection through PubNub, 100% firewall closed (so you don’t need to open ports, like Skype or VOIP), you can directly signal your house commands securely in real-time.
To get started, it’s the same function calls as all of PubNub’s other SDKs, a simple two functions, publish and subscribe, send and receive. As always, our APIs are easy to use and implement. I recommend checking out our arduino SDK, https://github.com/pubnub/arduino.