0.104: Sentry, Signal Messenger, IntesisHome, Sure Petcare, KEF

The first release of the new decade! Happy New Year!

We are starting this new year with a packed release! So let us dive in!

Improved entity handling on startup

We are now restoring all entities, stored in the registry, on Home Assistant startup.

During the startup of Home Assistant, all your configured integrations are loaded. Each of those integrations results in one or more devices and entities. However, there was a catch!

The loading of some integrations could take a while, which caused some entities not to be available immediately. Sometimes, this affected multiple things, like missing devices in HomeKit/Google/Alexa or those big red boxes in our Lovelace UI. We are sure, at some point, we’ve all experienced that.

As of this release, all these entities, if registered in our entity registry, will be restored as “unavailable”. That allows other parts of our system to use them immediately, solving a lot of common issues during startup.

These restored entities can be differentiated from normal “unavailable” entities by an additional state attribute added to those entities: “restored”.

Screenshot of a removing an unavailable entity.

As a result, entities will no longer “disappear”, so restored and unavailable entities are removable, as shown in the screenshot above. Please note that, if an integration provides an unavailable entity, the providing integration needs to be removed first, or else, those entities can not be deleted.

Ignore discovered devices & services

Got that one device that gets discovered over and over again?

It is now possible to ignore a specific discovered device with a single click!

Screenshot of a discovered Hue bridge.

It requires the integration to be updated to support this. For this release, the Hue, Axis, deCONZ, WLED and HomeKit integrations are updated to support this new feature.

Reload all the input things & bye generated groups

All input_* integrations now have a reload service to reload your YAML configuration for these integrations, without the need to restart Home Assistant.

Furthermore, time to say bye-bye, to all generated entity groups (group.all_*). Chances are, you have never heard of those because they were hidden. However, if you rely on those groups for your automations, you need to adjust those automations. Check out the breaking changes section for more information.

Add a device to Lovelace

We added a button to the device page to add all entities of a device to Lovelace in a blip! Home Assistant suggests cards based on the type of entities the device provides so that you can add them to a view of your choice instantly.

If you are using Lovelace in YAML mode, you still can use this new feature. The generated YAML can be copied and pasted into your configuration file.

Screenshot of a card suggestion for a light device.

This same functionality is also added to the unused entities page of Lovelace.

Multi-select entity management

Entity management has never been easier; It now allows for changing multiple entities at once. Select multiple entities and remove, enable or disable them with one click.

Screenshot of the entities configuration page with multi selection.

ZHA configuration panel improvements

@dmulcahey did a lot of work on the ZHA config panel this release.

The navigation for the ZHA configuration panel has been redesigned to provide a better user experience on mobile and desktop.

As part of the redesign, full Zigbee group management has been added, allowing you to create and manage Zigbee groups right from the UI.

Screenshot of the ZHA configuration panel.

In a future releases, the ability to bind devices directly to groups, will be added as well.

Removing your Lovelace configuration

Want to start your Lovelace configuration from scratch? Or go back to the automatically generated Lovelace interface?

Now you can by clearing the Lovelace configuration in the raw configuration editor and saving it.

Screenshot of the remove Lovelace confirmation dialog.

In other news

Meanwhile, HassOS 3.8 got released!

HassOS Release-3 build 8 (Stable) released today. Changelog: https://t.co/kXOXNPldJF - Next we start the first 4.0 Beta builds include the N2 support and Linux LT 5.4

— Pascal Vizeli (@pvizeli) January 13, 2020

Besides the release of HassOS 3.8, the first beta version of HassOS 4.0 is now available as well. This beta release adds support for Hardkernel’s ODROID-N2!

The ODROID-N2 is a great and powerful alternative for the Raspberry Pi.

Custom now playing poster Lovelace card

Brad Crc made this impressive demo of setting up a custom now playing poster card in Lovelace floor plans. This allows you to show currently playing media in your floor plan!

