IKEA Trådfri: Internet of Things done right

Last month IKEA released a new home automation lineup called Trådfri. It consists of white bulbs, dimming remotes, color temperature remotes and motion sensors. After almost two weeks of research, we have come to the conclusion that this is going to be the perfect companion hardware to work with Home Assistant. Here is the gist of our breakdown:

  • Works out of the box. You can get started by just buying the already paired light and remote. You only need to buy the gateway if you want to set time-based rules for your lights or use your phone as a remote.
  • Local only hub. No cloud that gathers data about how you live your life and it will keep working even if IKEA stops supporting it.
  • Based on open standards. It uses Zigbee between devices and CoAP/dTLS to talk to the gateway. This means that you are not locked into a single vendor. You can pair it with Philips Hue bulbs and other compatible vendors.
  • Affordable. Lights start at $12 standalone and $20 if bundled with a remote (USA prices).
  • Useful design. The gateway has built-in space to hide excess cables and remotes come with magnetic holders for on the wall.
  • Able to subscribe to changes (local push). Automations will be able to instantly respond to changes to device states by subscribing to the gateway for changes.
  • Full integration in Home Assistant 0.43 (scheduled for release April 22). Our community built a standalone library pytradfri and we use it in Home Assistant. Home Assistant will automatically discover gateways on your network and guide the user to set them up.
  • Downside: no integration with other systems yet. There are rumors that Homekit support will land in October and I expect both Google Home and Amazon Echo to eventually add support. Use Home Assistant to connect them all in the meanwhile.
  • Semi-downside: you can’t control your lights remotely. Because it’s local only, you won’t be able to control your lights remotely unless via a third-party integration.

Full breakdown available after clicking read more.

(Note: we are not affiliated with IKEA nor do we receive commission for sales. We are just big fans of their new line up!)

Read on →

1 year and 22 days ago I had an idea...

1 year and 22 days ago, or 387 days ago, on March 25th, 2016, I started a project to bring Home Assistant to the iPhone.

I thought the existing notification and location solutions were lacking in one way or another and had wanted for years to have a project I could call my own which would allow me to learn iOS development. What better way then implementing an extremely complex application like Home Assistant?

I started with a lot of steam. I remember cranking out the initial work that night and showing Paulus who was astounded at how fast the UI was coming together.

Little would I know how many problems I would create and uncover throughout the process. Writing a mobile app for a project that moves as fast as Home Assistant is… tricky, to say the least. In the time since I started writing the app, Home Assistant had 90 releases. I started writing the day before 0.16 was released. Now we are at 0.42.3. Time flies…

I couldn’t have completed the app without help and input from the community. By the end I had 700 beta testers, of which about 500 were very active in testing the app.

I received emails and forum posts almost every day, even when the app would go without an update for weeks and sometimes months at a time as my life got busier and busier.

I wanted this app to be done 9 months ago, at least, but my drive to add more and more features killed that idea. This really taught me the value of the MVP over the kitchen sink.

It may not look the way that I wanted it to initially, with beautiful native UI components, but that’s okay. What I really cared about is there. The notification and location engines are some of the most customizable and powerful available in an iOS app if I do say so myself. I made them this way to keep with the spirit of infinite flexibility that is enshrined in Home Assistant.

Just because the app is released doesn’t mean we are at the end of the road. It’s only the beginning. There’s plenty of bugs to fix still, improvements to make, features to add. Beta testing will continue, and if anything, be expanded. I do want to have a native UI someday, but that’s pretty hard with how fast the project moves.

The biggest request I have is for more developers on the project. As many of you know, I have my hands in many different parts of Home Assistant, from governance and organization to managing the forums to writing this app, managing the Homebridge plugin and even sometimes writing code for the actual core codebase! I can’t do it all, and I’m still a new iOS developer who doesn’t know all the best practices.

The app is open source, has been for the last few months when I first prepared to submit it to Apple for review. I invite Swift developers to come and join me in building it. Trust me, there’s tons to do.

1 year and 22 days ago, on March 25th, 2016 I began work on Home Assistant for iOS.

