0.107: Multiple Lovelace Dashboards, adds helpers, new media player card

George F. Will once said: “The future has a way of arriving unannounced.”

Well, George, we don’t agree: Announcing the release of Home Assistant Core 0.107!

This release brings a crazy amount of awesome new features and beautiful improvements to the frontend.

Bye old State UI

As announced with 0.105, the old States UI is now removed from Home Assistant. If you are using Home Assistant for a year or less, you might not have an idea what it is, since the “new” Lovelace UI has been the default. It is the UI we used before Lovelace.

If you are up for a flashback, maybe it is worth reading the release notes for Home Assistant 0.7 were the revamped (and now removed) States UI was originally announced. Now exactly 100 releases later, it is time to say goodbye to the states UI that has been with us for a long, long time…

As we announced the deprecation of the old States UI in 0.105, not everybody seemed to be that happy about it. So we surveyed to see what one would miss from States UI and learned that it is mostly used as an overview of all entities (besides having a nice layout that can be made in Lovelace).

In this release, we bring you a Lovelace solution for that and added a bit more…

Hello multiple Lovelace dashboards

You are now able to create multiple Lovelace configurations, called: Lovelace Dashboards!

You can have a dashboard with your main layout, one that is auto-generated (like the old State UI), one for experimenting, one for admins, one for your wall-mounted tablet, etc.

And, yes, you can even mix and match multiple YAML mode managed Lovelace Dashboard, UI managed Lovelace Dashboards and auto-generated Lovelace Dashboards at the same time.

Screenshot of the new Lovelace configuration panel.

Each dashboard can be added to the menu sidebar as well, with a configurable title and icon. Furthermore, it is possible to limit access to a dashboard to admin users only.

An unlimited amount of dashboards can be created right from the UI in the new Lovelace configuration panel, and YAML dashboards can be set up in configuration.yaml, see the documentation.

This awesome new feature comes with a deprecation if you use Lovelace in manual YAML mode: You need to move the resource section from your ui-lovelace.yaml to the lovelace: section in configuration.yaml. It is not a breaking change yet; we still load them from the previous location if we didn’t find anything in the lovelace: section, however, this fallback is being removed in a future version.

If you manage your Lovelace via the frontend, we automatically migrate your resources. Please note that resources are not in the raw Lovelace configuration editor anymore, but in the Lovelace configuration panel.

New media player card

@zsarnett is back on the frontend team and is not planning on letting that happen unnoticed. He did a ton of work on the frontend and created a beautiful new media control card for Lovelace.

It is inspired by the media control widget in Android and changes color based on the artwork of the played media. We think it looks absolutely gorgeous!

Screenshot of the new Media Control Card.

Helpers Configuration Panel

When you create advanced automations, you often need a helper. Like a toggle, to save a state, or another input field. Until now, you always had to define them in YAML and are known as the input_* fields/integrations.

We now have a UI to add and manage these Helper elements; this allows non-expert users, or anybody that prefers the frontend to manage their system, to also access this functionality.

Screenshot of a helper configuration dialog.

Thanks @Adminiuga, for implementing the backend features that made this frontend change possible! Not only that, if you prefer YAML, these changes made by @Adminiuga also made it possible to reload the input_* YAML configuration without restarting Home Assistant.

Improvements to Lovelace editing experience

@zsarnett changed the looks of our card picker, instead of a simple button to pick a card, you now get a live preview with your own entities. @thomasloven added a UI editor for the horizontal and vertical stack cards and the conditional card.

Screen recording of the new card picker and stack editor.

Other noteworthy changes

  • @Misiu added a UI to set the visibility per user for views.
  • Data tables, for example, the Entities configuration panel, are now lightning fast! Even on mobile 🚀.
  • The logbook had some speed improvements, thanks @KapJI!
  • @bdraco just went all-in on the August integration, making it a top-notch integration! Awesome job there!
  • Initial support for HomeKit enabled televisions and support for occupancy sensors was added by @Jc2k.
  • @tulindo added support for newer SamsungTV models.
  • Alexa now supports starting and cancelling timers, thanks to @Tho85.

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.

