Home Assistant Core 0.110


Home Assistant Core 0.110

Do you know how excited I am for bringing you Home Assistant Core 0.110?

Would you believe me, if I told you I’ve been upgrading my personal Home
Assistant production instance to the latest development version almost
every day?

Well, better believe it, it is how I started my day for the last 3 weeks. It
felt like opening new presents and enjoying amazing improvements every day.

Today, we are shipping it all to you, as one big package. 🎁

This is definitely one of the bigger releases of Home Assistant Core 0.110 on all levels.
Speed improvements to both the frontend and backend, lots of usability
improvements, 12! new awesome integrations and an insane amount of major
updates to existing ones.

Enjoy the release!



In Home Assistant Core 0.109,
we made the frontend lighter and faster, this release takes it a step further.

The way icons are loaded is updated. With the ever-growing Material Icons set,
it was necessary to update the way we handle icons to make sure our application
continues performing.

The Material Icons are now split in chunks, so the frontend does not have to
load all the icons if you just need one; besides that, we no longer store the
icons in the DOM but in a database.

This saves a lot of memory and thus makes the Home Assistant frontend
even more leaner and faster!

Honestly, it is not just icons… A lot is optimized to make the frontend
faster this release. It is now snappier than ever!

Integrations grouping, searching & custom logos

@timmo001 added the possibility to search your integrations, so you can find
what you are looking for quickly.

We also grouped the entries by integration now, this means we no longer show
multiple cards for the same integration, but show a list of the names if there
are multiple entries.

If you click the entry, it will show that entry in the card.
This makes it easier to keep an overview of all your integrations.

Home Assistant Core 0.110

Oh! We’ve also made the icons and logos available for custom integrations!

Screenshot of the HACS integration with its icon shown
Screenshot of the HACS integration with its icon shown.

OpenZWave integration now in beta

This release features the new OpenZwave integration. It has been in testing as
a custom integration by the community since last December and is now
ready for a wider audience.

It is still early days for this integration, though; not all platforms and
devices are supported yet and the setup process has prerequisites that raise
the accessibility bar. See our documentation for
the current requirements and instructions.

If you want to give it a shot, you should be comfortable with setting up custom
add-ons and MQTT. There is no migration from the current Z-Wave integration yet,
this is still to come.

The plan is to add more platforms in the future, making it super simple to
set up the integration. Stay tuned.

There is currently no plan to deprecate the existing Z-Wave integration.
But the hope is that the new integration, in the future, will offer a simpler,
more stable and more feature-rich experience than the current Z-Wave integration.

Thanks go out to the community that has been testing the custom integration
and provided very valuable data to allow us to catch bugs and support more
devices. A special thanks to @cgarwood and @marcelveldt who have been
pioneering building the integration.

Every discovered integration can be ignored

An often reported issue/request feature is to allow any discovered item to
be ignored. Most integrations supported that already, but some didn’t.

As of Home Assistant Core 0.110, we have a new development rule requiring an integration to
support ignoring discovered items; and for 0.110, we have upgraded all
integrations that didn’t support it yet!

Result: Any discovered item, can be ignored.

Screenshot of showing ignorable integrations
Screenshot of showing ignorable integrations.

Calendar panel

Thanks to @zsarnett we got a beautiful new calendar panel!

It shows you all items of the calendars you select in a month, week or day view.
There is also a calendar card for Lovelace in the making.

Screenshot of the Calendar panel
Screenshot of the Calendar panel.

Weather card

We got a lot of feedback about the updated weather card of the last release,
we listened to feedback and added some features. You can now theme the colors
of the new icons, and you can even completely replace them with another image.

You can also set the attribute you want to show as the secondary information.

Screenshot of the updated weather card
Screenshot of the updated weather card.

Check the documentation for more information.

Internal & External URLs

There are many cases where an integration needs the URL/link to your Home Assistant Core 0.110
instance. For example, to set up a webhook, communicate audio files or camera
streams to an Amazon Alexa or Google Assistant device.

We used to have a base_url setting to deal with those cases, but that wasn’t
always sufficient. Some integrations require specific requirements for that
setting, which could lead to conflicting or impossible settings.

It often resulted in broken TTS, streaming issues for camera’s or issues with
casting. This release addresses this issue by introducing two new settings in
Configuration -> General.

Screenshot of the URLs configuration
Screenshot of the URLs configuration.

If you want to set those via YAML, homeassistant: main configuration has now
a external_url and internal_url setting.

These settings allow you to override the URLs Home Assistant uses when
communicating on your internal network versus the outside world. Please note,
that these are overrides. By default, Home Assistant Core 0.110 will try to figure this out
on its own.

