Why Home Assistant doesn't have an external API for integrations

1 minute reading time

Home Assistant is the world’s largest home automation platform talking with over 1700 different devices and services. Home Assistant works with these via “integrations”.

Each integration runs inside Home Assistant. They convert the data from the device into data that Home Assistant understands and forward commands from Home Assistant back to the device. For this to work a device or service needs to have an application programming interface (API).

It is not possible for a device or service to provide lights, switches or other device types via the Home Assistant API without an integration. It can be faked, but it won’t work correctly. We explicitly did not add this feature because of interoperability.

If Home Assistant were to offer this option, devices and services would no longer be required to create an API for control – they could just implement ours. This creates vendor lock-in, locks other home automation platforms out and hurts the open Internet of Things ecosystem.

You should be able to access your data from your devices without any restrictions. Requiring a specific application to get to your data is not the solution.

Our goal is a home where all smart devices can be managed locally.

This stance will hurt us in the short term because we get less integrations. It is more work for a manufacturer to create an API and a Home Assistant integration.

In the long term the user will win. Devices with local APIs will still work 10 years from now and no one will be held hostage by vendor lock-in because some of their devices only work with Home Assistant.

Note about Home Assistant APIs: Home Assistant does have an API, just not for integrations. It allows you to access all your data in real-time. We also have a data science portal that documents how you can query the historical data stored on disk.


Easier notifications in iOS 2021.5

three minutes reading time

Notifications are a popular feature of the Companion apps, but the differences between Android and iOS made it painful to use them to their full potential. Starting with today’s release of iOS 2021.5, the vast majority of functionality is now shared across both platforms. As part of this, the notifications documentation has been extensively updated as well.

Actionable notifications

Building actionable notifications for iOS and watchOS no longer requires defining categories in advance of using them; instead, you can include the actions right in the notification. Support for macOS will be included in a future release. Categories were one of the hurdles around multi-server support, so removing them entirely solves that part!

Included in the documentation is how to migrate from categories to dynamic actions. Both are still supported in the app at this time, but categories will be removed in the future.

Below is an example script which sends an actionable notification and uses script variables, wait for trigger, and choose to decide what to run.

# In a script's `sequence` or an automation's `actions`
- alias: "Set up action variables"
  variables:
    # Including 'id' in 'action' allows us to identify this script run
    # and not accidentally trigger for other notification actions
    action_very: "{{ 'VERY_' ~ context.id }}"
    action_mod: "{{ 'MOD_' ~ context.id }}"
- alias: "Send the notification"
  service: notify.mobile_app_zac_iphone
  data:
    message: "Are you hungry?"
    data:
      actions:
        - action: "{{ action_very }}"
          title: "Very Hungry"
        - action: "{{ action_mod }}"
          title: "Moderately Hungry"
- alias: "Wait for a response"
  wait_for_trigger:
    # We wait for specific actions because we don't want to run for 
    # any action, only for a response to the one we just sent
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: "{{ action_very }}"
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: "{{ action_mod }}"
- alias: "Handle the response"
  choose:
    - conditions: "{{ wait.trigger.event.data.action == action_very }}"
      sequence:
        - service: notify.notify
          data:
            message: "⚠️ Soylent Launch Incoming"
        - service: homeassistant.turn_on
          target:
            entity_id: switch.soylent_dispenser
    - conditions: "{{ wait.trigger.event.data.action == action_mod }}"
      sequence:
        - service: notify.notify
          data:
            message: "Anyone want to grab a croissant? -Zac"

This works for both platforms without including any platform-specific logic! Other features around actionable notifications are also shared, including adding a URL to open when picking an action:

actions:
  - action: "URI"
    title: "View More"
    uri: "/lovelace/some-dashboard"

Replacing, grouping, clearing

Replacing existing notifications or threading certain notifications was another difference between platforms, and the iOS-specific versions were a bit less ergonomic, so the Android versions now work for both. You can now use the simpler tag and group keys:

- service: notify.mobile_app_<your_device>
  data:
    message: "The front door is unlocked!"
    data:
      # replace any existing front_door_lock notifications
      tag: front_door_lock
      # thread with other doors notifications
      group: doors

You can also remove an existing notification by its tag:

- service: notify.mobile_app_<your_device>
  data:
    message: clear_notification
    data:
      tag: front_door_lock

