0.47: Python Scripts, Sesame Smart Lock, Gitter, Onvif cameras

16 minutes reading time
  • Release-Notes

In this release a ton of new stuff! And who doesn’t like new stuff? This release we’re passing the 700 integrations for Home Assistant. As of today we’re 1369 days old, which means that roughly every two days a new integration gets added!

Python Scripts

The biggest change is a new type of script component: Python scripts. This new component will allow you to write scripts to manipulate Home Assistant: call services, set states and fire events. Each Python script is made available as a service. Head over to the docs to see how to get started.


The updater has received a new opt-in option to let us know which components you use. This will allow us to focus development efforts on the components that are popular.

  include_used_components: true

And as a reminder. We will never share gathered data in a manner that can be used to identify anyone. We do plan on making aggregate data public soon. This will include total number of users and which hardware/software platform people use to run Home Assistant.


Z-Wave is also getting a big update in this release. The confusing entity_ids will be on their way out. There is a zwave blog post that gives more detail, but the upgrade steps will be as follows:

  1. Run Home Assistant as normal and the old IDs will still be used.
  2. The new entity IDs will be shown in the more-info dialog for each entity. Check to make sure none of them will have conflicts once the new names are applied.
  3. Rename entities using the ui card as described in the blog post to avoid conflicts. Restart Home Assistant to observe the changes.
  4. Update all places mentioning IDs (groups, automation, customization, etc.) in configuration.yaml.
  5. Add new_entity_ids: true to your zwave config.
  6. Restart Home Assistant to run with new IDs.
  7. The old entity IDs will be available in the more info dialog to trace down any remaining errors.

Monkey Patching Python 3.6

Some people have noticed that running Home Assistant under Python 3.6 can lead to segfaults. It seems to be related to the earlier segfault issues that we experienced when we released the asyncio-based core. We thought that those issues would have been fixed when Python bug 26617 was resolved. Although we see less reports compared to the old bug, there are still users experiencing them (gdb stacktrace points at PyObject_GC_Del()).

Since Python 3.6, the Task and Future classes have been moved to C. This gives a nice speed boost but also prevents us from monkey patching the Task class to avoid the segfault. Ben Bangert managed to brew up another monkey patch to stop Python 3.6 from using the C classes, falling back to the Python versions instead. This allows us to apply the original monkey patch again.

Both monkey patches are now active by default starting version 0.47 to avoid our users experiencing segfaults. This comes at a cost of not being able to benefit from all optimizations that were introduced in Python 3.6.

To run without the monkey patch, start Home Assistant with HASS_NO_MONKEY=1 hass. We will further investigate this issue and try to fix it in a future version of Python.

Release 0.47.1 - June 21

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 →

ZWave Entity IDs

two minutes reading time
  • Technology

ZWave entity_ids have long been a source of frustration in Home Assistant. The first problem we faced was that depending on the order of node discovery, entity_ids could be discovered with different names on each run. To solve this we added the node id as a suffix to the entity_id. This ensured that entity_ids were generated deterministically on each run, but additional suffixes had to be added to handle edge cases where there would otherwise be a conflict. The resulting entity_ids worked, but have been difficult to work with and makes ZWave a strange exception among other Home Assistant components.

Thanks to the awesome work of @turbokongen, a growing number of ZWave configuration options are now available from the new ZWave panel in the Home Assistant frontend. Among these new features is support for renaming of ZWave nodes and their underlying values. (These renames are persisted in zwcfg_*.xml) This is important, because these items are combined to form the Home Assistant entity name, which is used to generate the entity_id. Now that these options are available, ZWave users can rename nodes and values, influencing the entity_ids that are generated by Home Assistant.

Now that users are able to control these names, we will be making changes to how the entity_ids are generated for ZWave entities. The ZWave entity_ids are going to switch back to using the standard entity_id generation from Home Assistant core, based on the entity names. Moving forward, if there is a conflict when generating entity_ids, a suffix will be added, and it will be the responsibility of the user to rename their nodes and values to avoid the conflict. This is the same as any other platform in Home Assistant where two devices are discovered with the same name.

With the release of 0.47, this feature will be opt-in. Setting new_entity_ids: true under zwave: in your configuration.yaml will enable the new generation. After 0.48 this feature will become opt-out. From 0.48 onward, unless you’ve declared new_entity_ids: false you will switch to the new entity_id generation. At an undecided point in the future, the old entity_id generation will be removed completely.

I’m sure all ZWave users understand that the current entity_ids aren’t easy to use. They’re annoying to type in configuration.yaml, and break if a node needs to be re-included to the network. We know that breaking changes are painful, and so we’re doing what we can to roll this change out as smoothly as possible. The end result should be a dramatic simplification of most ZWave configurations. We hope that this change will ultimately make ZWave much easier to work with, and bring ZWave configuration just a little closer to the rest of the Home Assistant platforms.

0.46: Rachio sprinklers, Netgear Arlo cameras and Z-Wave fans

10 minutes reading time
  • Release-Notes

It’s time for 0.46! This release does not have too many new integrations, instead it focussed on bug fixes.

New platforms

Release 0.46.1 - June 9