Bas showing his Lovelace theme on his setup

Bas Nijholt kept seeing his own theme popping up on Reddit, so he decided it was time for him to show off his Lovelace dashboard, featuring this lovely theme.

I keep seeing my own theme on Reddit, so now it's my turn! [OC] from r/homeassistant

His theme is publicly available on GitHub.

New Integrations

New Platforms

If you need help…

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

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template, that is helping us a lot!

Breaking Changes

  • Default groups - Entity integrations will no longer automatically maintain the hidden groups with all of their entities. The following groups are no longer automatically created and maintained:

    • group.all_automations
    • group.all_covers
    • group.all_devices
    • group.all_fans
    • group.all_lights
    • group.all_locks
    • group.all_plants
    • group.all_remotes
    • group.all_scripts
    • group.all_switches
    • group.all_vacuum_cleaners
    • group.calendar
    • group.remember_the_milk_accounts

    The automation and script configuration panels are updated to show and manage all automations/scripts. If you want to show cards in your Lovelace UI with all entities for a single domain, use the auto-entities card. If you want to target all entities in a service call, use all as value for entity_id.

    (@balloob - #23789) (automation docs) (calendar docs) (cover docs) (device_tracker docs) (fan docs) (light docs) (lock docs) (plant docs) (remember_the_milk docs) (remote docs) (script docs) (switch docs) (vacuum docs).

  • UPnP - UPnP/IGD units of measurement have been aligned with other integrations and common uses, they’re now kB and kB/s instead of kbyte and kbyte/sec respectively. - (@scop - #29552) (upnp docs)

  • Worx Landroid - The worxlandroid sensor has been changed to not return the hardcoded state values manual-stop, charging, charging-complete, going-home, mowing, instead use the states given from the Landroid to Home Assistant.

    This includes the state idle, which means that something is broken with the mower. You can use this as a notification to check the physical state of the mower.

    You need to update any automations that depend on the state of the sensor.

    (@geraldhansen - #27453) (worxlandroid docs)

  • Apple iCloud - The iCloud component is no longer part of the device tracker platform and is now an integration, which is configurable via the UI. The iCloud cookie folder moved from [HA_dir]/icloud to [HA_dir]/.storage/icloud.- (@Quentame - #28968) (icloud docs)

  • Pi-hole - The default value for host is removed, and now must be specified manually. - (@johnluetke - #27569) (pi_hole docs)

    Example configuration:

      - host: pi.hole
        ssl: false
      - host: backup.pi.hole
  • HERE Travel Time - HERE has deprecated the usage of app_code and new users can only generate an api_key. If you are already using HERE Travel Time, you have to follow the migration guide to retrieve the, now required, api_key. - (@eifinger - #29966) (here_travel_time docs)

    Example configuration:

      - platform: here_travel_time
        api_key: "YOUR_API_KEY"
        origin_latitude: "51.222975"
        origin_longitude: "9.267577"
        destination_latitude: "51.257430"
        destination_longitude: "9.335892"
  • ZHA - The default divisor for active_power has changed. Now, multiplier and divisor both default to 1 if the device does not support these attributes or when getting those attributes from the device fails. - (@Adminiuga - #30130) (zha docs)

  • Keba - The unique_ids of the entities have changed and are now more future proof. The default name and entity_id of the entities have also changed. You need to clear stale entries from the entity registry and update concerned automations and scripts. - (@dannerph - #30125) (keba docs)

  • Tesla - Config flow has been added for Tesla. Device tracker entity names have changed due to this. They now follow the naming convention of the rest of the Tesla entities. The id device tracker entity attribute was also removed because it is a duplicate of trackr_id. - (@alandtse - #28744) (tesla docs)

  • Huawei LTE - The Huawei LTE notify service name is now configurable. The default name for the Huawei LTE notify service has changed to notify.huawei_lte to avoid conflicts with other notify services. An option to provide a name for the service has also been added. - (@scop - #30208) (huawei_lte docs)

    Example configuration:

      - url: ...
        password: ...
          name: sms
  • Amcrest (Removed) - Amcrest sensors and switches that were deprecated in previous releases have now been removed. - (@pnbruckner - #30308) (amcrest docs)

    Example configuration:

    - ...
        # This sensor type is no longer supported and must be removed.
        - motion_detector
      # All switch types are no longer supported and must be removed.
        - motion_detection
        - motion_recording
  • MQTT - Added separate command and state topics for the MQTT lock. Two new properties are introduced with state_locked (default: LOCKED) and state_unlocked (default: UNLOCKED). If you are using the same topic as state_topic as for the command_topic you can reestablish the old behavior by setting state_locked to LOCK and state_unlocked to UNLOCK. Effectively, this change allows you to distinguish commands and states in two topics with different values. - (@tuxbox - #29808) (mqtt docs)

    Example configuration:

      - platform: mqtt
        command_topic: "/dev/ha/lock/cmd"
        state_topic:   "/dev/ha/lock/state"
        value_template: ""
        state_locked: "locked"
        state_unlocked: "unlocked"
  • LG webOS Smart TV - The component setup now uses the webostv domain instead of media_player. The host configuration option is now required and the timeout and filename options have been removed. The state handling for webOStv has also been cleaned up. An entity will have on when the tv is on instead of playing or paused as was previously the case. You need to update automations that depend on the entity state. - (@bendavid - #29296 #30416) (webostv docs)

    Example configuration:

        name: LG TV
        #other settings
            service: wake_on_lan.send_magic_packet
              mac: "00:00:00:00:00:00"
        standby_connection: true
  • Axis - Axis integration will no longer accept manual configuration of devices, all configuration of the Axis integration will now be handled from the integrations panel. - (@Kane610 - #30365) (axis docs)

    TL;DR This will no longer work:

  • WLED - Improved WLED pure white support for RGBW LED strips. When using WLED with RGBW strips, setting the color in Home Assistant to white, will turn off the RGB LEDs of the strip and use the W channel only. - (@frenck - #30477) (wled docs)

  • Timer - Fire restarted event on restarting an active timer. This can break automations that should trigger on every timer start event. - (@mnigbur - #30475) (timer docs)

  • Vizio - Removed suppress_warning from configuration options for Vizio integration. The pyvizio package now suppresses insecure HTTPS request warnings in a way that doesn’t affect global requests from other integrations or Home Assistant itself. There is no need to globally suppress insecure warnings now. - (@raman325 - #30536) (vizio docs)

    Example configuration:

      - platform: vizio
        host: '<IP>:<PORT>'
        access_token: '<AUTH_TOKEN>'
        device_class: tv
  • RFXtrx - Bump pyRFXtrx to 0.25. This update switches the commands for open and close for RFXtrx covers of the “Rollertrol” type, as they were switched (clicking open resulted in closing of the cover and vice versa). Existing automations should be updated. - (@Ernst79 - #30566) (rfxtrx docs)

  • Ring - Ring is now configurable via a config entry. This means it will no longer store the username and password and you’re able to configure accounts that use 2FA. It’s no longer possible to set scan interval, monitored conditions or FFmpeg arguments. The defaults are used. - (@balloob - #30564) (ring docs)

  • Binary Sensor (Locks) - Updated ON/OFF condition and triggers to match the documentation and UI. This change inverts the logic of automations relating to binary sensor with the lock device class, but only for automations triggering on the lock state (rather than triggering a lock/unlock action).

    If you already created automations, you will need to check those, as they probably need to be inverted. The text displayed in the trigger or condition dropdowns in Lovelace will now be correct.

    One possible scenario is if you have set an automation using the state of one lock to trigger an action on other lock(s). This change would cause the action to trigger on locking if it was previously triggering on unlocking. - (@davet2001 - #30663) (binary_sensor docs)

Beta Fixes

All changes

This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2020/01/15/release-104/
1 Like

According to the release notes webos is no longer supports multiple tvs, that’s kind of weird to remove that capability,
I specifically have 3 LG TV with webos,
is there a reason for that change?

Not necessarily. I also want to check how it works with 2 website TVs. As far as I understood there is a multiline file to store the keys for each IP. Webos docs says that keys are up address sensitive

Yeah, i’ve also got 2 LG TVs, how should i do the configuration.yaml now? Like this?

  - host:
    name: 'Livingroom TV'
  - host:
    name: 'Bedroom TV'

I can’t figure out how to actually fix the link and submit a pull request …

In two spots for the change related to the new local_ip integration the link needs to be updated.

The current link is: (note the missing _ )

The correct link is:

1 Like

@silvrr, Thanks, took care of it. :+1:

With removal of default groups, what is the recommended replacement for group.all_lights.default usage in light_profiles.csv?

Just updated, no new errors in my log, restarting seems quicker also, thanks. :slight_smile:

Only had to remove 114 entities…

Also I had zero interest in Elgato Keylights before this update, but now I’m slightly intrigued.

1 Like

What to do if i ignored Philips Hue discovery but wan’t it back?

What exactly doe this mean?

Which entities and why did you have to remove them?

My upgrade to 0.104 was messy

There is a bug that triggers when you upgrade.

All my deconz light groups were suddenly duplicated in the Deconz Integration

And this resulted in all those light groups to be duplicated entities also all with suffix _2

And the result was that no light automations and no dimmer switches worked any more.

To clean it up I had to delete all the original entities which you can do from the UI.
Then I had to rename all the _2 to the old names
And finally I had all the duplicate Deconz groups that I had to delete. And again - the only way you can delete them is to stop Home Assistant and hack the JSON file core.device_registry in a text editor.

We really need a feature so you can delete not only entities but also devices.

Why were all the Deconz light groups duplicated? And will it happen again?

Edit. I checked the last backup of core.device_registry from just before the upgrade and there was only one instance of each Deconz groups. No old cruft. This happened during the upgrade

1 Like

I had the same issue with deconz groups.

1 Like

On the Integrations page, there’s a new action menu (3 dots) in the top right corner. That’s how you can show or hide ignored integrations.

A bunch of old entities/sensors/devices that hadn’t been showing up in HA or were registered under different names

I may be misunderstanding this but what’s the point of being able to remove entities if you have to remove the whole integration for it to work?

Aren’t you removing all entities associated with the integration when you remove it anyway?


I have three WebOS TV’s - How do I now configure these?
I have swapped the config over, but I am getting error messages about duplicates like this:

2020-01-16 02:25:07 WARNING (SyncWorker_0) [homeassistant.util.yaml.loader] YAML file /config/webostv.yaml contains duplicate key “host”. Check lines 1 and 17.
2020-01-16 02:25:07 WARNING (SyncWorker_0) [homeassistant.util.yaml.loader] YAML file /config/webostv.yaml contains duplicate key “name”. Check lines 2 and 18.
2020-01-16 02:25:07 WARNING (SyncWorker_0) [homeassistant.util.yaml.loader] YAML file /config/webostv.yaml contains duplicate key “turn_on_action”. Check lines 5 and 21.


This works for me:

  - host: 192.168.10.xxx
    name: "Family Room TV"
      service: wake_on_lan.send_magic_packet
        mac: C8:08:E9:xx:xx:xx

  - host: 192.168.10.xxx
    name: "Master Bedroom TV"
      service: wake_on_lan.send_magic_packet
        mac: 38:8c:50:xx:xx:xx

Note the first TV which used the default filename for the auth was automatically ported over. The second which had a custom file name needed to be re-added.

@jwelter - looking at yours - I have missed the minus sign before host Doh! :slight_smile:
I will give it a try - cheers

Not all integrations are config entries but they still register entities to the registry so in some cases you need to do both.

1 Like