Attachments

Attachments no longer require certain categories for dynamic attachment, so you can include streaming playback of a camera for any notification:

- service: notify.mobile_app_<your_device>
  data:
    message: "Motion detected"
    data:
      entity_id: camera.outside

Specifying a non-dynamic attachment is a little easier now, allowing you to short-hand the attachment part:

- service: notify.mobile_app_<your_device>
  data:
    message: "3D Print Complete"
    data:
      image: /media/local/3dprinter/latest.jpg

You can use video, image and audio. Only image is supported on Android.

You may have noticed that iOS notifications have file limits; this release adds on-demand downloading of attachments that exceed the size limit or when requested using the lazy attachment option.

Future areas of improvement

We’re still on the lookout for places of confusion or redundancy in notifications across the iOS and Android apps. What would you like to see improved?


Community Highlights: 20th edition

three minutes reading time

Damn! We are already at the 20th edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, we thought was worth sharing.

Do you want to share something for the next edition? Information on how to share.

./Klaas
Intern on Home Assistant Energy

Blueprint of the week


Recently Home Assistant has received support for the use of alarm keypads with deCONZ, which works with an alarm control panel entity and the deconz_alarm_event.

Therefore this week’s blueprint is that of Robban, with which you can use a physical (Zigbee) keypad to switch your alarm on or off.

Keep in mind: the support in deCONZ rest plugin is still in an alpha stage.

Try it out! Read more about it on the community forum or install this automation in your instance with a click on the My button!

Lovelace Dashboard


Also this week we have a new Lovelace dashboard for the necessary portion of inspiration 💡 This time it has become that of StreetInevitable5427, a beautiful Neon UI that looks so sleek that you would love to hang it on your wall 🖼️

Take also a look at the original post on Reddit. Would you like your dashboard to be in the community highlight? Drop it on Reddit and maybe I’ll pick it out for the next edition.

Browser Extension


Fresh off the press, we came across something really cool on the community forum.

bokub has made browser extensions for Chrome and Firefox with which you can display a Lovelace dashboard in your browser and thus quickly switch a light, for example.

ESPHome 1.17


A new version of ESPHome has also been released this week! 🥳

In particular, I would like to point out the new pulse_meter component, which is ideal for if you want to measure all your energy via a pulse LED on your smart meter or when you want to read what your water consumption is.

By combining measuring how many pulses there are within a time frame and the time between each pulse, you get even better accurate readings!

Got a tip for the next edition?


Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?

Click here to send us your Community Highlight suggestion.

Also, don’t forget to share your creations with us via Social Media:

See you next edition!


2021.5: Stability, performance, triggers, color modes!

82 minutes reading time

Here I am again, a month later. Are you used to these monthly release cycles yet? Hello, 2021.5! Nice to see you this May!

I would say this release is a bit less feature rich compared to the previous release (which was epic, in my opinion!). But it is not a bad thing!

Some really good stability improvements have been introduced this release! Not the hot new items you want to explore immediately, but these fundamental things will really help our systems now and in the future. Making this release an upgrade that would be a smooth sail for most of us (check the breaking changes).

The most visual part changed this release can be found in the facelift that the integrations dashboard got. Oh, and the new color modes for lights is an amazing improvement as well!

May… For me, that feels like the summer is slowly trying to make its appearance and I’m looking forward to it 🕶. Do you have a summer Home Automation project figured out yet?

Oh, and don’t forget to tune into the release party live stream later today! (Spoiler alert: I’ve heard we might have a special guest, only Paulus didn’t want to tell me who it is…)

2021.5 Stream Party on YouTube: https://www.youtube.com/watch?v=bvAKUz-bmqU

../Frenck

Database upgrades & performance

There is a database upgrade in this release, but worry not as database upgrades now happen in the background and no longer prevent Home Assistant from starting. During migration, Home Assistant will prevent being restarted or stopped until the migration has been completed.

Thanks to @lmagyar and @raman325 we now can store events up to 64 characters and the recorder won’t get stuck if there is one exceeding that length.

And if you have ever had to wait for the recorder to shut down, worry no more as Home Assistant can now shut down successfully, even when the database is broken.

Talking about broken databases: if you have ever had database corruption of your SQLite database, you probably know how much of a pain it is to get things back up and running again. We recently added live recovery to allow Home Assistant to recover and start a new database when the recorder encountered corruption when saving events or states to the database. This release extends this live recovery to work during migration and purge. This also means no more waiting for a database check on unclean shutdown!

