0.106: Light brightness stepping, better Safe Mode and person dialog


Well, hello!, Home Assistant Core 0.106! We are happy to see you 😃

A great release that improves stability, reliability and a lot of helpful additions to make everything much more friendly and easier to use. So let’s dive in!

Safe Mode improvements

In Home Assistant 0.105, we introduced Safe Mode. Our goal is to make sure Home Assistant always starts and provide you an interface to work with. No matter what.

@balloob has been busy this release to improve on this feature even more, and Home Assistant is now able to overcome issues when things in the core system get into trouble and even when the Lovelace configuration isn’t readable. Besides that, the way Safe Mode is presented has changed, so you instantly know you are in Safe Mode:

![](upload://fUUnAtnpkUeZpYmdYOhMvPQg5wj.png) Screenshot of Home Assistant running in Safe Mode.

Stepping up and down the brightness of lights

Ever tried to make an automation to brighten or dim your lights? Or tried to hook up a remote to control the brightness of a light? If you have, you probably know that doing that was pretty painful and involved some additional templating to get that going.

This release just made that a lot easier. An example device automation:

![](upload://gAkianfDSKNqtPhDj0x9cRO1QvP.png) Screenshot of a device automation with dimming lights.

We have also added this functionality to the light.turn_on service. You can now change the brightness, based on the current brightness, using the brightness_step (-255, 255) and brightness_step_pct (-100, 100) parameters.

Good to know, when the brightness hits 0, it will turn off the light. If the light is already off, and you step the brightness up, it will turn on. This is awesome, because if you have a rotating dimmer button (for example, an IKEA SYMFONISK), you can rotate it to change the brightness, but also turn the light on/off by just rotating it.

Person more info dialogs improvements

Persons have a new more info dialog. They now show the location of the person on the map and if the person is not in a zone, you can create a zone with the current location of that person with one click.

![](upload://cab1SQ5LXigj9lH0v4DVQ0u5Vq.png) Screenshot of the new more info for a person.

Entities configuration panel now shows all entities

The entities configuration panel previously only contained entities that were uniquely identifiable by Home Assistant (they have a so-called: unique ID). However, those are not provided by all integrations of Home Assistant, confusing since the entities panel did not show all of your entities.

In this version, we now include all entities in the panel, giving you a nice complete overview of all available entities in your system. You can’t edit all entities, since that requires an entity to be uniquely identifiable. If an entity doesn’t have a unique ID, the pencil icon will be striked through.

![](upload://1yCz18x4pPRafWKttLLFEN9hTAk.png) Screenshot of uneditable entities in the configuration panel.

Since all entities are now available in this panel, it does not only provide you a clear overview of all the available entities; you can also make use of the “related items” feature introduced in release 0.105 to see where they are being used!

Updates to the developer tools panels

The developer tools panel also got some nice little touches. In the “Info” tab you can now find a list of all integrations you are using and the logs are now aware of the integrations as well.

Both now include links to the documentation and our GitHub issue tracker. This allows you to dive in quickly when you run into troubles with an integration.

![](upload://eBzeTArHec8OZnaXSh4DSKXuXdG.png) Screenshot of the integrations list and an example log message.

Sensor card

Our sensor card has had a style update. We initially got the design from the Lovelace Mini Graph Card and now updated to match the improved new look of that card.

![](upload://vJ4fwNQ4wJ9fXicwDgmxaLsz8c2.png) Screenshot of the updated sensor card.

Other noteworthy changes

But wait… there is more! Some other smaller noteworthy changes in this release:

  • In the zone editor that was introduced in the previous release, you can now change the location of your home zone. The radius of the home zone cannot be changed yet (we will work on that!), but you can drag the home zone on the map.

  • Also an improvement on a feature introduced in the previous release, the state_color option is now also available for other cards, so you can override the defaults of the cards.

  • New automations now default to device automations instead of state triggers and service calls. Device automations are so much easier and clearer to create from the UI. You can, of course, still use the old triggers and actions like you are used to.

  • In the generated Lovelace we no longer include automations and battery entities. You can find these in the automation configuration panel and the battery in the device configuration page. If you want to have your automations and/or battery in your Lovelace UI, you can always take control and add them.

  • Scripts and scenes now have the ability to set a custom icon. Previously, you would have to create a customization to do this, now, you can just set them in your configuration.

      - name: Movies
        icon: mdi:movie-open
            state: on
            brightness: 125
          light.ceiling: off

Custom cards

Are you the creator of an awesome custom card for Lovelace?

We have made some changes to Lovelace that might impact your custom card, so be sure to read the blog post on the developers site about this.

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

  • Tesla - Tesla default scan interval has been raised to 660 seconds from 300 seconds. This is the result of new testing showing the prior default would not allow Tesla vehicles to fall asleep. You should reevaluate your scan interval if you have changed it, to avoid battery drain. The scan interval has had the minimum lowered to 60. - (@alandtse - #31194) (tesla docs)

  • Insteon - The Insteon entity device state attributes were changed to conform to naming standards. Insteon Address is now insteon_address and Insteon Group is now insteon_group. You may need to update automations and scripts that rely on these attributes. - (@teharris1 - #31183) (insteon docs)

  • AVM FRITZ!DECT (Removed) - FRITZ!Dect is being removed and you should use the FRITZ!Box integration instead, which offers more features. - (@escoand - #31359) ([fritzbox docs])

    Example YAML configuration:

      - platform: fritzdect
        username: YOUR_USERNAME
        password: YOUR_PASSWORD

    should change to

      - host: fritz.box
        username: YOUR_USERNAME
        password: YOUR_PASSWORD
  • Danfoss Air - The names of some danfoss_air sensors include a misspelling of the word Danfoss. This typo has been corrected and you will need to adjust all occurrences respectively. - (@KasperLK - #31344) (danfoss_air docs)

    The following sensors are affected:

    • dandoss_air_dial_battery -> danfoss_air_dial_battery
    • dandoss_air_exhaust_fan_speed -> danfoss_air_exhaust_fan_speed
    • dandoss_air_supply_fan_speed -> danfoss_air_supply_fan_speed
  • Météo-France - Météo-France now supports the configuration flow and is now available to be added as an integration from the integrations UI! There are no more monitored_conditions and all sensors will be added automatically. - (@Quentame - #29927) (meteo_france docs)

  • Glances - Glances sensors are now dynamically added, which results in entities having new names, in particular sensors for mounted disks and temperature. You will need to remove the existing configuration and re-add it, and adjust for any automations you have using the new entity names. - (@engrbm87 - #28639) (glances docs)

  • Service Calls - Service calls that reference non-existing entities will now log a warning instead of silently being omitted. If you are using a template and want to select no entities, you need to pass none instead. The TTS integration will no longer target all media players if no entity ID passed in. You need to specify all instead. - (@balloob - #31427)

  • Light - It is no longer allowed to pass both brightness and brightness_pct to light.turn_on service. Previously passing both would have used brightness_pct. - (@balloob - #31452) (light docs)

  • DSMR - Added Belgian meter. Some DSMR sensors have been renamed to align with DSMR specifications. “Power” sensors are now properly “Energy” sensors and those which were previously using “low” and “normal” descriptions now use “tarif 1” and “tarif 2”, respectively. - (@dupondje - #30121) (dsmr docs)

    Example of sensor changes:

    • Power Consumption (low) -> Energy Consumption (tarif 1)
    • Power Consumption (normal) -> Energy Consumption (tarif 2)
  • Orange Livebox Play TV - The Orange Livebox Play TV integration has been removed. A change to the site scraped with this integration has changed, causing the integration to break. This integration violated our design decisions and is therefore removed. - (@frenck - #31525) (breaking change)

  • Core - Only administrator users can stop or restart Home Assistant. - (@balloob - #31509) (homeassistant docs)

  • Sure Petcare - Sure Petcare supports new features and has improved existing features. As a result, you will want to note that household_id has been removed from configuration options as it is no longer needed. - (@benleb - #31437) (surepetcare docs)

    Example YAML configuration:

      feeders: [12345, 67890]
      flaps: [13579]
      pets: [24680]
  • Frontend - frontend.set_theme and frontend.reload_themes now require admin access. This will not break automations that set themes because those are run with admin access. Also, a themes_updated event no longer contains all theme data. - (@balloob - #31654) (frontend docs)

  • Modbus - The Modbus Binary Sensor can now read data from discrete inputs. A new variable input_type was added to define if you want to read from coil or discrete_input. Coil is the default option. - (@vzahradnik - #30004) (modbus docs)

    Example YAML configuration:

      - platform: modbus
        scan_interval: 10
          - name: Sensor1
            hub: hub1
            slave: 1
            address: 100
            input_type: discrete_input
  • Tado - Adding support of multiple Tado accounts has changed the unique ID generation of sensor and climate devices, and now includes the ID of the home.

    In addition, support for water heater zones has been added. Tado hot water zones with temperature control previously created a climate entity, e.g., climate.hot_water, and these will be replaced by a water_heater.hot_water entity. This change is not breaking for hot water zones without temperature control as they do not have a climate zone.

    (@gorynychzmey - #31527) (@michaelarnauts - #30095) (tado docs)

    Example YAML configuration:

      - username: [email protected]
        password: !secret tado_pwd1
      - username: [email protected]
        password: !secret tado_pwd2

    If you have only one account this configuration will also work:

      username: [email protected]
      password: !secret tado_pwd
  • UniFi - Changing tracking settings will no longer disable entities but will remove them completely from the state machine and entity registry. The SSID filter will now mark all wireless clients as not_home if they are connected to SSIDs that are not a part of the filter. - (@Kane610 - #31762) (unifi docs)

  • Rest - Many devices continue to use XML for RESTful APIs. This change implements converting XML output to JSON via xmltojson so it can work with the existing rest sensor component.

    xmltojson tags may be confusing; if you are not familiar with the conversion, please use the xmltodict tool created by @balloob to identify the tags to be used to parse the resulting JSON.

    As the attributes that usually need to be scraped are deeper in the document, support for passing in a template to find the JSON attributes has been added. JSON APIs that do not have their attributes at the top level can also benefit from this change. - (@bdraco - #31809) (rest docs)

    Example YAML configuration:

      - platform: rest
        authentication: basic
        username: username
        password: password
          - "htstatus"
          - "poolsp"
          - "spasp"
          - "pooltemp"
          - "spatemp"
          - "airtemp"
        json_attributes_path: "$.response.temp"
        value_template: ""
      - platform: rest
          - "led0"
          - "led1"
          - "user0"
          - "temp0"
          - "btn0"
        json_attributes_path: "$.response"
        value_template: "OK"
  • GreenEye Monitor (GEM) - Greeneye Monitor temperature readings are now correct (previously they would report as twice the actual value). If you’ve compensated for this in your dashboards or displays, you’ll need to undo that compensation with this release. - (@jkeljo - #31896) (greeneye_monitor docs)

  • Duke Energy - The Duke Energy integration has been removed. The website of Duke Energy changed, causing the integration to break because it relied on web scraping, which is no longer allowed to be used. - (@frenck - #31921) (breaking change)

  • deCONZ - deCONZ will no longer change entities to being disabled when using the integration configuration options but rather remove them completely from the state machine. Enabling the option will load all relevant entities again. - (@Kane610 - #31661) (deconz docs)

  • Ring - All Ring accounts require two-factor authentication. This means that it is no longer possible to configure it via YAML as this cannot support 2FA. - (@balloob - #32039) (ring docs) (breaking change) (beta fix)

  • Hue - The filename option from the Hue bridge configuration has been deprecated in 0.104 and now removed. - (@frenck - #32027) (hue 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/02/26/release-106/

Some real thought and polish has gone into this, well done and Many Thanks

I’ve been watching the changes to the August integration that @bdraco has been making and I’m really excited to see those in play. He’s been working non-stop on it.

No real exciting features the last few months, but the light increase/decrease brightness is great! I can now make some of my automations a lot easier with my Aqara Magic cube!

This is an exciting update! thanks to all devs and fellows here for making it all possible. really great to see all new functionality. (especially high hopes for the changed Hue integration to get rid of the log flooding issue which got introduced lately) thanks for mitigating that so quickly!:

2020-02-26 09:56:13 ERROR (MainThread) [homeassistant.components.hue.light] Error fetching light data: 
2020-02-26 09:56:20 ERROR (MainThread) [homeassistant.components.hue.light] Error fetching group data: 
2020-02-26 09:56:20 ERROR (MainThread) [homeassistant.components.hue.sensor_base] Error fetching sensor data: 
2020-02-26 09:57:22 ERROR (MainThread) [homeassistant.components.hue.light] Error fetching group data: 
2020-02-26 09:57:24 ERROR (MainThread) [homeassistant.components.hue.sensor_base] Error fetching sensor data: 
2020-02-26 09:57:27 ERROR (MainThread) [homeassistant.components.hue.light] Error fetching light data: 
2020-02-26 10:06:15 ERROR (MainThread) [homeassistant.components.hue.sensor_base] Error fetching sensor data: 
2020-02-26 10:06:21 ERROR (MainThread) [homeassistant.components.hue.light] Error fetching light data: 
2020-02-26 10:06:23 ERROR (MainThread) [homeassistant.components.hue.light] Error fetching group data: 

which should be mitigated now. #fingerscrossed

well, tbh, the pain of this is when one turns on the light after it has been dimmed (also using transition to 0) the light still has brightness 0%. Which doesn’t have to hurt on Hue lights, since they can have their turn-on value set in the app. But it does hurt on Ikea Tradfri lights that dont have that option. Setting the default value in the light_profiles.csv would seem a solution for this from a HA point of view. But it isn’t really helpful for lights that are triggered by their linked motion sensor in the Ikea environment…

This was no issue at all before the change in the scene integration took away our much used transition. We could simply transition to the scene settings, and that didn’t change the brightness of the Ikea lights, which turned on nicely afterwards.

Have posted on a few places about this, but it seems to get not spotted by the devs. Hope this post could/will be an extra reminder to have another look at that truly painful decision…

1 Like

My Sengled lights do not support transitions, and I have a complicated set of scripts and input numbers to mimic transitions. It sounds like this brightness_step may either replace my scripts, or at least simplify them, but, I can’t wrap my head around how to use it.

Could someone share an example of how to say, dim the lights from 255, to 1 over the course of a minute? (Or, tell me this new functionality won’t help me)

Just updated, so far so good, everything seems to be working OK so far, no (new) errors, thanks! :slight_smile:

1 Like

Oddly enough, this update caused my previously flawless Hue configuration to begin throwing the errors that many people are saying that this update fixed.

Unexpected error fetching group data: None
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 115, in async_refresh
    self.data = await self.update_method()
  File "/usr/src/homeassistant/homeassistant/components/hue/light.py", line 171, in async_safe_fetch
    return await bridge.async_request_call(fetch_method)
  File "/usr/src/homeassistant/homeassistant/components/hue/bridge.py", line 122, in async_request_call
    return await task()
  File "/usr/local/lib/python3.7/site-packages/aiohue/api.py", line 12, in update
    raw = await self._request('get', self._path)
  File "/usr/local/lib/python3.7/site-packages/aiohue/bridge.py", line 63, in request
    async with self.websession.request(method, url, json=json) as res:
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 1012, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 504, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 847, in start
    message, payload = await self._protocol.read()  # type: ignore  # noqa
  File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 591, in read
    await self._waiter
aiohttp.client_exceptions.ServerDisconnectedError: None

I haven’t installed 0.106 yet but I wish to comment on the quality of the blog post.

I greatly appreciate the details, examples, and images provided to help clearly communicate the most important changes in the latest release. It’s been done in the past but this latest blog post stands out in both breadth and depth. Thank you for the additional time and effort invested to ensure everyone understands both the benefits and potential implications of 0.106. Keep up the great work!


Is there a way to hide people on the map? For now I did that by excluding the map in the configuration yaml.
My parents also have access to my house via the app on their phones. But I don’t want to know where they are and I don’t want them to know where me or my gf are (Except home or away).

1 Like

Use the map card so you can specify who to show: https://www.home-assistant.io/lovelace/map/

Yes but from my understanding, this won’t work with the new more info dialog for Persons.

Yea anyone with access to your HA dashboard can see it and tap on it. To counter this you should keep things like that on a separate view so you can show/hide it: https://www.home-assistant.io/lovelace/views/#visible

Thanks for the tip, it gave me an idea to just hide it all together and make a template sensor for every person.
Might do the trick for now :slight_smile:
Although I would like to see it added in the future

Ha ha ha,
I just read something about hiding people on the map so I went to search.
I got distracted on the links page and instead visited the HA demo page, this says it’s currently 66°C upstairs.

I think someone should call the fire department as @arsaboo 's house is on fire :rofl:

After I upgraded to 0.106 I can no longer load the Entities page on an iPad Pro. Not an old slow iPad. An iPad Pro. The javascript is so heavy now the browser freezes.

I have to kill the browser each time I open the page. The browser just freezes from overload.

This is the 2nd feature that does not work on iPad now. The History has not worked for months on an i Device. Now it is entities. You guys need to test your code on mobile devices and tablets. The code is getting too heavy now

1 Like

Hello there :slight_smile:
Thanks again to all for this amazing update (downside, it nows takes a long time to read it all :smiley: )

I’ve noticed in that change : https://github.com/home-assistant/home-assistant/pull/31713
@balloob said : “Hue groups are also kinda useless as Hue can be controlled via groups in Home Assistant”.
From a performance point of view isn’t it better to use Hue groups (one call made from home-assistant) instead of Home-Assistant groups ? (do they also only send one call ? that call isn’t slower since it is a list of all lights ?)
My issue : when i turn on/off a group i wanna see all the lamps go at once 99.99% of the time. And wanna know whats the best way to achieve this.

Does anyone has some insights about this ?

I’m still on 0.105.5, my history loads pretty much instantly on a base model iPad (not pro) using Chrome, and on my iPhone 7 using Chrome or using the iOS app. I have it pared down to only the entities I care about, but it’s more than a few.

I’m on a 4 year old Samsung galaxy phone and it still loads without issue.

Edit: maybe rebuild your database?

After Update 0.106 “custom:dual-gauge” not working :frowning: