0.99: Withings, Device Automations, launch Home Assistant Cast from Python

Happy 6th birthday to us! Yep, it’s been 6 years since the first commit, 6 years since we started our quest for a local and privacy foucsed home automation hub. And I think that we’re doing a pretty ok job 😏

It’s time for Home Assistant release 99. And this release is adding a bunch of new great features all over the place.

Welcome Bram!

Nabu Casa has hired Bram Kragten. Bram has been active in the Home Assistant community for a while and is one of the driving forces behind the Lovelace UI. He will work on the Home Assistant frontend full-time. He will focus on making it easier to manage your Home Assistant installation, make sure all of the frontend is translatable and drive our efforts on making the frontend accessible for visually impaired people.

This is possible thanks to all the people who subscribe to Home Assistant Cloud ❤️

Device Automations

We took a step back, looked at Home Assistant, and thought about how we could make it easier for users to create automations. We realized that there was room for improvement. We identified the following issues:

  • To write automations, users need to learn Home Assistant concepts like events, entities and services.
  • It’s difficult to discover what can be automated. For example, if you’re automating a long press on the “turn on” button on a Zigbee remote, you need to know to listen to the event “zha_event” and match against the Zigbee device identifier of your remote and the long press type.

So we put our inventor hat on and have come up with a solution that allows users to create automations in the concepts that they already know: devices. Now when a user starts configuring an automation trigger, it can pick device automation as a new type.

Screenshot of defining a device trigger in the UI.

The user starts by picking one of their devices that is integrated into Home Assistant. A second dropdown will now appear that contains all the possible triggers for this device. This list is populated based on the integrations that are linked to this device (ie. Hue & Light).

Device automations are available for triggers, conditions and actions. Today’s release supports lights, switches and Deconz. More to come in future releases as integration developers adopt it.

Big thanks to @emontomery for driving this effort. He added initial support for device automations as a YAML-only feature in Home Assistant 0.97 and has worked hard to extend it in this release with UI support and support for conditions, actions and more integrations. Also a big thanks to @kane610 who added added support for device automations to Deconz which helped squash bugs and improve the design.

Frontend

There is a lot to talk here. Buckle up.

@thomasloven has built a brand new round slider from scratch for use in Home Assistant. It is using modern technologies to create a great experience. This component was so useful standalone that he has decided to release it as a standalone web component that anyone can use in their websites.

Shout out to @iantrich who has been on fire in recent weeks squashing a ton of bugs and adding some nice features to improve the Lovelace experience. And a shout out to @SeanPM5 who has been bringing UX bugs and improvements to our attention. Our frontend team is seriously awesome.

Unused entities has been moved into the configure UI section and completely revamped by @bramkragten. It’s now a table, you can see a lot more info, you can sort it. If you are using Lovelace storage mode, you can select entities and add them to your UI directly from that screen.

Screenshot of the new unused entities page.

Now that we have a data table component, Bram also went ahead and used it in a new devices page. This page, still experimental, will allow users to see a list of all their devices and sort them by manufacturer, area or battery %. The goal is to create a one stop shop for device management.

Screenshot of the new devices page.

And there is a ton more, here are some of the other highlights:

  • Allow subscribing to an MQTT topic inside the MQTT dev tools @bramkragten
  • Option to display last changed in glance-card @iantrich
  • Add image option to glance card entities @iantrich
  • Allow controlling timer entities from the more info dialog @iantrich
  • Fill example data in dev tools @bramkragten
  • Stop effect in more-info-light @iantrich
  • Add vibration on mobile when controlling entities @bramkragten
  • Update Home Assistant logs when activating the info developer tool tab @bramkragten

Launch Home Assistant Cast from Python

Home Assistant now supports opening Home Assistant Cast from the backend. It is available as the service cast.show_lovelace_view. This allows you to open a view on your Chromecast as part of an automation. For example, show the frontdoor and who is home when your doorbell rings.

