The magical cloud behind Homey
The Cloud is a term you keep hearing nowadays: cloud services, cloud storages, iCloud, the list goes on. But what exactly is a cloud? What does it do and why does it matter what it does?
In this blog we talk about the cloud behind Homey.
What even is a cloud?
Remember those huge rooms filled with gigantic computers and servers back in the old days? These were shared by multiple users via connections through shared terminals, while most of the actual computing was done by the computers and servers in these huge rooms.
Add in the distance of an internet connection between the users and the computers and it starts to look an awful lot like cloud computing. A cloud can be described as an abstract term for an environment in which servers work. An array of computers that are connected to one another and meant to operate as a single ecosystem.
The cloud, to Homey, is part of the ecosystem your Homey needs to do everything you love about Homey. It facilitates the infrastructure needed for Homey to connect to our servers (in Ireland). Homey's cloud facilitates users to download apps from our appstore to Homey, send push notifications, transcribing speech commands, and logging in to devices through OAuth (‘Do you want to give this application access to …’ dialogs).
For instance, when you give Homey a command, 'Okay Homey, turn off the lights', the cloud is essential in communicating this message to our servers. And if you have a Flow that sends a push notification to your smartphone when someone rings the doorbell, you'll need the cloud.
The servers Homey communicates with through our cloud can transcribe your command into something Homey can understand and act upon. Therefore, it can be described as the external infrastructure Homey can talk to.
What are the benefits of the cloud?
Having our cloud takes away the headache users would experience if they had to manually connect Homey to a router for it to be able to 'talk' to the servers, and follow complicated technical protocols in order to connect certain devices to Homey. Even though Homey is designed to be mostly independent of cloud services - Homey works 99% offline with your devices, and is fully accessible locally - our cloud makes external connections as smooth as possible.
Many devices can't be controlled from outside your home. Because Homey is always at home, you can always reach your Homey through a secured connection to our cloud.
The result is that users can tap into the cloud for very specific commands without having to deal with the setup and maintenance of the cloud itself. Essentially, it allows users to store and access data and applications on the internet, rather than using a physical hard drive. A very large one at that.
Why not do this locally?
A lot of Homey's functionality is, in fact, local. Users can always reach Homey locally. The cloud is merely used for external communications. For instance, without our cloud, Homey would not be able to install apps from our appstore (which actually is possible through the command line), send out push notifications, recognise speech commands, or logging in to devices through OAuth. The vast majority of Homey's broad set of functions is locally accessible.
Speech commands are also directed through the cloud. When you talk to your Homey Smartphone App, the message is sent through the cloud to a service that transcribes speech into textual data. This is tangible information for Homey. Once transcribed its sent back to Homey, and Homey can understand the command and execute whatever it contains.
However, transcribing commands requires tremendous computing power. Using cloud technology to transcribe commands makes Homey more (cost-)efficient. Aside from that it brings a lot of ease and comfort for users. Cloud technology enables users to use the Homey Smartphone App from wherever. This way, users can access Homey from across the street, across town or even from the other side of the world.
Security is of utmost importance to us. We want to keep your data save. Most of your personal data is stored locally; account information, your devices. The cloud is merely used as some sort of tunnel users can use to access Homey from a distance. You can send a command through the cloud, and the servers on the other end signal Homey to do something.
Even information of functions such as Homey Insights are stored locally. Only the things that are absolutely necessary for Homey to communicate with the outside world are stored in the cloud.
Security within security
Even within our cloud service provider, Amazon, we have our own virtual private cloud. It's our own shielded datacenter within Amazon. It's a safe environment in which users can talk to their Homeys. A safe space not just anyone can get into.
Maintaining the Cloud
At Athom, we have someone working on maintaining the cloud full-time. Continuously passing through improvements and monitoring data, he quickly spots issues with applications that run on Homey. By monitoring and reviewing the servers, these issues are tended to quickly. For instance, if the server load of a certain application is drastically increasing, our cloud orchestrator adjusts when necessary to prevent future difficulties.
A requirement of maintaining a cloud is being proactive. We want to fix problems before they occur at our users' end. Right now, we have a stable environment in which Homey works and keeps working. Problems that might occur are quickly fixed.
Hopefully this gives you a clear overview of our cloud, and its benefits to you, the user.