Today, April 16th, 2017, I am extremely excited to announce that Home Assistant for iOS has been approved by Apple and is now available to download for a monthly subscription starting at $9.99 free! (had to get a joke in here somewhere!) on the iOS App Store in every country.

Please note, you must have Home Assistant 0.42.4 or later installed for the app to function properly.

Thanks for everything so far, I’m looking forward to the road that lies ahead for Home Assistant on iOS!


Home Assistant 0.42: Eddystone Beacons, Lockitron locks and Total Connect alarm systems

It’s time for Home Assistant 0.42. This release has been focused on refining the system and fixing a lot of bugs. We have also upgraded to the latest version of our HTTP library which should give us a significant boost serving files and API.

On our social media front, we have crossed the 1000 likes on our Facebook page! Also on the social media front, the YouTube channel diyAutomate has been putting out a lot of great getting started videos about Home Assistant, go check them out!

Also want to take a moment to thank Austin Andrews aka Templarian for his Material Design Icons. He is part of what makes Home Assistant so beautiful 🤗.

New integrations

Read on →

Thomas Krenn award 2017

You may already know from our social media channels and the release blog post for 0.41: We are now an award-winning Open source project. The jury of the Thomas-Krenn-Award put us on the 2nd place. This is an awesome achievement for an independent community project.

I would like to thanks all contributors. Your endless effort made this possible.

The prize beside the very nice trophy contains hardware and we want to give that hardware partically away. We won four Low Energy Server v2 (LES) units with an Intel Celeron N2930, 8 GB of RAM, and a mSATA of 128 GB (one unit with 64 GB). We were thinking about to keep one of those units in Europe and one in North America for testing and to use during workshops and events. But the other two will go to interested parties.

As a raffle would be to easy, we make a contest out of it. This means that we are looking for your application. Of course, we would like to see those systems goes to active or future developers who can justify their need for one of the systems to run CI, UI tests, public accessible Home Assistant demo instances, etc. At the other hand we would like to keep it open, to see with what people are coming up. Please participate as well if you are planning to automate the public school of your kids with 1000 switches or light, need a server to run it, and want to provide regular feedback about the user experience.

Create an entry in our Forum. Be creative and use your imagination.

The details

  • Jury: The Home Assistant community
  • Dead line: April, 23 2017 - 23.59 UTC
  • Voting period: April, 24th till April, 30 2017 - 23.59 UTC

The decision of the jury will be final. If there will be a dispute then the Top-5 committer of the Home Assistant organization on Github will decide. Also, we reserve us the right to ban applications if we suspect cheating or unfair methods. Updates will be available in the Forum and on Twitter.

Keep in mind that you may have to pay the fee for customs handling and the import duty by yourself. The plan is to ship the hardware from Germany. If you are located in a country with import/export regulations, we may not be able to ship the hardware to you.


HTTP to MQTT bridge

The idea of creating HTTP to MQTT bridge appeared when I was trying to integrate Google Assistant with my Home Assistant after watching BRUH Automation video. Right now there is no MQTT service available in IFTTT. Existing integration solution uses Maker Webhooks which requires that your Home Assistant instance is publicly accessible, which I think brings some security concerns or simply not always possible to set up.

The HTTP to MQTT bridge should fill that gap. The idea is to receive messages using HTTP requests and transfer them to your MQTT broker, which can be contacted by Home Assistant. The HTTP to MQTT bridge is written using Node.js with Express for the server part and MQTT.js for the client.

Read on →

Home Assistant 0.41: Tado, Volumio, Workday, improved Plex

Welcome to 0.41. There was a lot going on in the last two weeks. Not only from the code side but also from the social one of Home Assistant. Paulus did an interview with OpenSourceCraft, Fabian did a workshop at the Chemnitzer Linux Tage, and we are now an award-winning Open source project (I will cover that in a separate blog post).

Plex

@JesseWebDotCom made massive changes to the Plex media player platform. From better metadata support over new configuration options to improved controls and non-controllable clients.

Component overview

The Components overview is now powered by search/filtering feature. This will make it faster to get the component/platform you are looking for more quickly. Thanks again, @bdurrer for this.