Note that Home Assistant Cast requires your Home Assistant installation to be accessible via https://. If you’re using Home Assistant Cloud, you don’t need to do anything. Otherwise you must make sure that you have configured the base_url for the http integration.

Hass.io

Hass.io is now able to work with your secrets stored in Home Assistant. So now you are able to use !secret my_value inside add-on options like you can do inside configuration.yaml. For more info about how to define secrets, check the docs.

We have published a release candidate of HassOS that is compatible with the new Raspberry Pi 4. Download it here.

In other news

Home Assistant had a booth this year at the CEDIA home tech trade show. We spend a lot of time talking to manufacturers about local APIs, official integrations and better support for open source systems.

Hanging out at @CEDIAExpo in innovation alley pic.twitter.com/9SnUXo11oA

— Home Assistant (@home_assistant) September 13, 2019

We also had some great drinks in the evenings with companies that integrate with Home Assistant. In this picture Konnected.io and Senic.

Beers after CEDIA with @balloob from Home Assistant and teams from Senic and Neeo. pic.twitter.com/c6Ag4DeEtU

— Konnected.io (@Konnected_io) September 14, 2019

@timmo has released version 2.0 of his Home Panel. This is an alternative user interface for Home Assistant.

It's finally here. 🎉

Home Panel v2.0.0 is now released and has been completely rewritten in #React with #TypeScript

⚠️Please read the release notes before upgrading as are breaking changes to know about before upgrading!https://t.co/NMDQu4zZW8#HomePanel #HomeAssistant pic.twitter.com/ucA1HxwurB

— Timmo (@timmo001) September 14, 2019

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.