Breaking changes

  • The USPS sensor entity names have changed as there are now two. One for packages and one for mail. Config will now also use scan_interval instead of update_interval (@happyleavesaoc - #7655) (sensor.usps docs) (breaking change)
  • Automation state trigger: From/to checks will now ignore state changes that are just attribute changess (@amelchio - #7651) (automation.state docs) (breaking change)
  • Redesign monitored variables for hp_ilo sensor. monitored_variables is now a list of name and sensor_type values (@Juggels - #7534) (sensor.hp_ilo docs) (breaking change)
  - platform: hp_ilo
    username: USERNAME
    password: PASSWORD
      - name: SENSOR NAME
        sensor_type: SENSOR TYPE
  • Automation - time: The after keyword for time triggers (not conditions) has been deprecated in favor of the at keyword. This resembles better what it does (old one still works, gives a warning) (@armills - #7846) (automation.time docs) (breaking change)
  • Automation - numeric_state: above and below will no longer trigger if it is equal. (@armills - #7857) (breaking change)
  • Broadlink switches: Entity ids will change for switches that don’t have a default name set. In this case the object_id is now used. (@abmantis - #7845) (switch.broadlink docs) (breaking change)
  • Disallow ambiguous color descriptors in the light.turn_on schema. This means that you can no longer specify both xy_color and rgb_color. (@amelchio - #7765) (breaking change)

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 →

Home Assistant 0.45: Automation editor, Z-Wave panel, OCR

12 minutes reading time
  • Release-Notes

Welcome to another great release of Home Assistant! While some of contributors and users are gathering at PyCon US 2017, we still managed to get a great release together!

First thing for this release is a feature that has been requested a lot: an automation editor! It’s still experimental - and many things are still in progress - but it works! You can create new automations and edit existing ones. If you start a new config, you’re all good to go. Otherwise check these instructions to get your automations ready for editing in the UI.

Check this video by Ben from BRUHautomation to see the new release in action.

As the editor is experimental, there are some limitations. These include that Chrome/Chromium is the only supported browser, we don’t support all triggers and actions and there is no support for conditions yet. But the foundation is there and so if you want to contribute to this, come help!

On the Z-Wave front a lot has happened. The biggest one is that we have a major extension of the Z-Wave panel thanks to @turbokongen! You will now be able to change config parameters and manage your devices.

Thanks to the work by the Python Open Z-Wave team we are now able to install it on demand from PyPi! There is no longer a need to pre-compile it yourself. This should give us the guarantee that we work with the Python Open Z-Wave version that the code expects.

If you have a security key set in your Open Z-Wave options.xml, copy options.xml to your Home Assistant configuration directory. This is the only place where options will get persisted.

Next to that @armills has lead the charge and managed to get full test coverage for Z-Wave! Thanks for all the hard work!

This release also contains two integrations which could help you to make non-smart devices a little smarter. The file sensor and the seven_segments OCR image processing platform. The first simply reads a plain-text file which was created by a logger or alike. The latter one extracts the value from a captured image that shows a seven-segments display.

And last, but not least, our Docker image is now based off Python 3.6. This version is faster and uses less memory than Python 3.5. Win!

If you are using our experimental Hass.io image, we made a breaking change in how the panel is served. If you have an existing installation, make sure you update your supervisor to the latest version before updating Home Assistant. If you are going to flash a new Hass.io image, make sure to only flash the new 0.8 image as linked on the installation page.

New integrations

Release 0.45.1 - May 22

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.

Breaking changes

Read on →

Home Assistant at PyCon US 2017

Less than one minute reading time
  • Community

In just 12 hours PyCon US 2017 starts. This is an exciting conference because there will be a bunch of Home Assistant developers and users there being able to meet in person.

Just like last year, we’ll be hosting a Home Assistant Open Space. Please stop by to ask any questions you have to the available developers. We haven’t reserved a slot yet but will do so tomorrow. We’ll update this post and announce it on social media as we know time and location. First open-space will be Friday at 4pm in room B112.

We will also be taken part in the development sprints from Monday-Wednesday. You only need to bring a laptop. We’ll help you get set up with a dev environment and you can be coding on top of Home Assistant in no time. Exact location inside the conference center to be announced. We are sitting in room A108.

On a final note, the Home Assistant community is very very active so don’t take it personal if we don’t remember your name, issue or contribution.

Home Assistant on an Orange Pi Zero

four minutes reading time
  • How-To

This blog post is about the setup of Home Assistant on an Orange Pi Zero. Like the setup on a Raspberry Pi Zero it will only take a couple of minutes to get a fully functional super cheap (less than 18 Euro incl. casing and power supply) Home Assistant hub. The reasons to use an Orange Pi Zero beside the prize are the built-in Ethernet port and the availability.

Read on →

Grazer Linuxtage 2017: Python Everywhere

Less than one minute reading time
  • Community
  • Micropython

I like Python. It’s a clean easy to read, easy to learn language. Yet when you use it for some time you still find more features to improve your coding. What I probably like most about Python is the community and the great libraries that already exist. Often solving a problem means including a pre-existing library and writing some glue code. That makes it quick to get things up and running.

I just gave a talk on how you can run Python to automate your home (yes with Home-Assistant) but also with MicroPython. Micropython allows you to run Python on your DIY sensors and switches around your home. Python everywhere - even on the chips that give Home-Assistant the data to be awesome.