Two weeks ago, September 17 marked our 3 year anniversary. In this time Home Assistant managed to grow from a simple script that turned on my lights when the sun set to a kick ass open source project with the best community an open-source project could wish for. This release contains features, bug fixes and performance tweaks by a total of 50 different people! We have also managed to cross the 1000 forks on GitHub. Talking about momentum!
This is a big release as we’ve completely overhauled the internals of Home Assistant. When I initially wrote Home Assistant, still figuring out the ins and outs of Python, I went for an approach that I was familiar with for an application with many moving parts: threads and locks. This approach has served us well over the years but it was slower than it needed to be, especially on limited hardware.
This all changed when @bbangert came around and took on the tough job to migrate the core over to use asynchronous programming. He did an amazing job and I am happy to say that the initial port has been done and is included in this release! On top of that, we have been able to keep our simple and straightforward API at the same time. We are still in the process of migrating more and more components over to the asynchronous API, so expect more speedups and awesome features in the upcoming releases.
There now is support for two new super cool things: Beds and license plates. @technicalpickles created a SleepIQ component that let you monitor the sensor data of your bed. @pvizeli has added license plate recognition based on OpenALPR! This means that you can now be notified about which car is parked on your driveway or in your garage. I also would like to use this opportunity to give a big shoutout to @pvizeli for being such an awesome member of our community. He joined us at the end of June and has helped crush bugs and add awesome features ever since (65 pull requests already!).
On the voluptuous front we have also made great progress. We were able to fully remove the legacy config helpers and have migrated 323 of the 346 components and platforms that needed migrating! This does mean that for some components the configuration has slightly changed, make sure to check out the breaking changes section at the bottom for more info. Thanks everybody for reviewing the Pull requests, testing the changes, and reporting issues.
As you might have noticed, this release has been delayed by 5 days. This was due to a rare, difficult to reproduce problem with the Python interpreter. A huuuuge thanks to all the people that have helped countless hours in researching, debugging and fixing this issue: @bbangert, @turbokongen, @lwis, @kellerza, @technicalpickles, @pvizeli, @persandstrom and @joyrider3774. I am grateful to have all of you as part of the Home Assistant community.
- Convert core from thread-based to be async-based (@bbangert, @balloob)
- New SleepIQ support (@technicalpickles)
- Cover: Vera is now supported (@pavoni)
- Climate: Vera climate devices are now supported (@robjohnson189)
- Climate: MySensors is now supported (@kaustubhphatak)
- Control Home Assistant with keyboard shortcuts (@deisi)
- More voluptuous config validations (@fabaff, @kellerza, @balloob)
- New Nuimo controller support added (@gross1989)
- Sensor: BOM Weather component (@tinglis1)
- Automation: Option added to hide entity (@milaq)
- Sensor: Emoncms feeds now supported (@joyrider)
- Sensor: Mi Flora plant sensor now supported (@open-homeautomation)
- Logbook: Allow filtering entities and hide hidden entities (@wokar)
- Notify: Kodi support added (@chrom3)
- Notify: Support for Simplepush added (@fabaff)
- Sensor: KNX sensors now supported (@daBONDi)
- Wink improvements (@w1ll1am23)
- ISY improvements (@Teagan42)
- Link to relevant docs in config validation error messages (@fabaff)
- Greatly improve the performance of templates (@balloob, @pvizeli)
- Notify - Slack: Support for username/icon (@Khabi)
- MQTT room detection: Away timeout now supported (@mKeRix)
- Climate: Nest can now control the fan (@jawilson)
- Modbus: Major cleanup for Modbus switches and sensors (@persandstrom)
- HTTP: Allow passwordless logins from whitelisted IP addresses (@Danielhiversen)
- Sensor: Yahoo! Finance stocks now supported (@tchellomello)
- Sensor: Set value based on incoming email (@sam-io)
- Light: White value now supported (@mxtra, @MartinHjelmare)
- InfluxDB now allows attaching extra data (@lwis)
- OpenALPR support (@pvizeli)
- Minor features and bug fixes by @fabaff, @w1ll1am23, @turbokongen, @clach04, @mKeRix, @pvizeli, @DavidLP, @nvella, @Teagan42, @ericwclymer, @wokar, @kellerza, @nkgilley, @jawilson, @Danielhiversen, @ej81, @danieljkemp, @balloob, @philhawthorne, @LinuxChristian, @milas, @simonszu, @Cinntax, @irvingwa, @sytone, @kk7ds, @robbiet480.
- Hue config fix (@pvizeli)
- Alexa config fix (@balloob, reported by @lwis)
- Envisalink discovery fix (@cinntax)
- Acer Projector config fix (@pvizeli)
- Fix segmentation fault (@bbangert) 🎉
- Fix nested templates in
data_templatewould incorrectly get cached (@balloob)
- Fix handling SIGTERM and SIGHUP signals (fixes Systemd restart issues) (@pvizeli)
- The template methods
utcnowhave been changed from variables to methods. To get the current time replace
yahooweatherdefault name is now
yweather. Also min and max temperature are now correctly called
ffmpegis now a component for manage some things central. All
ffmpeg_binoptions have moved to this compoment from platforms.
- Config has changed for X10 lights.
- For Wink, make sure your config only contains the access token as in the docs.
- Nest sensor ‘mode’ has been renamed to ‘operation_mode’