If you have a Home Assistant Cloud subscription, integrations can now also
leverage that. This will reduce the amount of, often complex, configuration

After upgrading to Home Assistant Core 0.110, you can delete base_url from your configuration
as Home Assistant will automatically migrate that setting for you on upgrade.

Support for “not” conditions in automations

When an automation triggers, one can use conditions to check if the set
actions of an automation should be run. Conditions, however, always take the
positive approach: If “something” equals or is “this”.

As of this release, the conditions now have support for specifying if a
condition (or set of conditions) should “not” match. This can be helpful for
devices or entities that have multiple states, but you actually only want to
ensure it is not just that one state.

Screenshot of the automation editor with a "not" condition
Screenshot of the automation editor with a “not” condition.

This feature has been added to the automation editor, but is also available
for writing automations in YAML:

# Example automation
alias: Turn kitchen lights off when alarm is armed.
  - platform: state
    entity_id: alarm_control_panel.home_alarm
  - condition: not
      - condition: state
        entity_id: alarm_control_panel.home_alarm
        state: disarmed
  - service: light.turn_off


@bdraco has been busy improving HomeKit support for Home Assistant in 0.109,
but it seems like that didn’t stop him even a tiny bit. This release @xdissent
and @stickpin jumped on the HomeKit bandwagon as well!

HomeKit can now be configured and set up from the Home Assistant frontend,
and even allows you to set up multiple instances! This allows one to bypass the
maximum amount of devices a single HomeKit gateway supports by adding multiple.
Using multiple, will also allow you to bypass the 1 TV per bridge limit
on HomeKit.

Ready for this? Home Assistant Core 0.110 now has camera support for HomeKit!

And if that wasn’t enough already, the HomeKit integration now sends out more
information as HomeKit accessory information. So besides the entity id, which
was already present, you can also see which integration (and its name) provided
the accessory in HomeKit.

Screenshot from HomeKit. Left: accessory information, Right: Camera support.
Screenshot from HomeKit. Left: accessory information, Right: Camera support.


The ONVIF integration did get lots of love from @hunterjm! ONVIF Profile S
conformant camera’s, can now be set up via the UI!

And that is not all… It now leverages more features of the ONVIF protocol:
pull point subscriptions. This means that events from ONVIF will now
show up in Home Assistant as well. So, if your ONVIF compatible camera supports
things like motion, object or sound detection, those will be available now!

Screenshot of an ONVIF camera in Home Assistant
Screenshot of an ONVIF camera in Home Assistant.


Have you seen the new supervisor UI? @ludeeus did a great job redoing it’s UI!
It now uses the same tabs as the configuration panel. The add-on page is split
into multiple tabs, the add-on store is cleaned up and you can view all logs
in the system tab now (requires advanced mode).

Screenshot of the Supervisor panel
Screenshot of the Supervisor panel.

Some add-ons are now also marked “advanced” and are only visible when
you’ve enabled advanced mode on your user profile.

Other noteworthy changes

  • It took a while, as many adjustments had to be made.
    This is the first release supporting Python 3.8 🎉!
  • Quite a few optimizations to make Home Assistant go faster. One of the major
    changes is that Home Assistant will now set up all configured integration
    instances in parallel during startup. Some startup speed reported
    improvements from 82 seconds before this change and 28 seconds after this
    change. That is a huge improvement!
  • The info page in the development tools now shows more information about
    your set up. Including the name for your installation method.
    It will tell you if you run Home Assistant, Home Assistant Supervised or
    Home Assistant Core.
  • @MartinHjelmare added a new detection method for integrations that
    potentially harm Home Assistant during runtime. We can now detect if an
    integration tries to close Home Assistant’s (shared) HTTP client. If this
    happens, it will be prevented and write an error message to your log,
    similar to how the I/O detection does it (released in 0.109).
  • The ISY994 got a major upgrade! While it has quite a few breaking changes, it
    is now available via the UI and many bug are squashed. Thanks @shbatm!

Home Assistant Core 0.110

New Integrations

New Platforms

Integrations now available to set up from the UI

The following integrations are now available via the Home Assistant UI:

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