Finally, the recorder performance has been improved by reducing the write frequency.

Startup visibility - What is taking so long?

Ever wondered why starting up Home Assistant took so long?

Stop wondering, as you can now see which integration is delaying startup as the integration taking the longest time to set up is now displayed when Home Assistant is starting.

Screenshot of Home Assistant starting Screenshot of Home Assistant reporting integrations that are being set up.

And in case you missed those notifications, you can always check the information panel afterward.

Screenshot of information panel showing integration set up times Screenshot of information panel showing integration set up times.

This My button brings you right to it:

Why Home Assistant didn’t restart when I pressed the restart button?

So, why didn’t Home Assistant restart when you press the restart button? This question we have seen quite a few times and was a rather annoying occurrence that has been improved.

The restart button now provides feedback! So you know right away if a restart can’t happen because of invalid configuration, broken integration or database upgrade in progress.

We adjusted timeouts and fixed a few places where shutdown would block forever, for example, when restarting Home Assistant the configuration gets checked and there was a case that could hang in this check forever.

This means restarts are faster now! As more parts of Home Assistant now cancel/react to the shutdown procedure better than before (from the Month of What the Heck).

We also audited the top 35 integrations to make sure they stop polling on stop. Thanks for turning on analytics!

Updated look and feel for the integration dashboard

The Integrations dashboard has been updated to have a more compact look and provide more useful information.

For example, it now shows the state of the integration and in case of a failure, it will now tell you why that is.

Screenshot of the updated integrations dashboard Screenshot of the updated integrations dashboard.

Additionally, you can now recognize integrations that rely on the cloud (they show a little cloud label) and integrations that are installed as custom integration (they show a little package label).

Color modes!

We now have support for RGBWW, RGBW and many more color modes!

Previously, we relied mainly on HS (Hue Saturation) & Brightness (HSB/HSV) and colors in Home Assistant was based on that. But now, an integration can provide the actual color mode an light supports. This allows Home Assistant (and integrations) to adjust the behavior for the light better.

For example, the frontend will adjust the color picker based on the color mode of the light. The more info dialog for lights have been modernized to support this change:

Screenshot of the updated more info dialog for lights Screenshot of the updated more info dialog for lights.

Please note, that at this moment not all integrations are able to support color modes yet. However, all lights do have an nice updated UI as in the screenshot.

Trigger-based binary template sensor

In the previous release, we introduced a trigger-based template sensor. This release extends on that features by adding support for trigger-based binary sensors using templates.

Trigger-based binary sensors can also be configured with an auto_off duration. This will automatically turn a binary sensor state to off after the specified duration.

template:
  - trigger:
      - platform: event
        event_type: netatmo_event
        event_data:
          type: movement
    binary_sensor:
      - name: "Motion"
        # We use auto_off, so just set it to true on each trigger
        state: "true"
        device_class: motion
        # Automatically turn off 60 seconds after the last event
        auto_off: 60

Some other ideas:

Docker images now signed and available on the GitHub Container Registry

We are now using both DockerHub and the new GitHub Container Registry.

If you want to use the new GitHub Container Registry, just use:

ghcr.io/home-assistant/home-assistant

(Instead of homeassistant/home-assistant)

Our core images are now also signed with CodeNotary and allowing you to check the integrity of our images.

CodeNotary is a distributed Ledger solution using the immudb as a database for built-in cryptographic proof and verification.

If you are running the Home Assistant Operating System or a Supervised installation type, we already check the integrity of our distributed content. If you running the Container installation, you can install the VCN tool.

Now you can use it like so:

docker pull ghcr.io/home-assistant/home-assistant:2021.5.0
vcn authenticate --org home-assistant.io docker://ghcr.io/home-assistant/home-assistant:2021.5.0

This will tell/confirm that the image you have, is actually created and shipped by the Home Assistant project.

Other noteworthy changes

