Behind the Magic – November 2018
In these Behind the Magic series, we give an overview of what we worked on the month before. Please be warned that the contents might get a little technical now and then.
Soon has finally arrived! Yesterday, we have released Homey v2.0 update as experimental software. This is an open bèta, which means that everyone brave enough can try it out.
So far, the reactions have been very positive. I am incredibly proud of my team and personally this is the best Christmas present I could've received. We still have a few long days of fixing the last small issues and missing features ahead of us, but reading all these enthusiastic reactions gave us an enormous motivational boost.
If you'd like to test Homey v2.0 yourself, visit https://firmware.athom.com. Please read the instructions carefully to know what to expect!
In the remainder of this blog I'd like to show some features we've had the chance to add to Homey v2.0.
Core and Web API
Homey v2.0 is the biggest update to our codebase that we've ever made. The core is now separated from the UI (previously the desktop app, now the mobile app), which means it is now more important than ever to have a well-documented Web API. As a bonus, now that Homey's Web API is rock solid, we will release access to the Web API in the future for 3rd party developers.
To give an example what we use it for: the Homey Smartphone App, Homey Developer, Alexa, Google Assistant, IFTTT, HomeyScript and many more.
Fun fact: in Homey's core, which is not even the mobile app, we've changed 239,517 lines of code over 1444 files, and reduced the codebase by 41% — which usually means less bugs!
We've previously announced that Homey Music would be slimmed down. I'm very satisfied with the new implementation, as it works (period) and looks beautiful. Automatically starting playlists on your Sonos, Spotify Connect, Bang & Olufsen etc. speakers really is a unique experience.
What's changed? Simply put: we've removed playlist management and playing music from Homey's built-in speaker, and added control and Flow support for Wi-Fi connected speakers.
We have increased the security of Homey massively. Not only with HTTPS in your LAN, which in itself is already unique, but also concerning who can access your Homey.
We have imposed restrictions on apps and Web API on what they can do. For example, it's not possible anymore for an app to install a software update, or invite a new user.
As a result, some older Homey Apps using the Web API or even a bearer token from the early days will require an update to work on Homey v2.0. I hope that all community developers will update their apps shortly to the new security model.
Our developer tools have been updated with many useful features for developers.Go check them out if you want to make your hands dirty! A mailing to developers with the Homey v2.0 changes will be sent shortly after we've fixed most bugs.
The old issue tracker on GitHub has been archived as we want to handle all issues through our new Help Center. For developers there are new issue trackers available for the Apps SDK and Web API.
Currently there is no list of known issues available. We have done this to get a better view on how many people actually experience a certain issue. So if you have an issue, no matter how small it is, submit it here. The more information we have, the faster we can create a better product.
Inviting a family member or friend to your Homey has become a lot easier. Previously you had to know their e-mail address, now you simply share a link to them using your preferred communication app.
In the current release, Insights is disabled because we're still working on optimising it. We'll talk about this more at a later time, but I can already say that a desktop web app will be made available for viewing beautiful charts.
Homey already knows its location so why not add a weather service? Well, that's what we also thought. In a Flow, there are Tags available with the current weather, so Homey can tell you after waking up, for example.
Additionally, and this is my personal favorite, a new screensaver has been added that shows the current weather. I'd strongly recommend you to try to see all states. I know I can't wait until the next thunderstorm.
Homey v2.0 has a new section called 'Experiments' where we can test features before they are released officially. This makes it easier to release new things without making business decisions such as "Is this worth our support time?". Experiments can be enabled from More (...) > Settings > Experiments.
Homey now has built-in support for Apple HomeKit. When enabled, you can control all your devices from the Home app on your iOS device, and using Siri using a HomePod or iOS device. There are very few HomeKit accessories for sale, so with Homey's massive support for all brands, this is a much welcome addition for Apple users.
After enabling the Virtual Devices experiment two new device's can be added to Homey: a virtual switch, and a virtual button.
These devices are very useful for creating Flows. For example, when I have connected my Intercom at home with a virtual button, which sends a Logic Web request (more on that later) so I can open the front door like any other device.
Yes, it's a little geeky, but comes in very handy for many use cases.
As mentioned earlier in Our take on speech & music, we've stepped away from improving Homey's built-in microphones. This feature can now be found as Experiment, which felt as the rightful place. Because we really feel there are better options available, we've automatically disabled the microphone for new users as of Homey v2.0.
Homey's Logic feature is a very powerful tool for advanced users and we felt we could do much more with it. Here's a summary.
Variables in Homey have received a massive update. They can now be viewed and edited under More (...) > Logic. You can use these variables in your Flows for all your geeky needs.
Additionally, we have added new Flow cards for logic. The highlights definitely are the Make a Web request and A webhook has been received.
Make a Web request
Every geek sometimes needs to make a Web Request. Homey Flow can now send an http request to any server. Use it as an Action to make a device do something, or as a Condition to check a response's status code and continue the Flow based on that.
A webhook has been received
Starting a Flow from another device is now very easy. Add this card as Event to your flow in the 'When' field, specify an event name and optionally use a tag. From another device, make a web request to https://<your-homey-id>.connect.athom.com/api/manager/logic/webhook/<your-event>?tag=<your-tag> and the Flow will start.
In November we've launched Dutch support for Google Assistant. If you haven't seen it yet, check it out!
In the previous Behind the Magic I also promised that the Smart Home integration would be available shortly. However thus far it has been a very frustrating experience with Google to get it live. We've done all the work required, but suddenly they required that we send many devices to the US for certification, and meet certain requirements that in our opinion invade our users' privacy way too much.
Currently we're negotiating with Google to get this resolved as soon as possible but they're very hesitant so far. When we have news, we'll share.
We've also created new and updated many apps, of which KNX, Brennenstuhl, Luxorparts, Forest, Rainradar, KlikAanKlikUit, Fibaro, Aeotec, Spotify, Sonos and IFTTT.
I'd like to wish you, on behalf of everyone at Athom, an incredible Christmas and brilliant 2019!