Deprecating Python 3.4 support

Update February 16, 2018: Home Assistant 0.64 will be the last release to support Python 3.4. Starting with release 0.65, Home Assistant will require a minimum version of Python 3.5.3.

Starting with our next release, 0.55, we will deprecate Python 3.4 support. The current plan is to remove support for Python 3.4 at the beginning of 2018.

Python 3.5 was released on September 13th, 2015. It has since then become the default Python installation on the stable releases of Debian, Ubuntu, Raspbian and Hassbian. Our other own operating system,, is more advanced and is already running the greatly improved Python 3.6.

The jump to Python 3.5 as a minimum version is driven by the Home Assistant core, which is based on asyncio. Starting with Python 3.5, asyncio got improved support in the language with dedicated keywords async and await. As this is the proper way of doing async in Python, we’re seeing a move by async libraries to either only support the new syntax from the beginning or dropping support for the Python 3.4 approach. Not moving along means an increased maintenance burden as we cannot use the latest releases of our libraries. Next to that it will prevent our users from being able to leverage the bug fixes and performance improvements that come with Python 3.5.

If you’re running, you don’t have to do anything. Your system will always stay up to date.


If you’re running Hassbian it’s recommended that you make a backup of your configuration files and restore them on a fresh install. Upgrading an existing installation isn’t recommended.


If you’re on Windows, you’re fine as our minimum version for Windows has been 3.5 for a while now.

Other Debian based systems

If you’re running a Debian based system, follow these instructions to upgrade.

Participating in Hacktoberfest

For the second year in a row, Home Assistant will be participating in Hacktoberfest. Hacktoberfest is an event organized by DigitalOcean and GitHub to support and celebrate open source. The idea is that open source projects like Home Assistant will gather a bunch of entry-level bugs, features, and documentation enhancements and that you, a current or future contributor, will help us fix them. If you submit four pull-requests during October, you will have earned yourself a limited edition Hacktoberfest T-shirt!

Why contribute to Home Assistant?

  • Written in Python 3 with 94% test coverage
  • Active and helpful community
  • Friendly to new contributors

Resources to get started:

Are you not a programmer but still want to contribute to Home Assistant? Check out our list of entry-level issues for the Home Assistant website.

Our participation for Hacktoberfest 2016 was a huge success. Join us to repeat it this year.

Hacktober fest logo

Effortless encryption with Let's Encrypt and DuckDNS

When Let’s Encrypt launched we were estatic: finally an easy and free way for our users to securely access their homes remotely. Let’s Encrypt signifianctly lowered the bar to get and renew SSL certificates. However, this process could still be quite an obstacle for our users. It required opening ports on the router and remembering to renew the certificate every so often.

Thanks to a blog post by Andreas Gohr I realized that DuckDNS supports setting TXT records, making it compatible with the DNS-01 challenge of Let’s Encrypt. The DNS-01 challenge is using the DNS record of the domain instead of interacting with the server. This means that it’s not needed for the user to open any ports!

I have worked together with Pascal Vizeli on updating the DuckDNS add-on for and today we’re proud to announce it now includes automatic generation and updating of Let’s Encrypt certificates for your DuckDNS domain. The only thing that you have to add to your DuckDNS configuration is that you accept the Let’s Encrypt terms of service and point Home Assistant at the generated certificates and you’re good to go. No other work is required.

To get started today, start with making sure that you have installed. After that, go to the panel in Home Assistant, open the add-on store, scroll down to DuckDNS and install it. In the DuckDNS settings change “accept_terms” to true and start it.

Next up is to configure Home Assistant with the config below and restart it. You’re now good to go! Make sure to use the right protocol when browsing to your instance: https://<your_domain> Happy secure controlling your house!

# Example configuration.yaml entry for the HTTP component
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

If you’re not using, check out the blog post by Andreas for instructions.

If you enjoy the free service provided by DuckDNS and Let’s Encrypt, consider donating to their cause:

More information:

Improved build system

This is going to be a technical post for add-on developers and people that run locally build add-ons (not the default).

Two months ago we introduced, allowing our users to easily install, update and manage their Home Assistant installation. In this short time we’ve seen great adoption from the community. Around 20% of our users are choosing as their method of running Home Assistant today. We’ve also seen many add-ons being made available on the forums. There are currently 14 reposities full of add-ons being shared! is built on top of Docker, a container runtime. One thing that Docker did not support was dynamic build environements. That was annoying for because by supporting multiple CPU architectures, that was exactly what we needed! Luckily this feature has been added in Docker 17.05. By moving to Docker 17.05 as the minimum supported version we will be able to replace our templated Dockerfile approach with standard Dockerfiles that work out of the box. Thanks to Frenck for notifying us of this new build feature.

This change only impacts people that build add-ons or use add-ons that are built locally. You can check if your add-on is building locally on the detail page of add-ons.

If you are an add-on developer, read the documentation on how to publish your add-ons to Docker Hub. This will greatly improve the user experience.

Template changes

As an add-on developer, you will only have to change one line in your template to make it compatible with the new system. If you wish, you can also change the default build options for your image using the new build.json file.






The new system will become active with 0.64 and Host OS 1.1. Host OS 1.1 is available today. Navigate to Advanced Settings in the panel to start the OTA update.

We have also updated our build scripts and replaced it with a builder docker engine. This builder makes deploying components very easy. All basic functionality is supported. If you want more functionality, check out the builder by the Community Add-ons project.

0.54: Todoist, DoorBird, Abode cameras