There is much more juice in this release; here are some of the other noteworthy changes this release:

  • Are you in meetings a lot? The new mutesync integration shows if you’re in a meeting and if you’re muted in Home Assistant. This will unlock some cool do-not-disturb automations.
  • We did an audit of memory leaks and fixed a couple of generic cases in our core codebase. But also fixed over 15 cases during unload/reload in popular integrations.
  • The TTS service by Home Assistant Cloud now uses an improved bitrate, making it sound even more impressive.
  • ClimaCell now supports the v4 API. So, If you’ve wanted to test it out you can now actually use it with the new API keys. Thanks @raman325!
  • If you are into templating, we now have min() and max() available as functions in Jinja templates.
  • The AdGuard integration now supports multiple instances thanks to @eifinger.
  • When viewing your logs in the frontend, the log entry will tell you if the log was created by a custom integration.
  • If you have a Sonos Move or Sonos Roam, you can now see their battery level and charging state. Thanks for that @hufman and @jjlawren.
  • Template covers now can have an opening and closing state, which was added by @bdr99, thanks for that!
  • The ZHA integration now has configuration options in the UI, allowing you to set things like default transition times for your lights. Thanks @dmulcahey!
  • The Z-Wave JS integration now allows you to re-interview a device from the UI thanks to @cgarwood.
  • @cgarwood didn’t stop there, you can now opt-in for sending Z-Wave JS telemetry to the Z-Wave JS project to help them out. This can be turned on in the Z-Wave JS configuration panel.

New Integrations

We welcome the following new integrations this release:

New Platforms

The following integration got support for a new platform:

Integrations now available to set up from the UI

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

Release 2021.5.1 - May 7

Release 2021.5.2 - May 10

Release 2021.5.3 - May 11

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.

Read on →

Community Highlights: 19th edition

two minutes reading time

The 19th edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, we thought was worth sharing.

Amazing to see how many reactions there have been after sharing the internship progress, we have seen many cool things and if you have any input you can still share this of course! ❤️

Do you want to share something for the next edition? Information on how to share.

./Klaas

Blueprint of the week


This week’s blueprint is that of delphiki, with which you can plan on which days of the week your vacuum cleaner should start cleaning and at what time. Try it out! Read more about it on the community forum or install this automation in your instance with a click on the My button!

Lovelace Dashboard


Also this week we have a new Lovelace dashboard for the necessary portion of inspiration 💡 This time it has become that of Make_Itt_Work, where he also processed the telemetry data from his car in the dashboard. Now we are of course very curious how that works? 😄

Take also a look at the original post on Reddit. Would you like your dashboard to be in the community highlight? Drop it on Reddit and maybe I’ll pick it out for the next edition.

Vacuum Card


Besides being able to automate when your vacuum cleaning robot gets started, you probably also want to show the status of your robot in Lovelace. Then try the vacuum card from denysdovhan, with which you can show that in a beautiful way and there is support for the well-known models that are now available on the market.

OpenTTS 2.0


Maybe the name still sounds fairly unknown to you, but OpenTTS is an add-on, which gives you the possibility to use multiple open source Text to Speech systems. So that you can eventually have text spoken on: for example, a Google Home speaker. synesthesiam recently released a new version of OpenTTS and you can install it as an add-on in Home Assistant.

Give it a try!

Got a tip for the next edition?


Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?

Click here to send us your Community Highlight suggestion.

Also, don’t forget to share your creations with us via Social Media:

See you next edition!


Community Highlights: 18th edition

three minutes reading time

The 18th edition of the Home Assistant Community Highlights! Some interesting things popped up around our community, we thought was worth sharing.

Do you want to share something for the next edition? Information on how to share.

./Klaas

Blueprint of the week


You probably recognize it, while watching a movie you need to go to the toilet and you forget to pause the movie! What if you could automate this with a blueprint?

With the blueprint from jfedor you can pause your media player by turning on a light and if you turn it off within a certain time, the media player will continue. Read more about it on the community forum or install this automation in your instance with a click on the my button!

Lovelace Dashboard


Also this week we have a new Lovelace dashboard for the necessary portion of inspiration 😄 This time it has become that of Crixle, what he has made in the past 5 months. Possibly this design can be used quite well for a tablet on the wall. Take also a look at the original post on Reddit

Would you also like your dashboard to be in the community highlight? Drop it on Reddit and maybe I’ll pick it out for the next edition.

EV Charger Card


Looking for a way to show the charging of your electric car in a beautiful way in Lovelace? Then try the EV Charger card made by tmjo.

Home Assistant Energy


Internship progress