Changelog

The new format of the changelog which was introduced with 0.40 will provide a link to the related pull request. We are not covering everything in our release notes but we think that this addition will make it easier to find details about the change.

New platforms/components

Backward-incompatible changes

  • The Kodi notifier platform was migrated to async and the configuration synced with the Kodi media player platform (#6497).
  • For the Music Player Daemon (MPD) platform was location replaced with name (#6553).
  • Event decorators were removed (#6634).
  • The Emby mediaplayer platform was changed to avoid name clashes (#6664).
  • In a lot of places were the power and energy units update. This change mostly affects the switch platforms (#6212).
  • If set to auto then the MQTT implementation will use the bundled certificates automatically (#6707).
  • Autodiscovery of Android IP Webcam was removed (#6528).
  • The frontend is now using Shadow DOM and this could break your custom panels (#228).

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.

Read on →


0.40.2 and broken dependencies

TL; DR: We have just released version 0.40.2 that includes a fix related to the installation of dependencies.

Some users in the last few days have been reporting that their Home Assistant installation fails to start with an error in the http component:

ImportError: No module named 'aiohttp.file_sender'

The problem is that Home Assistant did not handle the case where a dependency would want to install a core dependency of Home Assistant that is newer than what Home Assistant works with. For now, we have identified the following two components that can cause this issue:

  • AppleTV (0.38+)
  • Android IP Webcam (0.40+)

This issue has been resolved by 0.40.2. If you are on an impacted version and cannot upgrade to the latest version just yet, a temporary workaround will be to remove the <config dir>/deps directory and stop using the above mentioned integrations. In the case of AppleTV, you will also have to disable the discovery component to prevent it from being auto-detected.


Home Assistant 0.40: Turn any Android phone into an IP Webcam

It’s time for version 0.40 already! For this version, the main focus was on performance and bug fixes. Big thanks to @pvizeli for driving this effort. Startup is now super fast. We have also continued with adding warnings for components and platforms that are slowing down Home Assistant.

Some people have interpreted our recent added warnings as if 0.39 introduced the issues that caused the warning. This is not the case, the platforms and components have been misbehaving for a while but now we are adding warnings so we are able to track down the culprits.

Before we continue talking about all the improvements in this release I want to take a moment to thank a few people from the Home Assistant community that are fundamental to the success of Home Assistant. Big thanks to @dale3h, @CCOSTAN, @skalavala, @rrubin0, @brahmafear, @bassclarinetl2, and @torn8o! These are all people that hang out in our main chat channel and help new users get started and help existing users when running into trouble. Home Assistant would not be there without all the effort you put in! 🙇

And that our community kicks ass is also shown in the numbers. We have already raised together over $700 for the EFF via the sale of our t-shirts! All of you rock! Another number worth mentioning is that this release brings us passed 600 integrations for Home Assistant. All of you rock, again!

Z-Wave is now threadsafe

@andrey-git has spend a lot of time to make Z-Wave perform better. It should no longer cause Home Assistant to run slower or raise warnings about the timer getting out of sync.

Update on the MQTT Out of Memory errors in 0.39

MQTT started causing “Out of Memory” errors for some people on a Raspberry Pi. We have been able to track this down to Raspberry Pis that are using an older firmware. If you are experiencing this issue, please upgrade your firmware using rpi-update.

Turn any Android phone into an IP Camera

With the new support for IP Webcam added by @robbiet480 and @pvizeli you are now able to re-purpose any Android phone to become a multifunctional IP webcam. Some of the cool things that you can do:

  • Integrate the Android device camera
  • Binary sensor when motion is detected
  • Sensors to expose the device sensors, including pressure, sound, battery, light
  • Control device features like the GPS, night vision and camera flash

Screenshot of all the different functionality the IP webcam integration offers.

Other Highlights

  • Support added for Austrian weather using Zamg weather data (@Zac-HD)
  • Ring.com video doorbell integration added (@tchellomello)
  • Blink Home Security Camera support added (@fronzbot)
  • AppleTV has been converted to push data to Home Assistant instead of us having to poll (@postlund)

Backward-incompatible changes

  • Vera entity ids have changed. This is a one time change to migrate to a model that will prevent future conflicts.
  • The Twilio notify platforms now have to be configured via the twilio component.
twilio:
  account_sid: "abc"
  auth_token: "xyz"
  • If you are using async custom components, the passed in async_add_devices method is now a callback instead of a coroutine function.

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.

Release 0.40.1 - March 16

Release 0.40.2 - March 22

Hot fix release to fix dependency issues. More detailed information about the issue in this blog post.

  • Prevent dependencies that are installed on demand from installing different versions of core dependencies (@balloob - #6738)
  • Upgrade PyChromecast to silent some benign errors (@balloob - #6702)
Read on →

0.39: Configuration panel, state restoration and improved docs

It’s time for 0.39 and this release has some amazing new features!

T-Shirts

First off, in case you haven’t seen it yet: we have t-shirts now and they are beautiful. All proceeds from the shirts will be donated to the Electronic Frontier Foundation. The first three days all of you have already raised $400! Still waiting for Teespring to get back to me so stay tuned for the EU store.

Configuration panel

Yep, you read that right. We have a configuration panel. It’s just the first of many small steps. Putting in a foundation is important and gives us something to iterate on.

To start, we have three simple configuration panels:

  • Core: allows you to validate config, reload core/group/automation config and restart/stop Home Assistant
  • Group: allows you to rename groups, change type between group/view and reorder entities.
  • Z-Wave: allows you to set device specific configuration settings

Screenshot of our new configuration panel.

As a security measure, the configuration panel will need to be activated in the config file to be activated. This can be done by adding the following to your configuration.yaml:

config:

Using our configuration panels will require you to structure your groups and Z-Wave device config according to how the configuration panel expects it. This is on purpose as it we will not be aiming to build a system that supports both our extended set of configuration extend hooks and our configuration panels. It’s one or the other.

To activate them in your config, create empty files groups.yaml and zwave_device_config.yaml in your config dir and add the following entries to your config:

group: !include groups.yaml

zwave:
  device_config: !include zwave_device_config.yaml

Note that this is the first release. Things will be missing, things might be broken.

Reorganized documentation

Thanks to Fabian we have a great re-organized documentation. Is it perfect yet? No. But we are getting close. We put a lot of focus on making sure the Raspberry Pi is the main focus of our getting started. The other instructions are still available, just not as part of the main getting started.

State restoration

Ever have some input components or integrations and get annoyed with the fact that their state is lost after a restart? Don’t worry any longer. Johann has added the foundation for state restoration to Home Assistant. For the initial release support has been added to input_select and input_boolean components. We will be adding this to more integrations in the future.

Backward-incompatible changes to customize and Z-Wave “customize”

A couple of releases ago we introduced a new way of doing customize. It became a list that allowed different ways of matching the config to the entity.

We realized that this was leading into a rabbit hole that we had to get out off. Besides making it unnecessarily complicated it also blocked the road to config panels. And who doesn’t like config panels?

So starting this release, we had to make some backward-incompatible changes to right the wrong. We will be releasing an online tool to help you convert your config to the new format later today.

Update: the online tool can be found here.

Customize has been reverted to its original config

The old customize is back. The options to match by domain or using glob have been moved to its own options. It will now look like this:

homeassistant:
  customize:
    light.kitchen:
      hidden: true
  customize_domain:
    light:
      icon: mdi:home
  customize_glob:
    "light.kitchen_*":
      icon: mid:description

Z-Wave customize is now device config

Ever wondered why the Z-Wave customize was called customize? Yeah, so did we. So when migrating this to the new config format, we decided to upgrade the name too:

zwave:
  device_config:
    light.kitchen:
      ignored: true
  device_config_domain:
    light:
      polling_intensity: 2
  device_config_glob:
    "light.kitchen_*":
      polling_intensity: 0

Speed improvements

And a final shout out to Pascal. He keeps improving the performance of components and platforms all over Home Assistant.

Read on →