0.102: Official Android App, Almond, Scene editor


Home Assistant 0.102 is here ! It’s been quite the trip as we hosted our annual State of the Union last week, which took a lot of energy away from our release. This doesn’t mean that we don’t have anything to share, just that the notes might be a little less polished.

First, we had our State of the Union at the ING office in Amsterdam! It was great. You can watch it back on YouTube or keep an eye out for the blog post coming soon that will summarize all the announcements.

Alright, so what’s new? A lot.

Android App released!

At the State of the Union we announced that we have released the initial version of the official Home Assistant Android app. It’s still a work in progress, but the basic version already works.

It’s been developed by @CedrickFlocon and the source is available on GitHub. We’ve already seen some other developers step in, so that’s great! Keep it coming.

Private Voice Assistant

We teamed up with Stanford to tightly integrate their open, privacy-preserving virtual assistant Almond into Home Assistant. For more information, see the separate blog post.

Account Linking

Some companies only allow us to integrate with their products via cloud APIs. These cloud APIs often use the OAuth2 specification to link accounts. The problem with this specification is that it cannot properly handle non-public or decentralized installations.

So if you were to link an integration via OAuth2 before today, you would have to sign up for a developer account, configure Home Assistant and expose your instance publicly before you got to the part where you can link your account. That’s not good!

Home Assistant Cloud is introducing a new account linking service that will be freely available for everyone – no cloud account required. With this service, Home Assistant controls the developer account, and users will just need to link their accounts.

The first integration to use this new service is Somfy. Manual installation is also still possible. This integration is built on top of our new OAuth2 framework. We expect more integration developers to migrate OAuth2 integrations in the future.

Create automations with natural language

As an experimental feature, we have added a new way to create automations. With the help of Almond, we can transform natural language into Home Assistant automations.

Screenshot of the create automation dialog. Screenshot of the create automation dialog.

When you click the + in the automation editor to add a new automation, you will see a new dialog where you can enter what you want your automation to do in natural language. Like: Turn on the lights when I come home. We will try to convert this into an automation. We will check if you need to specify devices or persons for this automation and ask you for them. You can then check the generated automation in the editor and save it.

Be advised that not all devices are supported yet, and that Almond needs more training for better responses. Check the Almond part for how you can help make Almond better.

Scene editor

Screenshot of the scene editor. Screenshot of the scene editor.

We’re also introducing a scene editor. With the scene editor you can easily store the states of devices in a scene. You simply select the devices (and/or entities if you are in advanced mode) you want to include in your scene and set the states to how you would like them when the scene activates.

To use the scene editor your scene config should be in the file scenes.yaml in your config directory and included in configuration.yaml. Every scene should have a unique id for the editor to work.

# scenes.yaml
- id: my_unique_id # <-- Required for editor to work.
  name: Romantic
    light.tv_back_light: on
      state: on
      xy_color: [0.33, 0.66]
      brightness: 200

Then update your configuration.yaml to look like this:

# Configuration.yaml example
scene: !include scenes.yaml

In other news

Andrew learned Swift and created a new mini-app for Mac:

Our Android app is not the only new app on the block. @tuanha2000vn has released Hasskit, a new app built with Flutter that can be used on both Android and iOS.

And finally, Brad posted a video on Reddit showing his amazing usage of picture elements in Lovelace. Check it out:

Users of Xiaomi Vacuum cleaners can now use this great custom Lovelace card:

New Integrations

New Platforms

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat.

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.

Backward-incompatible changes

  • Huawei LTE - Configuration has been consolidated below huawei_lte. Device tracker no longer uses known_devices.yaml but entity registry. - (@scop - #26675) (huawei_lte docs)

    Example configuration yaml:

      - url:
        username: admin
        password: something
  • Ikea Tradfri - This removes the battery sensor that was created for the signal repeater. The sensor would never have a state, and after some inspection, it does not look like that device present any valuable metrics. - (@ludeeus - #28181) (tradfri docs)

  • UPNP/IGD - All UPNP/IGD sensors are now in one device. You have to remove and re-add the integration to get rid of the previous devices. (@escoand - #27517) (upnp docs)

  • PS4 - State off is now State standby. Affects user defined scripts, automations, etc. (@ktnrg45 - #28261) (ps4 docs)

  • SSDP - ssdp in manifest.json has changed; it is now a list of dicts, and as we now match using the UPnP device description fields directly, device_type has to be renamed to deviceType. No included integrations use it at the moment, nor are they broken by this change. If any custom integrations are using it, they need to adjust accordingly. (@scop - #28285) (ssdp docs)

  • HomematicIP Cloud - The attribute naming between Homematic IP HmIP-BSM (light) and HmIP-FSM/HmIP-PSM (switch) was different and in case of light not correct. The attributes for HmIP-BSM have been renamed:

    • energy_counter_kwh –> today_energy_kwh
    • power_consumption –> current_power_w

    Please check your automations, scripts, scenes, etc., if you are using the old attributes in templates, and replace them with the new ones. - (@SukramJ - #28271) (homematicip_cloud docs)

  • Plugwise - Detection of a legacy Anna (firmware 1.8.x) is no longer automatic: owners of a legacy Anna have to provide info in configuration.yaml, the last line. This change was needed to be able to fix issue #26520. - (@bouwew - #28237) (plugwise docs)

    Example configuration yaml:

      - platform: plugwise
        name: your_device_name
        password: your_password
        host: your_anna_ip
        legacy_anna: true
  • Android TV - The source and sources_list attributes for Fire TV devices will use friendly app names instead of app IDs (e.g., “Netflix” instead of “com.netflix.ninja”). If you are using these attributes in automations, sensors, etc., you will need to update them.

    • If you are currently checking that the source attribute of a Fire TV device is a particular app ID, you have two options:
      • Check the app_id attribute instead
      • Replace that app ID with the friendly name for the app.
    • If you are currently checking the sources_list attribute, then you will need to check for friendly app names instead of app IDs.

    You can still use app IDs for the media_player.select_source service. - (@JeffLIrion - #28417) (androidtv docs)

  • Homekit - Thermostats supported by the Homekit Controller component were reporting “off” for the running status when the HVAC was powered on but not actively heating or cooling. This hvac_action attribute will now properly return “idle” instead of off. Any logic that tests for the hvac_action condition of off will need to change to idle. There is no change to any other states. - (@GaryOkie - #28625) (homekit_controller docs)

  • OpenALPR local - The “alp_bin” option has been corrected to “alpr_bin” as is outlined in the documentation. Users should check their config and update if necessary. (@HexF - #28746) (openalpr_local docs)

Beta Fixes

Release 0.102.1 - November 21

Release 0.102.2 - November 24

Release 0.102.3 - November 29

All changes