It has been 11 weeks since I started as an intern at Nabu Casa, where I focus on how Home Assistant can be used to gain insight into your energy data and how to optimize your consumption. Time to give a brief summary of what is currently going on.

We are currently trying to design a ready-made Lovelace dashboard, in which all your energy data comes together. You can see a first paper prototype sketch below, if you have input on this topic, please share it with me via the Twitter thread!

Sketches that are made for Home Assistant Energy

In addition, I’m also working on an analog pulse meter, working with ESPHome that you can use to read the pulse LED on a meter. YAML configs for power plugs from Blitzwolf etc.

More information can also be found in the twitter thread below.

Got a tip for the next edition?

Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?

Click here to send us your Community Highlight suggestion.

Also, don’t forget to share your creations with us via Social Media:

See you next edition!


Community Highlights: 17th edition

two minutes reading time

For me personally a small milestone: it’s already the 10th community highlight that I have written. Please let me know in the comments what you think. Some interesting things popped up again around our community, that I thought was worth sharing.

Do you want to share something for the next edition? Information on how to share.

./Klaas

Blueprint of the week

It may have happened to everyone, the washing machine has finished and you have completely forgotten to take it out. We could probably do something with that with a blueprint.

With the blueprint from Sbyx you put a smart plug on the washing machine and you get a notification when the laundry is ready. Read more about it on the community forum or install this automation in your instance with a click on the My button!

Bonus side effect: if your smart plug can measure energy, you also immediately know what it uses and how much a wash has cost you. Give it a try!

Battery state card

Do you want to keep an eye on all your battery powered devices? Then try the battery state card from maxwroc, so that you can see by means of a color which device is almost empty and it’s time for a battery replacement.

Lovelace Dashboard

Also this week we have a new Lovelace dashboard for the necessary portion of inspiration 😄 This time it has become that of FreakLikeMe0991, which, like last week’s dashboard, mainly focuses on the use from a mobile device.

New >3 Click Mobile Dashboard - Work in Progress from r/homeassistant

Would you also like your dashboard to be in the community highlight? Drop it on Reddit and maybe I’ll pick it out for the next edition.

Holodeck Project

We also came across a very cool project on our community forum namely the Holodeck, made by smowk: a smart assistant in your kitchen. It projects images (like a Lovelace dashboard or cooking video) onto your kitchen cupboard and could be operated by voice. You can read a lot more about it here.

HOLODECK

Got a tip for the next edition?

Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?

Click here to send us your Community Highlight suggestion.

Also, don’t forget to share your creations with us via Social Media:

See you next edition!


Community Highlights: 16th edition

two minutes reading time

What did you think of the release last Wednesday? A lot of cool things have been added! But there were also a lot of great projects shared this week from the community and we have selected the best for you. So here’s the 16th edition of the Home Assistant Community Highlights!

Do you want to share something for the next edition? Information on how to share.

./Klaas

Blueprint of the week

You’re leaving home and oh dear! It turns out that one of your lights is on 💡 What if you then receive a notification with an option to switch off the light, without having to open the Home Assistant app first?

With the blueprint from vorion you can easily get started to create your own actionable notifications, give it a try. Read more about it on the community forum or install this automation in your instance with a click on the my button!

Google Home

Long ago it was possible to read the alarms and timers from your Google Home in Home Assistant, due to a change in the API this was unfortunately no longer possible.

But thanks to a new custom integration from leikoilja, it’s now possible to integrate alarms or timers that you have set up on a Google Home device. For example, you could switch the lights automatically in the morning based on an alarm clock that you have set.

Tempometer Gauge Card

Are you looking for a card to spice up your existing gauge card? Then try the tempometer gauge card made by SNoof85.

Lovelace Dashboard

This week also a Lovelace dashboard and this time that of agneevX, the nice thing about this dashboard is that it’s designed from a mobile first principle. Which means that you make a design / dashboard for the smallest screen (mobile) and then work out step by step how it will look on a larger screen (desktop).

You can find all his code in this repository on Github.

Got a tip for the next edition?

Have you seen (or made) something awesome, interesting, unique, amazing, inspirational, unusual or funny, using Home Assistant?

Click here to send us your Community Highlight suggestion.

Also, don’t forget to share your creations with us via Social Media:

See you next edition!


Home Assistant Companion Android App April 2021 Release

five minutes reading time