We’re approaching the end of September and that means that it was our birthday! We are now officially 4 years old and are getting more amazing with every release. This release too will include some great new stuff and tons of bugfixes. Included is a bug fix by @fanthos that should fix the frontend in some browsers. If you had issues with your browser before, make sure to check out this release.

This release we’ve started the work to make our Xiaomi integrations more robust. This meant that we’ve had to rename the components to make it more clear which of the Xiaomi protocols are being used. We have some developers working on making this very affordable home automation solution a first class citizen in the Home Assistant ecosystem, stay tuned for more integrations!

Another cool thing in this release is the new mqtt_statestream component to export state changes to MQTT. Each entity will be exported on their own topic which makes it very easy to subscribe to individual entity updates.

New Platforms

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 →

Hassbian 1.3 - A bit of a stretch

This new release finally brings us the release of Hassbian based on the release of Raspbian Stretch. The most significant change with this is that we now run Home Assistant on Python 3.5. Other than that the changes are mostly to our tool hassbian-config.


To allow you to customize your installation further, we have made a few additions to our tool called hassbian-config. Majority of these changes where contributed by @Ludeeus.

Upgrade scripts

@Ludeeus contributed the possibility to run upgrade scripts to the hassbian-config tool.

  • Upgrade Hassbian: Upgrades packages of the base operating system. Contributed by @Landrash.
  • Upgrade Hassbian-script: Downloads and upgrades the latest release of Hassbian-scripts. Contributed by @Ludeeus.
  • Upgrade Home-assistant: Upgrades the Home Assistant installation to the latest release. Contributed by @Ludeeus.

To follow discussions about the development of the HASSbian image or to contribute join our Discord chat server.

To get started with the new image, check out the installation instructions on the installing Hassbian page.

0.53: Tesla, Customize editor, and super fast KNX rewrite

The Home Assistant community has been super busy in the last two weeks to bring you this amazing release. 60 different contributors have done over a 100 PRs filled with new features, bug fixes and performance improvements.

9 days away from our 4th birthday, we’ve just accomplished a couple of great milestones that I would love to share with you. We’ve hit over 8000 stars 🌟 on GitHub and starting this release we now ship over 800 platforms and components!

Customize editor

Another step in making Home Assistant configurable via the frontend has been contributed by @andrey-git: a customization editor! You are now able to inspect all (possible) customizations of an entity and update them with just a few taps. Want to change the name or icon of an entity? All possible in mere seconds.

Screenshot of the new customize editor.

New Home Assistant configurations will be created correctly automatically. If you are an existing user, make sure you have the config screen enabled and that you include customizations from customize.yaml.

# Example configuration.yaml entry
  # Include the customizations.
  customize: !include customize.yaml

# Enable the config screen


Thanks to the contribution by @zabuldon, you will now be able to control your Tesla car from Home Assistant. You’re able to check the temperature inside and outside your car, control your AC and unlock the car.

Input text

This release introduces a new input component: input_text contributed by @BioSehnsucht. With this component you will be able to set free form from the UI and then let that be used by your automations or templates.


This release ships a new KNX implementation thanks to @Julius2342. It will instantly show all changed states of KNX devices within Home Assistant. Additionally it brings support for HVAC devices and notification services. It also adds a service for direct communication with the KNX bus. You can connect to KNX/IP routing and tunneling devices. In the background it uses asyncio communication. Check the climate integration in action here and see the lights in action below:

New Platforms

Release 0.53.1 - September 12

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.52: Scripts editor, locks, HipChat and Abode Home Security

Although the summer is in full progress, the development hasn’t stalled. This release brings bug fixes, clean ups and another 8 new integrations. On top of that we are also introducing a new script editor!

To use the scripts editor, create a new file in your config directory named scripts.yaml and copy your existing scripts over:

# scripts.yaml
  alias: "Turn on the lights"
  - data: {}
    service: light.turn_on

Than update your configuration.yaml to look like this:

# Configuration.yaml example
script: !include scripts.yaml

New Platforms

Release 0.52.1 - August 28

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.51: Massive history speed up, finished automation editor and official vacuum cleaner support

This release has to do a one time database migration which can take a long time on big databases (20 minutes). During this time the frontend will not work. Do not stop Home Assistant while it is in progress.

Release 0.51 is around the corner and it contains some really great updates.

Database speed up

The first one is more amazing database updates #8748 by @OverloadUT. Every query that has been tested executes in well under 1 second, even on a RPi using MySQL with 6 million rows and around 300 entities. This is true even when you’re getting an unrealistically huge date range!

Updating the database will take some time when you start Home Assistant. During that time, the Home Assistant frontend is not accessible. Please let it complete and do not turn Home Assistant off.

Frontend update

We have finished the migration of our frontend to be powered by Polymer 2. This has given us a big speed boost on Safari/iOS devices and has fixed a wide range of bugs.

We have also finished the automation editor. All triggers and actions are now implemented and so are most conditions (missing are and, or). The automation editor is also no longer Chrome only, it can now also be used in Safari.

Another change to the frontend is that we have reorganized the panels. The Z-Wave and automation configuration panels have been merged into the configuration panel.

Vacuum cleaners

As we have seen more vacuum cleaners land in Home Assistant, it was time to create an official component for them. That’s why @azogue introduced the new vacuum cleaner component in #8623. This allows first class integration of vacuum cleaners in Home Assistant. Out of the box we will have Dyson, Xiamo and Roomba as supported platforms.

New Platforms

Release 0.51.1 - August 12

  • Fixed a bug in the automation editor that would break if no conditions available in the config file. (@balloob)

Release 0.51.2 - August 14

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 →