Breaking Changes

  • Unifi - Removes support of directly configuring the UniFi platform for device trackers. Use unifi: instead. Extra configuration through config entry options from the GUI (see release notes 0.98 for example) and through unifi configuration in configuration.yaml will continue to work.- (@Kane610 - #26587) (unifi docs)

    # This will no longer work
    device_tracker:
      - platform: unifi
    # This does
    unifi:
    
  • Plex

    • Configuration is moved from the media_player and sensor platforms to the plex component. Existing configurations will need to be updated. The remove_unavailable_clients and client_remove_interval options for media_player entities have been removed as the functionality has limited value now that the entity registry exists. - (@jjlawren - #26488) (discovery docs) (plex docs)
    • Logins using a username/password/servername are no longer supported on the Plex sensor platform. This functionality will be partially restored in followup PRs which add a configuration flow and external authentication. - (@jjlawren - #26444) (plex docs)
    • Remove default host for Plex config. - (@jjlawren - #26583) (plex docs)
      • Removes default value of host config parameter.
      • Requires one of host or token in the configuration.

    New example configuration entry:

    plex:
      host: 192.168.1.5
      token: mysecrettoken
      media_player:
        use_episode_art: false
    
  • PiHole - This change requires existing configurations for the pi_hole integration to be moved from sensor platform key to a pi_hole top level key. This allows services, switches, and possibly other entities to be added to the integration in a future pull request. - (@johnluetke - #25837) (pi_hole docs)

    • monitored_conditions is removed
    • pi_hole configuration block defines host, port, location and ssl options

    New example configuration entry:

    pi_hole:
      host: pi.hole
    
  • Jewish calendar - This platform has been moved to an integration. Automations based on sensor.issur_melacha_in_effect comparison to True/False need to be updated to use binary_sensor.issur_melacha_in_effect on and off states. - (@tsvi - #26200) (jewish_calendar docs)

    New example configuration entry:

    jewish_calender:
      language: hebrew
      diaspora: False
    
  • Homematic IP - Unify device_state_attributes handling for Homematic IP Cloud. The naming of entity attributes has been corrected (missing underscore) to follow the standards:

    • moisture detected –> moisture_detected
    • motion detected –> motion_detected
    • power mains failure –> power_mains_failure
    • presence detected –> presence_detected
    • smoke detector alarm –> smoke_detector_alarm
    • water level detected –> water_level_detected
    • window state –> window_state

    (@SukramJ - #26449) (homematicip_cloud docs)

  • Linky - This platform has been moved to an integration. - (@Quentame - #26076) (linky docs)

    New example configuration entry:

    linky:
      - username: email_address
        password: password
    
  • Radiotherm - Update climate attributes. Automations may break if the user is checking against the previous “mode” or “fan” attributes or previous mode or fan attribute values. - (@dieselrabbit - #26465) (radiotherm docs)

    • The old “mode” attribute is now supported via “hvac_action” attribute.
    • The old “fan” attribute now called “fan_action” to follow “hvac_action” .
  • SolarEdge - Monitored conditions are no longer supported. - (@Cereal2nd - #26282) (solaredge docs)

Beta Fixes

All changes


This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2019/09/18/release-99/
8 Likes

Nice, I like the look of the easier automations feature, will try it next time I add some more automations.

Just a quick question, I’ve just updated and restarted HA, and the new ‘devices’ page appears to be blank:

It does say this feature is currently experimental, do I need to run discovery or do something to populate the table?

Thanks

Can you try it with the default theme?

Thanks, I’ve just tried it, it works perfectly with the default theme, I feel stupid now :smiley: The table layout is nice, very clear and handy to be able to instantly sort columns.

I’ll have to look into fixing the midnight red theme I’m currently using.

Huge release with lots of really cool frontend goodies - Bram and Ian have been on fire these last few weeks!

I really like the device automations, it is a lot more user-friendly. Looking forward to seeing more integrations adopt this in the future (Harmony please!).

Withings has always been my personal most wanted integration too so I’m very happy right now. Thanks to everyone for an awesome release! :smiley:

1 Like

Looking for Home Assistant’s log?

It has moved from the bottom of the Info tab to its own tab:
Developer Tools > Logs

Activating the tab will now automatically refresh its contents:

Update Home Assistant logs when activating the info developer tool tab

A welcome improvement. Thank you Bram Kragten!

5 Likes

Thanks to all people who have been working hard to release this version.
My Hassio doesn’t see the update 0.99 or just waiting?

wow - that’s a lot of scrolling to see all the changes and new features! awesome work and HAPPY BIRTHDAY.

Are there any plans to use configuration.yaml to specify you don’t want to use features like devices automatons, or unused entities for example if you use node-red or old school yaml?
I’m assuming disabling these features will keep the HA instance more lean for those that don’t need some features?

Try again tomorrow, or in a few hours really. The HassIO releases take time to build.

1 Like

The Devices page looks nice, should be much easier to manage entities than the other methods.

I’m looking forward to trying out the Device automations. Currently though, the trigger is not showing anything for my light switches (Z-Wave), it presents two empty fields which when selected have no effect. I’ve refreshed the UI a few times and I’m using the default theme. Same behavior in both Chrome and Firefox.

It has arrived!

Thank you. Being Updated . . . cheer.

Awesome birthday release!

The UX team is on fire :fire:!

Congrats to expanding the full time team and kudos :clap: to all who support HASS with their cloud subscription! What a great sustainable Open Source story!

I’ve updated Hass.io to 0.99.0 and made the changes for Pi Hole as per the docs, and receive the following error on boot;

2019-09-19 13:52:25 ERROR (MainThread) [hole] Can not load data from *hole: pi.hole
2019-09-19 13:52:25 ERROR (MainThread) [homeassistant.components.pi_hole] Unable to fetch data from Pi-hole

Pi Hole is installed via Community Hass.io Add-ons.

Any ideas? Anyone have a working config they can share?

1 Like

With the further changes to the Unify integration I’d like to try once more to see if I can get an answer to some questions.

I recently got all of my new unifi network equipment running and set up the Unifi integration in HA. And, as expected, it added every single device on my network to my entity registry. That’s OK, since we now have a way to deal with all of those we really don’t want to track.

I went thru the entity registry and selected all of the ones I don’t want to be tracked and turned off the “enable entity” switch. That worked as far as removing them from showing up as entities in the states page. But they all still show as “unavailable” in the entity registry…all 50 or 60 of them… So now I have a very long list of device trackers to scroll thru every time I need to go do any work in the entity registry.

Since we also have the ability to “delete” the entity from the entity registry I thought I would do that to shorten up that list. Then when I click on the “delete” button I’m greeted with this pop up:

ex

What does that mean?

Why would deleting an entity not remove that entity from HA? Where will it still be? in some sort of “.storage” file limbo? Is there anyone who can answer this question?

And as a follow on, let’s say that I decide I don’t want to track an entity so I click the “delete” button so my entity registry isn’t cluttered up with those 60 entries that I don’t care about. Then let’s say that later I decide that I want to actually track the entity again (one of my kids decides to move back in for a while, or whatever). How do I get that entity back into the system again if there is no longer any manual device tracker configuration for individual entities?

Before this new system was implemented the entity was still listed in the known_devices.yaml file and I could just turn the entity tracking (and, hence, it’s existence in the system) on & off at will in there.

I think I may be missing something critical in how this new system is suppose to work.

2 Likes

with the cast.show_lovelace_view service, I can’t get anything to display, it shows the connected screen on my home hub. for the view_path, I have a view with url path defined as downstairs, so I use that for the “view_path” option, yet nothing shows. I can manually cast from the frontend fine.

Hi team,
Thank you for that update!
I’m having trouble integrating withings.

STEP 3 - AUTHORIZE HOME ASSISTANT
-> Conf is valid
-> Home assistant restarted
-> New device discovered: Withings
X issue 1: clicking the configure button next to withings in the integration page doesn’t do anything with the following error log:

2019-09-19 10:17:38 ERROR (MainThread) [frontend.js.latest.201909181] https://mydomain/frontend_latest/chunk.43dcfc6e5b8d18714299.js:1007:164 Uncaught TypeError: Cannot read property 'item' of undefined

I then tried the following workaround for that 1st issue:
-> “+” button / “Withings” works
-> Select user profile and submit ::: Redirected to Withings website
-> Select user profile “Allow this app”
-> Redirected to my home assistant “This step requires you to visit an external website to be completed” / Open website ::: Redirected to Withings website
-> Select user profile “Allow this app”
X issue 2: " 500 Internal Server Error, Server got itself in trouble"
(also tried changing the domain part of the url with local name and got the same result)

Checking the logs, here is what I can find:

oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.

the failing url looks like this: https://abc.ui.nabu.casa/api/withings/authorize?flow_id=def&profile=ghi&code=jkl&state=mno

Did I miss anything ?
Thank you all

I still manage devices this way, I also use Unifi equipment.

sonoff_5891:
  hide_if_away: false
  icon:
  mac: DC:4F:22:5B:XX:XX
  name: sonoff-5891
  picture:
  track: false

esp_63f006:
  hide_if_away: false
  icon:
  mac: 84:0D:8E:63:XX:XX
  name: ESP 63F006
  picture:
  track: true

I’m having exactly the same issue, except I have a local setup instead of nabu.casa.

I’ve worked out the solution, the documents on this need to be updated - they do not specific the need to list the IP and Port of the Pi Hole host.

Using this as per the docs did not work;

pi_hole:

Using this as per the docs did not work;

pi_hole:
  host: IP_ADDRESS

Using this as per the PR page did not work;

pi_hole:
  host: pi.hole

Working config in configuration.yaml is;

pi_hole:
  host: 192.168.1.101:4865

My Hass.io install is on the machine at 192.168.1.101. I will submit a PR to update the docs with this.