Hey Everyone! It’s time for the April 2021 Android release. Last month we wrote that we would be aligning our releases closer to Home Assistant core so here we are! Another month went by and the Android app has started to see more contributors coming along. Hopefully, you will join us next month as we can always use more contributors to move forward faster.

In-App Log Viewer

This release has a new feature that will make viewing and sharing the logs MUCH easier. Some of you may recall the large number of steps needed to get Android logs when you open issues. This usually involved installing Android Studio or another app and having to plug your device into a computer to grant some special ADB permissions. This was very difficult to get set up for the average user and just wasn’t user-friendly.

We’ve added a new option to the App Configuration called “Show and Share Logs”. It will show all the logs from our app, including debug logs to help troubleshoot issues such as when the location does not update or if the app is using the correct URL. You are not only able to view this log but also share and select from it so you can copy the logs to a GitHub issue for our team to look into.

Screenshot of in-app log viewer Screenshot of In-App Log Viewer

Settings Improvements

We have had several improvements made to the overall design of the App Configuration pages to make better use of the space and add some neat features. First and foremost, every setting screen now has a new help icon taking you to the proper place in the documentation like location settings or even notifications. Just look for the new help icon at the top right-hand corner, if the page does not offer enough information.

As of this release the app now has a total of 71 sensors, given your device supports them all your number may be less. That is a lot of sensors and we don’t expect a lot of users to actually use them all. We have added 2 new features to make this page easier to navigate. You can now filter by showing only the enabled sensors to get rid of the sensors you don’t want to use, if you have all sensors enabled don’t expect to see this filter. You can also perform a search against the list of sensors to find one quickly and manage it.

Notification History now lets you search by the message that was sent to the device. Searching will bypass the filter options we have, which limits the view to the last 100 notifications. Filtering and delete options have been moved to the top right-hand corner to make better use of the space.

Screenshot of Sensor Search and Filter Screenshot of Sensor Search & Filter.

Shortcuts

Sometimes when you open the app you may already know exactly where you want to go. You may find yourself on the same view often to see your cameras or give the nursery a quick look to make sure things are ok. You may even want to quickly see the history of an entity like when the door was last opened. In this release, we have introduced Android Shortcuts which will let you get to anywhere in the Home Assistant frontend quickly, directly from your home screen. Shortcuts will look like a separate app on the home screen allowing you to make them easily accessible and even place them into a folder for better organization. You can navigate to any Lovelace view or dashboard including other pages like the Shopping List. You can also navigate to any entity directly to get more information like the history or see the graph.

There are a few different shortcut types and in the nature of Home Assistant, we have opted not to add static shortcuts because they are static! We support dynamic shortcuts which will show up under the app long-press menu. Once you create a shortcut, you will be able to drag it onto your home screen. There is also support for pinned shortcuts that can be added automatically to your home screen without needing to drag the icon, given your device and launcher support pinned shortcuts. Check out the documentation for more details including known limitations.

Screenshot of Shortcuts Screenshot of Shortcuts

Other Changes

Here is a list of the other changes you may notice:

  • Battery Temperature Sensor
  • Notification command to turn on the screen
  • BLE Transmitter has a new setting to enable/disable the transmitter so the sensor can remain enabled. This new setting will correspond to the existing notification command.
  • High Accuracy mode has a new zone-based automation feature allowing you to trigger this mode faster. See the documentation for more details.

Screenshot of High Accuracy Zoning Screenshot of High Accuracy Zoning.

  • Long-pressing an entity in Android’s Power Menu will now take you directly to the entity instead of the home page.
  • Covers that support setting the position are also supported in Android’s Power Menu.
  • Lots of fixes and improvements in all other areas of the app.

Big thank you to everyone involved. Please keep those bug reports and feature requests coming!

Changelog


2021.4: For our advanced users ❤️

93 minutes reading time

Survived April fools day? I assure you, this April release is no joke!

This release is dedicated to our more advanced user base, as it is packed with some really advanced features and enhancements our more experienced users will love. Ready to debug your automations? Yeah…

Not that advanced of a user? I’m sure there is something in here for you to look forward to as well.

Oh, by the way, have you heard the news of ESPHome joining the Home Assistant family? If not, you should definitely read the blog post announcing it!

Enjoy the release!

../Frenck

Database upgrades, please be patient