Home Assistant Core 0.110

  • Manual Alarm Panel – When going from state disarmed to any other (armed)
    state such as armed_away, the state will be arming instead of pending during
    the transition time as set in the configuration. When going from an armed state
    (such as armed_away) to the triggered state the state will still be
    pending during the transition time as set in the configuration
    (as it was before). – (@starkillerOG#32950) (manual docs)

    • State attribute pre_pending_state changed to previous_state
    • State attribute post_pending_state changed to next_state
    • Configuration option pending_time is renamed to arming_time,
      functionality is the same.
    • The time the alarm stays at pending when triggered has changed from
      delay_time of the previous state + arming_time (previously known as
      pending_time) of the triggered state to only the delay_time of the
      previous state.
  • Cert Expiry – The “name” configuration option marked as deprecated in
    0.107 has been removed and will now cause errors on startup if it remains in
    the configuration. You should change your configuration accordingly. –
    (@jjlawren#34628) (cert_expiry docs)
  • Stream – pyAV >7.0.0 has dropped support for FFmpeg versions <4.0.
    FFmpeg will need to be updated to at least 4.0 for stream to work.
    If you run an Home Assistant with the Superviser or Docker, no manual
    intervention is needed. Alternative installs can check the stream integration
    documentation for troubleshooting tips. – (@hunterjm#34648) (stream docs)
  • Nederlandse Spoorwegen – The punctuality attribute has been removed from
    the integration. Ever since NS updated its API a few months ago, its behavior
    with regards to the punctuality has been incoherent, sometimes even missing
    from the API’s response. This has caused numerous Issues to be created in this
    repo by users getting errors that the punctuality attribute was unlike what
    the integration was expecting. – (@YarmoM#34680) (nederlandse_spoorwegen docs)
  • Fortigate (Deprecated) – The Fortigate integration will be removed in
    0.112.0 and has a replacement in the FortiOS integration.Please refer to the fortios integration on how to configure the new
    (@kifeo#34854) (fortigate docs)
  • Raspberry Pi Camera – To align with ADR-0007, configuration has been
    moved under rpi_camera: as its own platform. –
    (@alxrdn#34461) (rpi_camera docs)Old YAML configuration example:

    - platform: rpi_camera
      image_width: 1296
      image_height: 972
      image_quality: 75

    New YAML configuration example:

      image_width: 1296
      image_height: 972
      image_quality: 75
  • ONVIF – ONVIF is now available to be added from the Integrations UI!
    The extra_arguments and rtsp_transport configuration from YAML is now a
    part of the Options flow for the integration, and is not automatically
    imported to the configuration flow with the rest of the defined ONVIF
    platforms. – (@hunterjm#34520) (onvif docs)
  • PulseAudio Loopback – Internal library code has been replaced with the
    pulsectl library. – (@breiti#34965) (pulseaudio_loopback docs)

    • The default connection honors the configuration in /etc/pulse
      and no longer defaults to localhost.
    • When a host is configured, the default port has been changed to 4713 to use
      the native interface of PulseAudio.
    • The configuration parameters buffer_size and tcp_timeout
      have been removed.
  • UPnP – This integration has been simplified and will always create
    sensors, so port mapping functionality has been removed. –
    (@StevenLooman#35191) (upnp docs)Example YAML configuration:

  • ZHA – Configuration options for ZHA integration in YAML is now deprecated
    and will be removed in 0.112.0. – (@Adminiuga#35161) (zha docs)Starting with the following radio configuration options:

    • usb_path
    • baudrate
    • radio_type
  • IMAP Email Content – The state of the imap_email_content is replaced
    when there is no email found. With this change, any other thing like an
    automation can react to the arrival of an email –
    (@isk0001y#35123) (imap_email_content docs)
  • Sony Songpal – This is now enabled through the Integrations UI.
    To call songpal/set_sound_setting on all songpal devices, the entity_id
    now needs to be set to all instead of left unset. –
    (@shenxn#34714, #35318) (songpal docs)
  • HTTPbase_url is deprecated and replaced by an internal_url and
    external_url core configuration setting. –
    (@frenck#35224) (config docs) (http docs)
  • Kodi – Kodi previously reported the media content type for all PVR
    channels as “channel”, no matter if it was a TV or a radio channel.
    The media content type is now derived from the used player type, i.e.,
    it reports as “music” for radio channels and “video” for TV channels. –
    (@Tho85#35091) (kodi docs)
  • Mill – Mill is now enabled through the integrations UI and no longer
    available via YAML – (@Danielhiversen#35136) (mill docs)
  • Homematic – Automations relying on the numeric value for the garage door
    status might break, since the status will now be reported as human-readable
    strings. – (@guillempages#35349) (homematic docs)
  • Tuya – Tuya is now enabled through the Integrations UI. –
    (@ollo69#35422) (tuya docs)
  • LG webOS Smart TV – A new unique_id is used for webostv media players
    for users running a 0.109.X release. Duplicate entities will be created with
    new entity IDs and old entities will need to be manually removed. –
    (@jjlawren#34979) (webostv docs)
  • Blink As of May 11, 2020 Blink has removed the old username/password
    authentication method, which means all current Blink integrations prior to
    this release are broken.In order to support this change, a 2FA key must be entered before setup
    can continue. Some users may not have 2FA enabled on their account yet,
    but you will still receive an email at login asking you to allow the device
    to continue setting up.Your current YAML configuration will be converted to a UI-based configuration,
    but the only supported entries are username, password, and scan_interval.
    All other entries must be removed; otherwise, the integration will not be
    configured. – (@fronzbot#35396) (blink docs)
  • Universal Devices ISY994 – This migrates ISY994 to PyISY v2 and is now
    available to be added from the Integrations UI. PyISY Version 2 is a
    significant update to the original module used to communicate with the ISY.
    (@shbatm#35212, #35338, #35413, #35391 ) (isy994 docs)As part of the update and many bug fixes, some breaking changes were introduced:

    Click see all breaking changes for ISY994
    • Remove ISY Climate Module support: the ISY Climate Module was retired by
      UDI on 3/30/2020: UDI Announcement, support has been removed from the module,
      so any entities based on Climate module nodes will no longer import into
      Home Assistant. The enable_climate configuration option will need be removed
      from your YAML configuration file.
    • Device State Attributes have changed: some attributes’ names and types will
      have changed as part of the changes to PyISY. If a user relied on a device
      state attribute for a given entity, they should check that it is still there
      and formatted the same. In general, more state attributes that were
      previously unavailable, should appear.
    • isy994_control events now return with additional information about the
      event. If a user relies on the control event property in Automations, these
      will need to be updated since the format has changed to include the
      additional detail.
    • Nodes that are “grouped” together in the ISY Admin Console will now be
      correctly identified and sorted, this will cause additional entities to
      be added to Home Assistant. If you were using this “group” feature to ignore
      some sub-devices in Home Assistant, you will now need to use the
      ignore_string in the name instead.
    • Turning on a light without providing a brightness value will use the ISY
      Device’s On Level property instead of turning on to full brightness
      (if Home Assistant doesn’t have a stored value for the last brightness).

    Sorting of certain devices based on the ISY’s Node Def ID and Insteon Type
    properties have been corrected to match the ISY’s provided device categories,
    as well as user feedback of incorrect sorting for specific devices. As a
    result, some entities that were incorrectly categorized will now appear under
    a different platform (e.g. switch to binary_sensor, light to switch, etc.)

    Both KeypadLinc Secondary Buttons and RemoteLinc2 Buttons have been moved from
    switch to sensor. This is because these buttons cannot actually be directly
    controlled via commands sent from the switch platform, doing so results in
    communication errors from the ISY because the commands are not valid.
    These devices are being moved to sensor instead of binary_sensor because
    they report a state in a range from 0 to 255; 0=Off, 255=On according
    to their last brightness/dimming level sent.

    The ISY994 integration now includes a restore_light_state option.
    In 0.109.0, a change was made to restore a light’s brightness to the previous
    state when turned on with no brightness parameter. This was, in part, to fix
    an issue where the light to turn on to full brightness when no parameters were
    given, regardless of the physical device’s On Level brightness setting.
    Using the On Level is now supported and is the default behavior.
    To keep the current behavior and use Home Assistant’s last brightness,
    set the restore_light_state to True or enable the option in the new config
    flow options.

    The following device node types have changed platforms to correct their

    • “BinaryControl” (SWITCH->BINARY_SENSOR)
    • “BinaryControl_ADV” (SWITCH->BINARY_SENSOR; IOLinc Sensor)
    • “OnOffControl” (SWITCH->BINARY_SENSOR)
    • “OnOffControl_ADV” (New; Thermostat Control/Running Sensors)
    • “EZIO2x4_Input_ADV” (SWITCH->SENSOR, Analog input on EZIO).
    • “RemoteLinc2” (LIGHT->SWITCH),
    • “RemoteLinc2_ADV” (LIGHT->SWITCH),
    • RemoteLincs only report button presses as events, are not controllable and
      do not accurately report dimmable states.
    • New Insteon Types for BINARY_SENSORS: “7.0.”, “7.13.” (IOLinc/EZIO Sensors)
      • IOLinc sensor/control logic will be updated in PR-4 to sort them correctly
        into two different platforms.
    • New Insteon Type for LOCKS: “4.64.” added.
    • New Insteon Types for SWITCHES: “0.16.”, “7.3.255.”, “9.10.”

All changes

Home Assistant Core 0.110

Click to see all changes! Home Assistant Core 0.110

Más sobre esto?