Breaking Changes

  • Xfinity Gateway (Deprecated) - The Xfinity Gateway integration relies on web scraping and is deprecated, to be removed in Home Assistant Core 0.109. (ADR-0004) - (@frenck - #32017)

  • Groups - Groups are NOT being removed, but the configuration options, services, and service options related to the (previously deprecated and now removed) States UI are now removed in this release. This includes:

    • The view and control configuration options for a group.
    • The group.set_visibility service call
    • The control, visible, view options on the group.set service call

    Please ensure your configuration and automations do not use these anymore. - (@frenck - #32021) (group docs)

  • Input Number - Adds an entity ID to input_number warning. Passing an out of range value to input_number.set_value will now raise a validation error. Incrementing/decrementing an input_number will no longer cause warnings. - (@balloob - #32012) (input_number docs)

  • History Graph - The history_graph integration has been deprecated in Home Assistant 0.105 and is now removed. This integration was used for the old states UI, which is no longer available. A Lovelace an equivalent is available: The Lovelace History Graph. (@frenck - #32028)

  • Weblink - The weblink integration is was deprecated in 0.105.0 and now removed. This integration only works with the old states UI, which is no longer available. (@frenck - #32024)

    With Lovelace, the same can be achieved using:

  • Environment Canada - This integration was previously using web scraping for weather alert details. The details attribute has been removed to make it compliant. (ADR-0004) - (@michaeldavie - #32077) (environment_canada docs)

  • Units of Time - Time units have been standardized throughout all integrations. - (@springstan - #32065)

    If you were using a non standard unit in an automation or sensor please change it to the following:

    • μs for microseconds
    • ms for milliseconds
    • s for seconds
    • min for minutes
    • h for hours
    • d for days
    • w for weeks
    • m for months
    • y for years
  • HomematicIP Cloud - Migrates HomematicIP Cloud services to admin services. - (@SukramJ - #32107) (homematicip_cloud docs)

    The user needs to be in the administrator role to execute these HomematicIP Cloud services:

    • homematicip_cloud.dump_hap_config
    • homematicip_cloud.reset_energy_counter
  • HomeKit Controller - Support for HomeKit controller’s legacy pairing data folder .homekit has been deprecated and in Home Assistant Core release 0.109.0 we plan to remove this code. Pairings have not been saved this way since Home Assistant 0.94, so if you are running Home Assistant 0.94 or later this does not affect you - your pairings were already migrated to configuration entries. If you are running an older release and do not upgrade soon you will not be able to automatically migrate your existing pairings at upgrade time and will have to manually re-pair them. - (@Jc2k - #32158) (homekit_controller docs)

  • Automation - The hide_entity configuration option on an automation was deprecated in Home Assistant 0.105 and is removed in this release. It was used for the old states UI, which is no longer available, making this option obsolete. Please ensure your configuration is not using this option. - (@frenck - #32038) (automation docs)

  • IQVIA - When configuring IQVIA via configuration.yaml, the monitored_conditions key has been deprecated and will be removed in 0.114.0. All sensors are now created by default. (ADR-0003) - (@bachya - #32223) (iqvia docs)

    Example YAML configuration:

    iqvia:
      zip_code: !secret iqvia_zip_code
    
  • GitHub - The entity state has been changed to return the ‘short SHA’ commit hash, so automations based on latest_commit_sha should be adapted to that. - (@Mariusthvdb - #31581) (github docs)

  • AirVisual - AirVisual is now available to be added through the integrations UI! If you configure it in configuration.yaml you will need to update to the new configuration. Additionally, in order to protect the AirVisual cloud API, scan_interval in no longer configurable for this integration. - (@bachya - #32072) (airvisual docs)

    Example YAML configuration:

    airvisual:
      api_key: !secret airvisual_api_key
    
  • IFTTT - IFTTT now checks that received webhook data is a dictionary (example { "value": 1 }) to prevent Home Assistant internals from breaking. - (@balloob - #32317) (ifttt docs)

  • AlarmDecoder - AlarmDecoder integration now uses Honeywell’s Instant mode instead of Night-Stay for alarm_arm_night. Instant mode is generally thought to be more secure for night-time use because it disables the entry delay since visitors aren’t expected. - (@ajschmidt8 - #32292) (alarmdecoder docs)

  • Tibber - Upgraded Tibber library to 0.13.0 and some attributes have names which have changed. - (@Danielhiversen - #32369) (tibber docs)

    • currentPhase1 -> currentL1
    • currentPhase2 -> currentL2
    • currentPhase3 -> currentL3
  • REST - Add application/xml as an XML to JSON auto converted MIME types for rest sensors - (@bdraco - #32289) (rest docs)

  • Certificate Expiry - The name configuration option has been deprecated and is no longer used by the integration. An improved default entity & display naming scheme is provided. Name and entity_id overrides should be handled via the frontend. Configurations using name will marked broken with the 0.109 release. - (@jjlawren - #32066) (cert_expiry docs)

    Example YAML configuration:

    sensor:
     - platform: cert_expiry
       host: google.com
    
  • Plex Media Player - The ‘show all controls’ option for Plex is deprecated and will be removed in the Home Assistant Core 0.110.0 release. Also, discovery and legacy config file loading (plex.conf) has been removed. - (@jjlawren - #32391 #32510) (discovery docs) (plex docs)

    Example YAML configuration:

    plex:
     media_player:
       show_all_controls: True  <-- Deprecated
    
  • Abode - Abode retired its legacy automations and quick actions on 28 Feb. This change removes support for legacy automations and quick actions while adding support for CUE automations which will show up in Home Assistant as switches (same as previous implementation). Abode’s replacement for quick actions is manually triggered CUE automations which can be called through Home Assistant service abode.trigger_automation (previously labeled abode.trigger_quick_action). - (@shred86 - #32296) (abode docs)

  • deCONZ - The events on the Aqara Magic Cube have changed, so they will match with the device triggers discriptions. If you made automations for the Magic Cube on the device page, you will want to change your automation. If you configured your automations based on events from the developers tools, there is nothing breaking. This also fixes the double tap function on side 2, which didnt work if you configured it in the device page - (@Dorzel107 - #32108) (deconz docs)

  • Emoncms - The way the unit_of_measurement is set has changed to make use of the ability for this to be set in the source feed in Emocms. - (@borpin - #32042) (emoncms docs)

    The unit will now be assigned as follows:

    1. Take the unit from the API if it is available
    2. Otherwise take the unit from config, either specified or the default unit (W)
  • Vizio SmartCast TV - Adds app support. For TVs that support apps, ‘SMARTCAST’ and ‘CAST’ sources have been replaced with SmartCast Home. Any automations that rely on those sources will need to be updated. - (@raman325 - #32432)

  • Onvif - Added more onvif PTZ move modes. The onvif camera service camera.onvif_ptz has been moved from the camera domain to the onvif domain. onvif_ptz service was also renamed to ptz, so service calls need to be updated to onvif.ptz. - (@olijouve - #30152) (onvif docs)

    Example YAML configuration:

    - type: entity-button
        entity: camera.foscam
        icon: mdi:arrow-left-bold-outline
        show_name: false
        tap_action:
          action: call-service
          service: onvif.ptz
          service_data:
            entity_id: camera.foscam
            pan: LEFT
            tilt:
            zoom:
            move_mode: ContinuousMove
            continuous_duration: 0.8
            distance: 1
    
  • Facebook Messenger - On October 29, 2019 Facebook announced a breaking change that all broadcast API will stop working on March 4th, 2020, so BROADCAST as a target option is now removed. - (@chmielowiec - #32517) (facebook docs)

  • Samsung Smart TV - Adds support for newer SamsungTV models. Specifying the port in configuration.yaml is no longer needed and thus the port config option has been deprecated. - (@tulindo - #31537) (samsungtv docs)

  • Netatmo - The unreliable binary sensors are removed since they don’t provide much value due to their polling nature. To trigger automations it is recommended to use the event netatmo_event. - (@cgtobi - #32673) (netatmo docs)

    Example trigger for automations:

    trigger:
      - event_data:
          type: movement
        event_type: netatmo_event
        platform: event
    
  • DirecTV - DirecTV is now available to be added from the integrations UI. The concept of device has been removed and now the DirecTV receiver, and all client devices, are added. There is no longer a port option as the default port should work just fine. The name can be set via entity UI rather than name option. - (@ctalkington - #32162) (directv docs) (directv docs)

  • iCloud - iCloud family devices are no longer added automatically. Use the with_family configuration option or re-add the integration via the frontend, in case you do want to make use of the iCloud family devices. - (@Quentame - #32644) (icloud docs)

  • Device Tracker - The hide_if_away configuration parameter has been removed for all device trackers. This option was used to hide devices trackers from the UI if the device was not at home. This applied to the old States UI, which now has been removed. - (@frenck - #32705) (device_tracker docs) (breaking change) (beta fix)

  • Sonos - Sonos devices will now report idle instead of paused if they do not have any current artist metadata available. This can happen when you were playing Spotify on your Sonos and use the Spotify app to play on another device. - (@balloob - #32712) (sonos docs) (breaking change) (beta fix)

Beta Fixes

All changes


This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2020/03/18/release-107/
14 Likes

Woooot! Nice to see multiple lovelace dashboards option! Keep up the good work.

3 Likes

Does this mean that a restart is required after adding a custom card now?

There is a reload service available for Lovelace services.

3 Likes

Additionally, does this mean that all custom card resources get loaded for all dashboards, even if they aren’t used in a particular dashboard? I’ve been looking forward to this as a way to use an older tablet to display a “light” dashboard that’s less resource-intensive, but that may not be a solution.

Dear HomeAssistant
we love when see new realase but… may you wait with annunce until we can found readytoupgrade dockerimage ?
https://hub.docker.com/u/homeassistant
( no last stable version ready here
https://version.home-assistant.io/stable.json )

thankyou

@MZorzy When we tag the release, the builds start and the release blog announcement goes out.

Some platforms are available just a couple of minutes after that, some platforms take quite some time to build. Generally, it is available for all platforms within 2 hours after making the release.

If we hold back the announcement like you suggest, it would mean some people get an update available, without any context or release blog posts… So this ain’t that bad :wink:

5 Likes

Nice list of new additions to UI, can’t wait :wink:

Very nice addition of the multi lovelace dashboards. Now I will be able to have a dashboard for that one wall tablet in my kitchen that don’t display some cards right. :smile:

2 Likes

This:

Add support for simultaneous runs of Script helper (@pnbruckner - #31937) (automation docs) (script docs)

…sounds like it might be absolutely game changing.

Thanks @pnbruckner for looking in to this. I know I have had a few brief discussions with you around this over the last couple of years. It looks like we might finally be moving to a position where we can actually have some accurate knowledge of what HA is doing and when it is doing it and so write our automations/scripts accordingly.

@frenck do you think some day we’ll be able to have multiple user roles, so not just ‘user/admin’ but more like assignable roles (kids, grandparents, guests, admin). It just seems like you guys are laying the foundations down for it now. It would be nice to be able to give the mobile app to my babysitter and be sure she can only see the dashboard I make for her(for example).

3 Likes

I’m running last beta release, 0.107b8 but zones are not working does not show on configuration panel!
Does the stable release correct that?

1 Like

Hehehe @ideal2545, unfortunately, I did not pass my fortune teller exams and my crystal ball broke :wink:

6 Likes

i write it because we are all on 106.6 now from
https://version.home-assistant.io/stable.json

“homeassistant”: {
“default”: “0.106.6”,
“qemux86”: “0.106.6”,
“qemux86-64”: “0.106.6”,
“qemuarm”: “0.106.6”,
“qemuarm-64”: “0.106.6”,
“intel-nuc”: “0.106.6”,
“raspberrypi”: “0.106.6”,
“raspberrypi2”: “0.106.6”,
“raspberrypi3”: “0.106.6”,
“raspberrypi3-64”: “0.106.6”,
“raspberrypi4”: “0.106.6”,
“raspberrypi4-64”: “0.106.6”,
“tinker”: “0.106.6”,
“odroid-c2”: “0.106.6”,
“odroid-n2”: “0.106.6”,
“odroid-xu”: “0.106.6”
},

but yeah better have info before than after.

We know @MZorzy… Have some patience.

edit: Now it is generally available for all platforms :wink:]

1 Like

After updating from 0.106.6 my log is flooded with:

Mar 18 18:25:10 homelepps hass[21247]: 2020-03-18 18:25:10 ERROR (MainThread) [homeassistant.components.here_travel_time.sensor] The state of person.<person_1> is not a valid set of coordinates: home
Mar 18 18:25:11 homelepps hass[21247]: 2020-03-18 18:25:11 ERROR (MainThread) [homeassistant.components.here_travel_time.sensor] The state of zone.home is not a valid set of coordinates: unavailable
Mar 18 18:25:11 homelepps hass[21247]: 2020-03-18 18:25:11 ERROR (MainThread) [homeassistant.components.here_travel_time.sensor] The state of person.<person_2> is not a valid set of coordinates: home
Mar 18 18:25:11 homelepps hass[21247]: 2020-03-18 18:25:11 ERROR (MainThread) [homeassistant.components.here_travel_time.sensor] The state of zone.home is not a valid set of coordinates: unavailable
Mar 18 18:25:12 homelepps hass[21247]: 2020-03-18 18:25:12 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Mar 18 18:25:12 homelepps hass[21247]: Traceback (most recent call last):
Mar 18 18:25:12 homelepps hass[21247]:   File "/usr/local/lib/python3.7/dist-packages/homeassistant/components/device_tracker/setup.py", line 188, in async_device_tracker_scan
Mar 18 18:25:12 homelepps hass[21247]:     zone_home.attributes[ATTR_LATITUDE],
Mar 18 18:25:12 homelepps hass[21247]: KeyError: 'latitude'
Mar 18 18:25:14 homelepps hass[21247]: 2020-03-18 18:25:14 ERROR (MainThread) [homeassistant.util.logging] Exception in update_data when dispatching 'mobile_app_location_update_<snip>': ({'location_name': '', 'gps': [<snip>,<snip>], 'gps_accuracy': 23, 'battery': 89, 'speed': 0, '
altitude': 0.0, 'course': 0, 'vertical_accuracy': 0},)
Mar 18 18:25:14 homelepps hass[21247]: Traceback (most recent call last):
Mar 18 18:25:14 homelepps hass[21247]:   File "/usr/local/lib/python3.7/dist-packages/homeassistant/components/mobile_app/device_tracker.py", line 151, in update_data
Mar 18 18:25:14 homelepps hass[21247]:     self.async_write_ha_state()
Mar 18 18:25:14 homelepps hass[21247]:   File "/usr/local/lib/python3.7/dist-packages/homeassistant/helpers/entity.py", line 297, in async_write_ha_state
Mar 18 18:25:14 homelepps hass[21247]:     self._async_write_ha_state()  # type: ignore
Mar 18 18:25:14 homelepps hass[21247]:   File "/usr/local/lib/python3.7/dist-packages/homeassistant/helpers/entity.py", line 320, in _async_write_ha_state
Mar 18 18:25:14 homelepps hass[21247]:     state = self.state
Mar 18 18:25:14 homelepps hass[21247]:   File "/usr/local/lib/python3.7/dist-packages/homeassistant/components/device_tracker/config_entry.py", line 105, in state
Mar 18 18:25:14 homelepps hass[21247]:     self.hass, self.latitude, self.longitude, self.location_accuracy
Mar 18 18:25:14 homelepps hass[21247]:   File "/usr/local/lib/python3.7/dist-packages/homeassistant/components/zone/__init__.py", line 102, in async_active_zone
Mar 18 18:25:14 homelepps hass[21247]:     zone.attributes[ATTR_LATITUDE],
Mar 18 18:25:14 homelepps hass[21247]: KeyError: 'latitude'

What could be the reason for this?

“This awesome new feature comes with a deprecation if you use Lovelace in manual YAML mode: You need to move the resource section from your ui-lovelace.yaml to the lovelace: section in configuration.yaml . It is not a breaking change yet; we still load them from the previous location if we didn’t find anything in the lovelace: section, however, this fallback is being removed in a future version.”

Definitely not the case on my setup. All custom card types are missing, so my Lovelace is covered with cool red error panels. When I move the resources from ui-lovelace.yaml to config yaml, I’m getting Safe mode. Not cool.

Also, I had zero issues from Check the configuration addon before installing, yet now I’m getting a chock full of errors:

Platform error notify.alexa_media - Integration 'alexa_media' not found.
Platform error switch.sonoff_lan_mode_r3 - Integration 'sonoff_lan_mode_r3' not found.
Platform error switch.circadian_lighting - Integration 'circadian_lighting' not found.
Invalid config for [sensor.mitemp_bt]: [rounding] is an invalid option for [sensor.mitemp_bt]. Check: sensor.mitemp_bt->rounding. (See ?, line ?). 
Platform error sensor.sonarr_upcoming_media - Integration 'sonarr_upcoming_media' not found.
Platform error sensor.kodi_recently_added - Integration 'kodi_recently_added' not found.
Platform error sensor.google_geocode - Integration 'google_geocode' not found.
Platform error sensor.email - Integration 'email' not found.
Component error: circadian_lighting - Integration 'circadian_lighting' not found.
Component error: zigbee2mqtt_networkmap - Integration 'zigbee2mqtt_networkmap' not found.
Component error: sonoff - Integration 'sonoff' not found.
Platform error climate.cometblue - Integration 'cometblue' not found.
Platform error media_player.samsungtv_tizen - Integration 'samsungtv_tizen' not found.

I don’t remember a smooth upgrade anymore :frowning:

Where have the Zones moved too?

i am receiving error below with asuswrt platform :slight_smile: since upgrade to 107.0

2020-03-18 19:03:23 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.asuswrt_upload fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 279, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 474, in async_device_update
    await self.async_update()
  File "/usr/src/homeassistant/homeassistant/components/asuswrt/sensor.py", line 128, in async_update
    await super().async_update()
  File "/usr/src/homeassistant/homeassistant/components/asuswrt/sensor.py", line 57, in async_update
    self._rates = await self._api.async_get_bytes_total()
  File "/usr/local/lib/python3.7/site-packages/aioasuswrt/asuswrt.py", line 325, in async_get_bytes_total
    rx = await self.async_get_rx()
  File "/usr/local/lib/python3.7/site-packages/aioasuswrt/asuswrt.py", line 332, in async_get_rx
    return int(data[0])
ValueError: invalid literal for int() with base 10: ''
2 Likes

To me, that looks you have indented / made an error in your YAML.

A configuration check, checks your configuration… not the validity of your UI/Lovelace.