This release contains database migrations, meaning that the format of how your history is stored is changing. This migration is automatically performed after upgrading and takes a bit of time. The time it takes depends on how much history you have stored and how fast your system is.

Please be patient when upgrading to this release.

Automation debugging

Wait, why didn’t that light turn on? Why isn’t the thermostat adjusted? Why is this automation not working? What is going on here?! This is a haunted house!?!

Sounds familiar? I’m sure we all had these moments, but are you ready for this? We can now debug automations!

Screenshot showing the automation trace of a previously ran automation Screenshot showing the automation trace of a previously ran automation.

The above screenshot shows a previous run of an automation. The automation is displayed using an interactive graph, which highlights which path the automation took. Each node in the graph can be clicked to view the details on what happened with the automation during that specific step. It traces the complete run of an automation run.

If an automation didn’t run as it should, this will allow you to debug and understand why it ran the way it did.

This extremely advanced and super useful feature is thanks to the hard work of @emontnemery who build the backend for this. The beautiful graphing was made by @thomasloven, and all the frontend work by @balloob & @bramkragten. Marvelous job guys! Thanks!

Additionally, a special thanks to all the (beta) testers that helped testing this feature and those who provided trace samples that helped to squash bugs!

Got questions about this feature? Want to see it in action? Be sure to tune in to the 2021.4 release party stream later today!

Home Assistant Analytics

Now don’t be scared by the title!

Today we introduce: Home Assistant Analytics. Opt-in, privacy-aware, public and open source. Just as it all should be for our project.

@ludeeus did a fantastic job writing this new integration. You decide if you turn it on or not; however, we guarantee its privacy-aware. Doubt it? Review it! Everything is open source!

Not open enough for you? We are publishing the result for everybody to see:

Screenshot of the Home Assistant Analytics website Screenshot of the Home Assistant Analytics website.

Well, maybe you want to view the public result yourself:

https://analytics.home-assistant.io

So why do we do this? Well, it helps the project and all contributors to see things like: Most used integrations. This can significantly help with improving project priorities. It also helps to convince manufacturers to work with Home Assistant, add local control and privacy-focused features.

“But the updater did this already, right?” Yes, well, the updater has actually been broken. So while we had some data, it was barely usable (actually not useable at all). Instead of fixing the updater, we now have a better solution that better matches our project goals. The updater still exists; it now just does one single thing: showing if an update is available.

Want to help the project out? Please enable Home Assistant Analytics. We would be very grateful!

You can find the settings in the general configuration options, or click the My Home Assistant button below to go directly to it. (Only visible to owner users)

Screenshot of the Home Assistant Analytics options Screenshot of the Home Assistant Analytics options, you control the amount of data you share.

For more information on how this all works and what data is shared, check out our documentation.

Thanks for sharing already! ❤️

Warnings for undefined variables in Templates

This feature is really cool. While technically a small improvement, it is a change that can impact you (as in “breaking”), but also, will greatly help you!

So imaging this little template: {{ my_variable }}

Previously, if my_variable would not exist in the template or system as a variable, Home Assistant would just ignore it and skip over it.

While this can be convenient, it can become problematic when it was misspelled or referring to a variable that doesn’t exist at all. For example, if you would have mistyped it: {{ my_varaible }}, you would never know something is wrong, unless you spotted it.

As of today, Home Assistant will tell you this, using a warning in the logs!

Screenshot of undefined variable warning log Screenshot of undefined variable warning log.

This helps to find templates that behave unexpectedly because the variable you thought was there, isn’t. It is quite possible you get a bunch of warnings after upgrading to this release. Fixing those warnings, really helps to improve your setup.

So, what if a variable isn’t always there, but I still want to use it? Well, you can give it a default, for example: {{ my_variable | default }}. Or even a default value (10 in this example): {{ my_variable | default(10) }}.

Please note that these are just warnings for now. We plan to replace the warning with an error as of Home Assistant 2021.10 (in October).

Filtering automations, scripts and scenes

Categorizing automations, is definitely one of the most requested things in our history. This became clear again during last year’s month of what the heck and various issues/discussions/feature requests.

Suggestions for labels, folders, and many more have been created. However, we already have some great categorizing features in Home Assistant itself:

Devices, Areas & Entities.

Screenshot of filtering automations by the living room area Screenshot of filtering automations by living room area.

As of today, you can filter your automations, scripts and scenes by area, device or entity. For automations and scripts, it goes one step further; it magically finds those that affect the area, device or entity being filtered.

So, you can now look at the automations affecting your living room area (even if those automations itself are not in the living room area) and also filter the automation list with just the ones that touch your thermostat.

Z-Wave JS update

So before we talk about The nice new things in Z-Wave JS, there are breaking changes in this release for the Z-Wave JS integration that could affect your existing automations. Be sure to read the breaking changes section for more info.

Alright, now the fun stuff! You can now configure each Z-Wave device straight from within Home Assistant. When you view a device in the Home Assistant frontend, you can click on “CONFIGURE DEVICE” button that is shown on each device page. This allows you to manage and adjust device (node) specific configuration parameters for the selected device.

Screenshot of configuring a Z-Wave device from within Home Assistant Screenshot of configuring a Z-Wave device from within Home Assistant.

Furthermore two new, advanced, services are introduced:

Trigger-based template sensors

This release adds initial support for a pretty advanced new, helpful feature. Template sensors, that are updated based on triggers and the data that comes with it.

Whenever the trigger fires, the template sensor will re-render and it will have access to the trigger data in the templates. This feature is a great way to create data based on webhook data, or have sensors be updated based on a time schedule.

See, for example, these two template sensors that update based on a single webhook trigger using data pushed into the webhook:

# Example configuration entry
template:
  - trigger:
      - platform: webhook
        webhook_id: my-super-secret-webhook-id
    sensor:
      - name: "Webhook Temperature"
        state: "{{ trigger.json.temperature }}"
      - name: "Webhook Humidity"
        state: "{{ trigger.json.humidity }}"

You can test this trigger entity with the following CURL command:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"temperature": 5, "humidity": 34}' \
  http://homeassistant.local:8123/api/webhook/my-super-secret-webhook-id

It is not just webhooks! Any trigger that you can use in automations, can be used to update these types of template sensors.

For this release, it only works for sensors; other platforms are not supported yet.

Please note: that these new template sensors are configured under the template: key in the configuration and is using a new configuration format and keys. For more information, see the documentation.

UI selectors for script fields

You can now use UI Selectors for you scripts field parameters. This brings the same UI capabilities that Blueprint have to scripts. This allow for creating advanced scripts that you can later easily reuse in your UI (even in UI automation).

Screenshot of scripts using selects in its fields Screenshot of scripts using selects in its fields.

For more details on these new field configuration options, see the scripts documentation

Other noteworthy changes

There is much more juice in this release; here are some of the other noteworthy changes this release:

  • The Supervisor is now also in the integrations dashboard, and provides entities for all kinds of things! These entities are disabled by default, so head over to the integration and see if there anything in there you could use. Thanks @raman325!
  • The develo Home Control (@Shutgun), Apple TV (@bdraco), August (@bdraco) and MQTT (@RadekHvizdos) integrations can now suggest areas.
  • You can now configure additional Google Cast devices by IP address via the integrations options. This is helpful in case of mDNS issues. Thanks @emontnemery!
  • @joshmcrty added support for selecting the number formatting you like on your profile! Awesome work!

Screenshot of selecting the number format you prefer in your profile Screenshot of selecting the number format you prefer.

  • @marvin-w added support for unique IDs to KNX entities. So, as a KNX user you can now tweak your entities in the frontend and group them into areas!
  • HomeKit now supports CO/CO2 device classes, thanks to @iMicknl!
  • @robertdelpeut added monthly and yearly totals to the DSMR sensor, thanks!
  • Hyperion users can now hide certain effects from the UI using integration options. Thanks, @dermotduffy!
  • Got that one message in your logs that you don’t care about? @jshufro added support for filtering log messages using regular expression!
  • The Plex integration now provides library count sensors! These are disabled by default by can be enabled if you like that. Thanks, @jjlawren.
  • The Quickbar had an update from @donkawechico! So press those C & E keys on you keyboard to see those beautiful new labels.

New Integrations

We welcome the following new integrations this release:

New Platforms

The following integration got support for a new platform:

Integrations now available to set up from the UI

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

Release 2021.4.1 - April 8

Release 2021.4.2 - April 9

Release 2021.4.3 - April 10

Release 2021.4.4 - April 13

Release 2021.4.5 - April 16

Release 2021.4.6 - April 19

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.

Read on →