Blog
0.114: Dark mode, Open Z-Wave progress and more automation & scripts
Ooh boy, time flew this release cycle; it is time for 0.114 already!
Personally, I’m hardly even done implementing all automation features added in the previous release. 😅
Ever since our Lovelace UI started as a beta, back in 2018, one of the most requested features - arguably - is a dark mode. No wonder, as a dark mode is added to software everywhere nowadays.
This release adds dark mode! @bramkragten
This is by far the most noticeable feature of this release, mainly because it is immediately apparent after the upgrade.
Meanwhile, the beta Open Z-Wave integration picks up speed in terms of contributions, reports, fixes and improvements. I’ve been using it already, and I love it. My Z-Wave network has never been better and more stable. If you haven’t tried it yet, I would highly recommend doing so. There is a nice community guide on how to test it without switching over.
Besides the listing below, 0.114 may feel a bit “empty”, however, it isn’t. It is packed with little things and fixes. The “All changes” section is definitely worth a look this release.
Enjoy the release.
../Frenck
Dark mode and theme color pickers
We now have official support for dark mode. 🎉
We detect if your device is in dark mode; if that is the case, our default theme will go dark. You can override the automatic switching between dark and light theme in your profile.
Furthermore, you can now also select the primary and accent color for the default theme. We calculate all other colors to make sure everything matches and is readable.
Screenshot of the new dark mode and theme settings.
So if you upgrade to Home Assistant 0.114, you are using the default theme and your device is set to a dark mode; Please be aware that after upgrading, you will get a dark theme by default in that case.
Also, when picking colors, make sure you choose a primary color that is readable on both a light and dark background. For now, this is just a local setting and has to be applied to every device.
For custom themes, there is a new option on the set_theme
service call,
mode: 'dark'
; this allows to set a theme that will be used when your device
is in dark mode.
Lastly, when using the set_theme
service, the settings are now persistent
across restarts. So if you have an automation that calls set_theme
on startup,
you don’t need it anymore. 😉
Automation & Scripts updates
In Home Assistant 0.113 we added tons of new features to automations and scripts. This release contains some fixes for issues discovered and reported, but also adds some smaller new features to extend it even more.
First of all, the repeat and choose actions are now available when creating automations or scripts via the UI.
Screenshot of the new automation features available in the UI.
Sub-second precision has been extended and is now available in all
time-related notations. For example, you can now use 2.5
seconds/hours/minutes
or even use it in full time notations: 23:59:59.999
.
The automation.turn_off
service now accepts a stop_actions
data parameter.
By default, when turning off an automation, any currently running automation
will be stopped. This new option allows you to turn off an automation
and optionally leave any currently active actions running.
Lastly, a small shortcut has been added to the time
trigger, which now accepts
multiple time values.
automation:
- alias: "Example with multiple time values in a single time trigger"
trigger:
- platform: time
at:
- "05:00:00"
- "06:00:00"
- "10:00:00"
action:
choose: ...
Open Z-Wave (beta)
The Open Z-Wave (beta) integration is coming along nicely and others are
started helping out as well! A shout out to @firstof9
Some additional information is added to the UI for Open Z-Wave, you can now see device information right from the device page and shows information like the Z-Wave Node ID and other information about your Z-Wave device.
Screenshot of Z-Wave device information available in the UI.
Furthermore, RGB color support has been added to lights, and bugs have been fixed using color temperatures and dimming. 💡
Lastly, unnecessary polling of devices has been reduced.
Yet another round of performance improvements
Did we tell you that @bdraco
0.114 is no exception and a lot of smaller performance and stability improvements are made again.
A bit technical, maybe, but here is a small overview of the changes:
- The internal device & entity registries are now indexed, and thus faster.
- Setting up groups at startup is more efficient.
- Reloading YAML configurations or checking your configuration is now quicker.
- A context accompanies every event in Home Assistant (every trigger, automation, … has a “triggered by what and who”). These contexts are now created faster, which makes everything faster.
- Tracking time pattern triggers are now scheduled on our event loop, which is far more efficient.
- Processing of system logs is taken out of the main program loop, so it doesn’t interfere with things Home Assistant does for you.
Finally, if, for any reason, corruption is detected in the Home Assistant recorder database (SQLite), the old database is moved and a new, fresh database is created. This prevents issues during startup.
Honestly, the above isn’t even complete. 😅 Thanks @bdraco
Share Diagnostics & Crash reports
With Supervisor 231, shipped with Home Assistant 0.114, we added a new option on the System panel, to share diagnostics and crash reports with us anonymously. This will allow us to find and fix problems.
The shared information is only accessible to the Home Assistant Core team and will not be shared with others. The data does not include any private or sensitive information and you can disable it in settings at any time you want.
This option is by default, of course, disabled. So, if you want to help to project out, consider enabling this option in the Supervisor panel.
This service is sponsored by Sentry.io
Other noteworthy changes
- You can now move Lovelace cards to a different dashboard and add cards to other than the main dashboard from the device pages.
- Add support for safe area insets; For example, iPhones with notches now cover the entire screen while having enough padding for home swipe action and the notch at the top of your display.
-
HomeKit has now support for doorbells (thanks @adrum
) and @bdraco added support for multiple camera streams. - If you use light profiles, those now support a default
transition value, thanks to @donkawechico
. -
@agners
added IPv4 & IPv6 (dual-stack) support to the Home Assistant web server, allowing it to run simultaneously on both.
New Integrations
Six new integrations added this release:
-
AccuWeather, added by @bieniu
-
Azure DevOps, added by @timmo001
-
Control4, added by @lawtancool
- Firmata, added by [@DaAwesomeP]
-
OVO Energy, added by @timmo001
-
Wolflink, added by @adamkrol93
New Platforms
The following integration got support for a new platform:
-
Pi-hole now provides a switch to turn on/off the service, added by @shenxn
- devolo Home Control added support for light devices,added by [@2Fake]
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
- Volumio, done by [@OnFreund]
-
HLK-SW16, done by @jameshilliard
-
Itho Daalderop Spider, done by @peternijssen
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
Home Assistant Companion Apps: New and Upcoming Features
Hi, it’s been a while since we let you know about all the great things you can do with the Home Assistant Companion Apps for Android and iOS, so let’s rectify that now as there are so many exciting updates. Before we get started on that though, iOS users should take a moment to read this blog post which has some important information about a small change coming up.
A note on privacy
Currently we use Google’s Firebase notification service for sending notifications to your device and also for tracking crashes. We did this because of simplicity, due to how notifications work on iOS we can’t use just any server to send notifications, in fact there is a pretty narrow choice. Using Firebase allowed us to keep costs low, which Nabu Casa then covered so people are able to use it at no cost. However, many people were uncomfortable about this and would prefer an app that did not rely on Google’s servers. Well we hear you and we are actively looking at moving to other providers. While we have not completed this work yet, we just wanted to let you know it is something that is being actively developed and hopefully we will have more news very soon.
Android minimal app
On a related note, we are delighted to say we now offer a way to install a minimal version of the Android app that is completely free of any reliance on Google. This version of the app does not have location tracking or notifications. We hope that by providing this version of the app more developers will be excited about contributing to the app in general. You can find the APK on the release
What’s New(ish)
The short answer is lots! The Android and iOS apps are developed by separate teams so while the features are similar, they are not identical and do not follow a common road map. Android changes are up next, click here to jump to the iOS update
Android
Notification Improvements
Throughout the past few releases Android notifications were greatly improved with new features and fixes.
Starting in 1.8.0 we enhanced our image notifications to allow for not only a relative path (i.e. storing in your www
folder) but you can also request a snapshot using the Camera Proxy API. All authentication is handled via the app so you don’t need to worry about it. You can also use click action and actionable notifications to navigate to a specific lovelace view.
From 1.9.0 you can now create and remove notification channels on the fly. This is helpful so you can create channels that can override your do not disturb settings, specifically for notifications like the alarm while notifications for your laundry can continue to let you be undisturbed.
In 1.10.0 we further enhanced our notifications to allow for many new options. Users can now change the LED Color, vibration pattern and importance of a message. These options can also be used with a channel to help set defaults to allow you to further distinguish between notifications. You can now group your notifications to help declutter the notification pull down. Persistent notifications were also introduced so you can’t simply swipe away those important notifications, you can pair this with the sticky
property so the notification does not disappear. The message
now allows for HTML formatting so you can highlight the important parts. Users can also supply an icon much like they can with an image. For the unimportant notifications you can set a timeout so after x amount of seconds the notification is automatically dismissed.
automation:
- alias: "Alarm triggered"
trigger:
platform: state
entity_id: alarm_control_panel.home
to: triggered
action:
service: notify.mobile_app_pixel_4_xl
data:
message: "Front alarm <b>triggered</b>" # some HTML formatting to highlight the alert
data:
channel: Alarm # creates a new channel called Alarm that you can manage from your device
importance: high # set the channel importance to high
ledColor: red # make the LED flash red for this notification
vibrationPattern: "100,30,100,30,100,30,200,30,200,30,200,30,100,30,100,30,100" # SOS vibration pattern
persistent: true # set to persistent
sticky: true # make sure it doesn't dismiss if selected
clickAction: /lovelace/alarm # navigate user to the lovelace alarm view
icon: /local/alarm.jpg # relative path to the icon
color: red # set the color of the notification to red
group: alarm # the group name to group together notifications
tag: alarm # tag is required in order to remove the persistent notification
In the above automation example a new channel with the name Alarm
will be created with a default setting for vibration, LED and importance. This notification will also be persistent and part of a group and tag along with an icon amongst other changes.
Sensors
Starting with 1.8.0 we have introduced a new Geocoded sensor that helps translate your GPS location to an actual street address.
Screenshot of the Geocoded Sensor.
The battery level sensor was split in 1.9.0 to include a battery state sensor so you can see when your device is actively charging
, not_charging
, discharging
and full
. You can also distinguish whether it’s wireless
, ac
or usb
. The state now updates immediately upon being plugged in and unplugged to allow for quicker automations.
Biometrics
Biometrics were introduced in 1.9.0 to allow the user to lock down the app when they are not using it. Upon launching the app you will see a lockscreen like below requesting for either your fingerprint or face to unlock the app. You can set this feature up by visiting the App Configuration screen inside the app.
Screenshot of Biometric Unlock.
Additional Improvements
We have also been hard at working making improvements in other areas of the app:
- There are now 2 widgets that you can set up, with Entity State being the latest addition. The Entity State widget will display the state and any attribute of the selected entity. It will update once every 30 minutes or when tapped. The Service Call widget was also enhanced to allow you to select from a list of valid and available services along with the ability to add additional data fields that the service may require.
- In App Configuration the Home Network WiFi SSID option now allows the user to select multiple SSIDs.
- A Cookie Manager was added to our WebView that will allow you to save cookies from sites that you may use in the webpage card.
- More descriptive SSL error messages were added to help users resolve local issues they may encounter while setting up the app.
- Device ID is now sent with the event data for actionable notifications.
iOS
Firstly, we should say a hello to Zac (@zacwest
Stability
Making the app reliable and eliminating bugs was a big focus. You won’t have to pull-to-refresh as often, sensors update more reliably, and editing things like actions and notifications won’t accidentally delete them.
Whether it is to turn on the lights when you get home at night, or send a someone a notification that you’re leaving work and how long the journey should take, we know that this is what a lot of people use the app for the most and we also know the performance has not been 100 % and that changes in recent versions of iOS seem to have made this work. There have been a huge number of changes to work around these issues (unfortunately Apple’s CoreLocation framework is something of a black box), we now sanity check the location data before sending it to Home Assistant, checking if the accuracy is acceptable or if an update from a minute ago has better accuracy. We also try and get a new update when accuracy is bad. While we still use significant location changes (such as changing cell tower) to wake the app up from the background, we now automatically discard the data they provide and attempt to get a higher accuracy GPS location.
Empowering Notifications
Notifications are some of the more powerful ways you can interact with the app, and they are now even more powerful. Camera notifications will now stream via HTTP Live Streaming (HLS) instead of the older MJPEG standard when you have the stream
integration enabled, giving you a more live experience; camera notifications also show up in the right aspect ratio; you can add per-action URLs that should be launched for each action of a notification; relative URLs (like /lovelace-tacos/0
) will now open within the app without kicking you out to Safari.
Screenshot of example triggers and service calls for notifications.
More frequent sensor updates while using the app
A lot of people have asked for the sensors to be updated more frequently. The problem we have is while the app is in the background it is asleep as part of iOS’s efforts to preserve battery. However, while you’re using the app it should be able to send data frequently. You can now set a desired frequency of sensor updates while you have the app open. This can be as slow as every hour or as fast as every 20 seconds! Hopefully this will be a huge improvement for people using iPads as wall-mounted kiosks.
No more duplicate integrations
Previously when you removed and reinstalled the app you would get a new ..._2
integration in Home Assistant along with a new set of sensors like sensor.freds_iphone_2
. This was a pain! Especially for our amazing beta testers who often went through the app’s onboarding process several times in a day to check for bugs (THANK YOU!). Now the app registers its unique ID with Home Assistant, this means in most cases when you reinstall or reset up the app it should just pick and use the old integration and entities.
Usability
Another avenue of improvement is making things a bit easier. You’ll now find example triggers and service calls when configuring notification categories and actions within the app; theme color choices should always come through; you can adjust things like the zoom factor of the pages or how often sensors update if the app remains open; and more! You will definitely want to dig into the releases
A look ahead at iOS 14
Coming to iOS 14 is Widgets, and no doubt there’s some huge potential here. A good analogy for what they can do is to think of them as Apple Watch complications; relatively static displays that can be updated with a multitude of data. One thing we’d love is to get an idea of the information and displays you’re interested in seeing here as Widgets get built out over the next few months. Please let us know any ideas you have on this thread.
iOS 14 is also introducing Local Push Connectivity
That’s it, almost
Wow, thanks for reading all the way down here! Everything you’ve read about wouldn’t be possible without a very dedicated team of volunteers. In addition to the highlights above, we’ve also fixed a good amount of bugs and made other improvements across the board. Thanks goes to JBassett
Two last things, firstly a reminder that you can find our complete docs for the apps on their own site. Secondly, as you’re the kind of person that reads whole blog posts (well done again!) you might be the perfect beta tester for our apps, if you think you could help out, you can sign up for the Android app here
Migrating the iOS Companion App to Nabu Casa
Hi there, your friend and pal, Robbie the iOS developer here with an important update about a change to the Home Assistant Companion App for iOS and a few steps you, the user, will need to take.
What’s changing?
Recently, I transferred the Home Assistant app from my personal Apple Developer account to a new Apple Developer account owned by Nabu Casa, Inc. Why? Because Apple has silly limits on individual accounts that have made collaboration with others near impossible for the entire lifespan of the app (please don’t tell Tim or Craig I called their limits silly). This meant that during times when my work or personal life have been very busy, app updates have been far less frequent than I wanted. These limits also make it such that, if I were to be hit by a bus tomorrow, the app couldn’t be easily updated on the App Store by others. The business account does not have these limits. Anyone on the account can update the app anytime without relying on me, Robbie, to push buttons. This will make collaboration easier and ensure the app will be available forever and ever, long after I’m gone.
Why Nabu Casa?
Why did we transfer it to Nabu Casa, Inc.? Why not Home Assistant, Inc.? The short answer is there is no Home Assistant, Inc. Apple requires that business accounts are owned by… businesses. Real businesses. Which Home Assistant is not. Nabu Casa was the best option. To be very clear, Nabu Casa does not own the app now. The copyright and license has not changed. It’s still entirely open source. I am not stopping my work on the app, neither are others. Nabu Casa is simply the account under which the app is published. The same rock solid privacy guarantees apply just as before. The only change visible to you will be the name shown as the author in the App Store (Nabu Casa, Inc instead of Robert Trencheny).
Does this mean there will be a charge for the app?
No.
What do you need to do?
Right now, we are waiting for Apple to approve the entitlement to send Critical Notifications for the new account. When that is done we will release an update (version 2020.5) from the new business account. Due to Apple limits, after updating you are going to need to re-authenticate one time to continue using the app. After that (assuming everything works) you are all done and the app will keep functioning as normal. No integration changes, no push notification changes, your actions are still there, etc etc. Remember that depending on your device settings, this update may well happen automatically, that’s why we’re telling you all about this in advance.
When is this happening?
We’re not quite sure about this sadly, currently we don’t expect it to be before August 10th. As I mentioned, we are waiting for the new business account to be granted the critical notification entitlement. The time frame for this is entirely governed by Apple and beyond our control. We will be sure to keep you updated via Twitter
Thanks as always for being a Home Assistant Companion user. Please leave a review if you appreciate the app, it’s the fuel that keeps the fire burning.
0.113: Automations & Scripts, and even more performance!
Another special, themed, release inbound!
It seems like @bdraco
This release is about: Automations & Scripts! Yes!!!
A long, long time bug with automation triggering has been resolved, but not
only that, @pnbruckner
Adding repeat, a chooser and running modes (with cool down possibilities as a side-effect).
I’ve been playing with these features on my home already and I’ve
changed/improved quite a few things. For real, @pnbruckner
Enjoy the release!
../Frenck
Ludeeus joins Nabu Casa
Today we’re happy to announce that @ludeeus
Ludeeus has been a core contributor for a long time working on the Supervisor
panel and different bits of the frontend. He is, however, mainly known as the
creator of the Home Assistant Community Store (HACS)
We’re looking forward to seeing what he can do now that he is able to focus full-time on Home Assistant.
Welcome @ludeeus
Automations & Scripts
This release brings changes to our automations and scripts. Before we start with
this all, please note, that the action
part of an automation is a script
sequence
.
So, all discussed below, apply to both scripts and automations.
Before diving in: All automation and script changes, have been driven by
@pnbruckner
Automations & Scripts: Bug fix
There has been an issue with our automations for a long time already, which you actually might have never noticed. It is kinda hard to explain, so this needs an example.
Consider the following automation:
automation:
- alias: "Example"
description: "On button press, turn on the light bulb for 10 seconds."
trigger:
- platform: state
entity_id: binary_sensor.button
to: "on"
action:
- service: light.turn_on
target:
entity_id: light.bulb
- delay:
seconds: 10
- service: light.turn_off
target:
entity_id: light.bulb
This automation turns on a light bulb when the button is pressed, and after 10 seconds, it turns off the light bulb again. A fairly basic automation, which does exactly what one would expect, except when a button is pressed twice.
So it takes 10 seconds for the bulb to turn off, what if you press the button again after 5 seconds?
Please, think about this for a moment…
What actually happened before 0.113, is that the light bulb would turn off immediately! Chances are, you didn’t expect that.
Let’s explain this: So the first button push, turns on the light, and the delay is active for 10 seconds. The second button push, done after 5 seconds, is actually not handled, however, it does cause the delay of the first run to cancel itself and continues to run the rest of the actions/sequence, causing the light to turn off immediately!
That bug, has been fixed. As of this release, the second button press wouldn’t do anything and the light will now turn off after 10 seconds, which the first button push has triggered.
Automations & Scripts: Running modes
With the above-mentioned bug fix, it now becomes possible to introduce new running modes for both scripts and automations. It allows you to control what happens if actions of a previous trigger are still running.
Considering the light bulb example in the bug fix paraph above, it shows
the default mode: single
, which means: Do not run and ignore the trigger
if a previous action of the same automation is still running.
Besides the default single
mode, the following modes are now available:
Mode | Description |
---|---|
single |
Do not start a new run, if running already. |
restart |
Start a new run, after stopping the previous run. |
queued |
Start a new run after all previous runs complete. |
parallel |
Start a new, independent, run in parallel with previous runs. |
Automation/script running modes visual explained.
For the queued and parallel modes, an additional parameter max
is available
to control the maximum number of runs that are awaiting each other. When
omitting this setting, it would default to 10.
To clarify a little more, remember the first example in the bug fix paragraph where the light bulb would turn on for 10 seconds after a button press?
This would make every button press within the 10 seconds, restart the countdown again:
automation:
- trigger:
- ...
mode: restart
action:
- ...
And this example, would turn on/off the light, for 10 seconds twice, if the button was pressed after 5 seconds.
automation:
- trigger:
- ...
mode: queued
action:
- ...
The modes are also available for automations and scripts in the frontend UI:
Screenshot of running modes in the frontend.
This is a powerful feature, which allows you to control how automations and scripts are run in ways you could not do before.
More information about the running mode can be found in the automations and scripts documentation.
Automations & Scripts: Repeats
A brand new action is made to allow for repeating (also called loops) part of your automations or scripts.
The new repeat feature can be used in three different ways:
- Counted repeat: Control how many times to repeat a sequence.
- While loop: Keep repeating as long the condition(s) is/are met.
- Repeat until: Runs at least once, and decides after that to repeat until the condition(s) is/are met.
For example, this would spam your phone with the same message 10 times:
# Send notification spam to phone
script:
phone_spam:
sequence:
repeat:
count: 10
sequence:
- service: notify.frenck
data:
message: Ding dong! Someone is at the door!
More information about repeats can be found in the documentation.
Automations & Scripts: Chooser
Got multiple automations for that single light to turn it on/off? Or multiple automations/scripts to handle the different buttons on some remote?
You can now combine them using a chooser. The chooser is able to pick the first sequence that matches a condition, or if none match, run a default sequence.
This means each individual sequence in the chooser is paired with its own set of conditions.
automation:
- alias: "Example"
description: "On button press, choose the right thing to run."
trigger:
- platform: state
entity_id:
- binary_sensor.button1
- binary_sensor.button2
- binary_sensor.button3
action:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.button1
state: "on"
sequence:
- service: light.turn_on
target:
entity_id: light.bulb
- conditions:
- condition: state
entity_id: binary_sensor.button2
state: "on"
sequence:
- service: light.turn_off
target:
entity_id: light.bulb
default:
- service: notify.frenck
data:
message: Some other unknown button was pressed!
In the above example, pushing button1, turns on the bulb; while button2 turns it off again. The third button isn’t handled by any of the conditions in the chooser and the (optional) default is run instead.
The chooser can be used as an if
/else
statement, where the default
acts as
the else. Or even as if
/else if
/else
statement as shown in the YAML
example above.
More information about the chooser can be found in the documentation.
Automations & Scripts: Sub-second precision
Thanks to a bunch of optimizations done this release, which is discussed later in this blog post, we now have sub-second precision available to our delays.
This precision is helpful in case you want a delay that is less than a second, for example, 500 milliseconds.
An example script that toggles the light every 500 milliseconds 10 times.
script:
blink_light:
sequence:
repeat:
count: 10
sequence:
- service: light.toggle
target:
entity_id: light.bulb
- delay:
milliseconds: 500
Automations & Scripts: Bonus! Cool down
An often requested feature is to allow for a cool down time on an automation. What that entails is setting a limit on the run of an automation or script to a certain time frame.
While this is not a feature specifically added or build, it can be achieved now using the new run modes.
automation:
- alias: "Doorbell cool down"
description: "Prevent multiple message being send when spamming the doorbell."
mode: single # Which is the default
trigger:
- platform: state
state: binary_sensor.doorbell
to: "on"
action:
- service: notify.frenck
data:
message: Ding dong! Someone is at the door!
- delay:
seconds: 10
The single
run mode of this automation, combined with the last delay
of 10
seconds, prevents this automation from being ran more often than only once
every 10 seconds. This is ideal for things like a doorbell.
MDI icons updated
It has taken some time for us to upgrade to the newest version of
Material Design Icons
We wanted to handle these well, so it took some time.
A lot of icons are renamed, and some are removed. In this release, we included all new, and all removed icons and we made sure the new and the old name work.
If you use an icon that is renamed or removed we will show a warning in the log, in version 0.115, this conversion path will be removed and removed icons and old names will no longer work.
So make sure to check your logs if you need to adjust any of your used MDI icons.
Most of the removed MDI icons can be found in Simple icons
Please note: It is possible that custom integrations (also known as custom components) use deprecated icons. These can throw warnings that need to be addressed in the custom integration.
Script and Scene editor updates
The UI to edit or create a script has been updated, besides support for the new running mode, you can now give your scripts a custom icon and ID from the UI.
Especially the ID is helpful, you no longer have to search your states for a long numeric entity id that matches your script.
Screenshot of a script ID, icon and run mode.
The support for setting a custom icon, is also added to the scenes editor.
More speed optimizations
After, the well-received, speed optimization done in the 0.111 & 0.112 releases, the saga towards improving resource usage and responsiveness of the platform continues.
This time we have both @bdraco
First of all, if you are running a Home Assistant OS, Container or Supervised installation, then your Home Assistant instance will run on Python 3.8. No action from your end is needed for this.
It is not just a normal Python version, but @pvizeli
Then @bdraco
This lowers CPU usage and improves response speed when you have many state changes happening in a short time span, or when having a lot of automations.
Also, all time listeners now have microsecond precision as they are scheduled on the internal event loop, instead of the previous situation when it relied on the internal clock that triggered every second.
This release should drastically lower the CPU usage of Home Assistant for most installations.
Other noteworthy changes
- Philips Hue groups can now be turned on/off in the integration options via the UI.
- The OpenZWave (beta) got 3 new services. Two of those are for setting user codes on locks. The other allows for setting device-specific configuration parameters.
- After a moment of absence, @yosilevy
is back! He has been the one fixing all kinds of RTL issues we had in Home Assistant, with his return, this release is full of RTL tweaks again!
New Integrations
Three new integration added this release:
-
PoolSense, added by @haemishkyd
-
Dexcom, added by @gagebenne
-
Bond hub, added by @prystupa
New Platforms
The following integration got support for a new platform:
- OpenZWave has now support for window covers, added by [@Michsior14]
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
0.112: Making things faster; Logbook & History
And another three weeks passed! Home Assistant Core 0.112!
At this point, I almost feel like “Making things easier” as the motto for our current development is replaced by: Making things faster! 🚀
The last couple of releases, tons of performance improvements where made, most notably the frontend starting sooner in the previous 0.111 release.
This release is no exception, bringing absolutely game-changing performance improvements to the logbook and history panels. Honestly, I avoided using the logbook in the past because of the slowness it had.
Personally, I feel like Home Assistant is growing up. Slowly things become more reliable, faster, easier to use, slick, more fine-grained? I might be biased a bit… What do you think? What is your favorite improvement that was made lately?
Enjoy the release!
../Frenck
Important upgrade notice!
Let’s start with an important notice for upgrading to Home Assistant Core 0.112.
This release has changes to the database format of Home Assistant. On upgrade, it will be migrated to the new format.
Depending on the size of your database and the performance of the hardware you run Home Assistant on, this migration process could add additional time to the first time starting after the upgrade. For most of us, this adds just a couple of minutes, but if you have an enormous database (for example, 30+ GiB), it might take an hour or maybe even two.
So, don’t panic if Home Assistant doesn’t come up immediately.
Logbook and History 🚀
The reason for the above-mentioned database change can be found in the
Logbook & History. Thanks to @bdraco
As a result of his effort, the History & Logbook are now lightning fast. ⚡️
Not a tiny bit faster, but a whole new experience compared to how it used to
be. Fantastic work there @bdraco
Logbook and History now have a date/time range picker
So, @bramkragten
You no longer have to choose between a fixed period to show, but can define the period you want to see data for yourself.
Select a start and end date and time window and it will show just that data.
Screenshot of the new date/time picker.
By default it no longer shows a full day of data, but just a couple of hours so it is even quicker to load. As most of the time, one would look at recent events anyways.
The user that made a change visible in the logbook
Talking about the logbook, you can now also see who made a change in the logbook! No more discussion about who changed the temperature!
Screenshot of the logbook showing who made the change.
Multiple entities and states in YAML automations
Are you writing your automations in YAML? You might appreciate this one:
A single condition rule can now test if multiple entities match the condition. Furthermore, states and zones now also accept a list in a condition. That helps testing if the entity matches any of the ones listed.
So this:
condition:
- condition: state
entity_id: light.kitchen
state: "on"
- condition: state
entity_id: light.living_room
state: "on"
- condition: state
entity_id: light.office
state: "on"
Can now be shortened to this:
condition:
- condition: state
entity_id:
- light.kitchen
- light.living_room
- light.office
state: "on"
An example that tests if the alarm is in any of the specified states:
condition:
- condition: state
entity_id: alarm_control_panel.home
state:
- armed_home
- armed_away
And this condition is now also passing when Frenck is at home or at work (fake, of course, since Frenck works from his home).
condition:
- condition: zone
entity_id: device_tracker.frenck
zone:
- zone.home
- zone.work
Or combine! The following condition would pass if both Frenck and Daphne are either at home or in the work zone.
condition:
platform: zone
entity_id:
- device_tracker.frenck
- device_tracker.daphne
zone:
- zone.home
- zone.work
Integration specific panels are now on the integrations page
Some integrations, like ZHA, Z-Wave and MQTT have their own panels or dev tools. For things like pairing devices or publishing MQTT messages.
These used to be on the configuration page or development tools, which was weird because the integration settings would be on the integrations page. ZHA also had a lot of device settings in its own panel, resulting in a lot of duplicate functionality spread across the Home Assistant interface.
These panels and tools are now moved to the integrations pages, directly within
the integration that provides those. You can find them on the card of the
integration at the Configure
button.
Screenshot of the MQTT configure button.
The device-specific settings are now available on the device page, so we now have 1 place to go for information and settings for devices.
Screenshot of a ZHA device.
In the process, we also cleaned some things ups, like adding a device in ZHA. If you change the name of the device while adding it, the entities and entity IDs are named accordingly.
New home for the logs and information pages
More moving this release, the logs and information pages used to be in the development tools panel, but they didn’t really belong there. They aren’t really tools for developing, they provide information on your set up.
We moved them to the configuration page where they are joined with server management and the general configuration.
Screenshot of the new home for logs & information.
Automatically disconnect if a tab has been hidden for 5 minutes
An improvement in the battery of your device and your data cap are going to like:
When the Home Assistant UI is not visible for longer than 5 minutes, it disconnects from your Home Assistant instance. This means you no longer get data or camera streams and your device can optimize resource and power consumption.
Of course, when showing the browser (or browser tab) again, it will automatically reconnect.
We now show all automation/scenes/scripts
Automations, scenes and scripts in the configuration panel are no longer hidden
when they have the hidden
attribute. This was erroneously added in the past
and has now been undone.
Talking about the old hidden
attributes. They have been slowly deprecated
over time, as they originate from the previous Home Assistant UI. As of this
release, this attribute has been completely removed from the system.
Other noteworthy changes
-
@balloob
has shaved of a couple of seconds from the Home Assistant startup again. - Entities that originate from MQTT will now become “unavailable” when the
integration is not connected to the MQTT broker. Thanks @elupus
! - If you have a Xiaomi vacuum cleaner, @jthure
added a service to send it to specific places using a new goto service. - The Smappee integration has been fully rewritten, by @bsmappee
themselves! - Auto discovery has been added to the NUT integration. Please note that some NAS devices might be discovered as they support adding an external battery.
New Integrations
- Add notify_events notify integration (@papajojo
- #36049 ) (notify_events docs) (new-integration) - Add HVV integration (Hamburg public transportation) (@vigonotion
- #31564 ) (hvv_departures docs) (new-integration) - Add new Remote Python Debugger integration (@frenck
- #36960 ) (debugpy docs) (new-integration) - Add new humidifier entity integration ([@Shulyaka] - #28693
) ([humidity docs]) (new-integration)
New Platforms
- Add devolo binary_sensor devices ([@2Fake] - #36370
) (devolo_home_control docs) (new-platform) - Add sensor platform for vicare integration (heatpump) (@crazyfx1
- #34385 ) (vicare docs) (breaking-change) (new-platform) - Add Withings webhooks (@vangorra
- #34447 ) (withings docs) (new-platform) - Light control support to Axis devices (@Kane610
- #36611 ) (axis docs) (new-platform) - Fix/Rewrite of Toon integration (@frenck
- #36952 ) (toon docs) (breaking-change) (new-platform) - Part 2: Add signal sensor (@ocalvo
- #34406 ) (sms docs) (new-platform) - Part 3: Add support for incoming sms events (@ocalvo
- #37015 ) (sms docs) (new-platform) - Add smappee binary_sensor platform (@bsmappee
- #37023 ) (smappee docs) (new-platform) - Add devolo sensor devices ([@2Fake] - #37049
) (devolo_home_control docs) (new-platform)
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
Arcam, done by @elupus
- Avri, done by @timvancann
-
Awair, done by @ahayworth
- DenonAVR, done by [@starkillerOG]
- MetOffice, done by [@MrHarcombe]
-
Plum Lightpad, done by @prystupa
-
Smappee, done by @bsmappee
-
SMS notifications via GSM-modem, done by @ocalvo
-
Speedtest.net, done by @engrbm87
-
Squeezebox, done by @rajlaud
-
Tile, done by @bachya
- Xiaomi Aqara, done by [@starkillerOG]
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
0.111: Frontend loaded sooner, Elexa Guardian, Unify Circuit, Acmeda
Home Assistant Core 0.111 is here!
So, let’s face it: the previous release (0.110) was just jam-packed with new features, tons of upgrades and a lot of stuff changing. It was pretty exciting! It will be hard to top that.
Personally, I’m always looking forward to the new features a new release brings. Time to play! This time, however, not so much to play with. Don’t be fooled, it contains 400+ changes made by a group of 100 contributors! So I’m not sad!
This release is focussed around more stability, fixing, tweaking and tuning. Honestly, I think it is really nice!
Most notably, is the change on how Home Assistant loads up the frontend. It is available really quickly now!
It is definitely worth looking at the “All Changes” section this release, as many many small changes and fixes have been made.
Enjoy the release!
../Frenck
Starting the frontend sooner
In this version, we start the Home Assistant frontend and API server before all integrations are loaded. This means you can interact with Home Assistant sooner than before.
Instead of waiting a couple of minutes until the Home Assistant frontend becomes responsive, it is available really fast now!
However, with this change, Home Assistant no longer waits for all integrations to be ready. As a result, not all devices and entities are available immediately.
This is actually good! As this means, an integration that got into trouble, can no longer prevent the frontend from becoming available. Also, as soon as it is available, you can change or remove the configuration of a non-working integration. Finally, it easier to check out your logs when something goes wrong.
The base for this change came from @bdraco
Great work guys!
One additional note: If you run generated Lovelace, it will still wait for Home Assistant to be completely started. If you created your own dashboard, it will show warnings for entities that are not available yet and will update when they become available.
Another additional note: If you use an automation to set your default frontend theme, it will be applied after Home Assistant has completely started. The default theme is used during the startup phase.
Other startup improvements
Some more tuning to the startup process can be found in things like the logs. If an integration takes more time to set up, it will be shown in the logs every 60 seconds, indicating that the integration is still being setup.
Another speed improvement is found in the way we load up integrations themselves. Often, an integration has a basic setup and will then load the various platforms (like lights and switches) after that.
As of this release, Home Assistant will set up the integration but will no longer wait for the platforms to finish setting up. The individual platforms will be finished in the background. Allowing the overall startup process to continue, resulting in a faster startup.
Other noteworthy changes
- The OpenZwave beta integration is moving forward! Support for climate, fans and locks is added this release! If you are using the OpenZWave add-on with this integration, watch closely for updates, as an major update to that add-on is expected soon.
-
@gadgetmobile
went all out on the Blebox integration, adding support for a lot of platforms! - Google Assistant now supports using a select helper (aka
input_select
), amazing work @ZephireNZ! -
@frenck
added two new built-in Home Assistant events, helpful for automations: automation_reloaded
andscene_reloaded
. Using this as a trigger can be used for, e.g., re-applying a scene when it was changed. - The logger has been fixed by @bdraco
. The logger has disobeyed default or user-configured logging levels for a long time. This is now fixed and your Home Assistant logs should be much cleaner now! - The Plugwise integration has been improved by @bouwew
and @CoMPaTech , now supporting not only Anna but also Adam climate environments and adding the P1 DSMR monitor. - Last triggered timestamp of automations is now set the moment it is triggered (as the name implies). Previously it was set after the action that was part of the trigger was done. We don’t expect many issues for this to rise, however, it might be affecting very specific use cases. If you use this attribute to prevent an automation to run quickly (or double), this will actually improve the situation for you.
New Integrations
- Add Acmeda integration (@atmurray
- #33384 ) (acmeda docs) (new-integration) - Add Unify Circuit (@braam
- #35756 ) (circuit docs) (new-integration) - Add support for Elexa Guardian water valve controllers (@bachya
- #34627 ) (guardian docs) (new-integration)
New Platforms
- Add Blebox switch support (@gadgetmobile
- #35371 ) (blebox docs) (new-platform) - Add Blebox air quality support (@gadgetmobile
- #35372 ) (blebox docs) (new-platform) - Add Blebox lights support (@gadgetmobile
- #35370 ) (blebox docs) (new-platform) - Add zha climate (@Adminiuga
- #35682 ) (zha docs) (new-platform) - Add climate platform to ozw (@marcelveldt
- #35566 ) (ozw docs) (new-platform) - Add Blebox climate support (@gadgetmobile
- #35373 ) (blebox docs) (new-platform) - Add lock platform to ozw component (@mrk-its
- #36103 ) (ozw docs) (new-platform) - Add fan platform to ozw component (@cgarwood
- #35249 ) (ozw docs) (new-platform) - Update plugwise to async and config_flow (@CoMPaTech
- #33691 ) (plugwise docs) (breaking-change) (new-platform) - Update plugwise to async and config_flow sensor part (@CoMPaTech
- #36219 ) (plugwise docs) (new-platform) - Refactor Synology entries to allow not fetching the API when it’s disabled + add security binary sensor (@Quentame
- #35565 ) (synology_dsm docs) (breaking-change) (new-platform) - Update plugwise to async and config_flow binary_sensor part (@CoMPaTech
- #36378 ) (plugwise docs) (new-platform) - Update plugwise to async and config_flow switch part (@CoMPaTech
- #36383 ) (plugwise docs) (new-platform) - Add climate platform to Insteon (@teharris1
- #35763 ) (insteon docs) (new-platform)
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
Dune HD, done by @bieniu
-
Gogogate2, done by @vangorra
-
Plugwise, done by @CoMPaTech
and @bouwew -
Sonarr, done by @ctalkington
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
Installation Methods & Community Guides Wiki
We recently announced that we wanted to deprecate the generic Home Assistant installer. We discovered that the installation method was more popular than expected and we put that plan on hold.
The feedback to our announcement also included that the preferred installation methods are not well documented and that it’s confusing because there are also so many other installation guides on home-assistant.io, some great, some outdated and no longer correct or even missing.
Today I want to take a step back and take a holistic view of installation methods. What installation methods do we support as a project, and what does supported mean.
State of the documentation
If you look at our documentation, it’s all over the place. Install it in Docker, in a VM, on a NAS or on one of the many Linux distributions.
The reason we have this many guides is that since the start of the Home Assistant website, we have always gladly accepted every contribution to get Home Assistant running on any platform. The more the merrier!
However, in software nothing ever stays the same. All software gets updates to fix bugs, fix security vulnerabilities, improve performance or to add new features. As a software application you need to grow along or else you get stuck with an insecure system.
So as Home Assistant grows and evolves, some of these installation guides became outdated and stopped working. We wouldn’t even know it was broken until a user raised an issue. But when they do, we wouldn’t know how to fix it unless we could get a hold of the original contributor.
This can be frustrating. Any guide on our official website should lead to a working system. A system that not only works today, but also tomorrow. And we have not done a good job at this, for which I want to apologize.
Definition of an “Officially supported installation method”
Today we are introducing a classification between what is “Officially supported” vs “Community supported”. An officially supported installation method in the Home Assistant context means:
“A way of installing and running Home Assistant that is officially supported by the Home Assistant project. It means the installation method is tested and documented in the official documentation. Running Home Assistant using such a supported method, leads to the optimal user experience, now and for the future.”
The Home Assistant team will not prevent you from running Home Assistant using an unofficial method. However, we cannot help with issues that you encounter. We are open for contributions that improve compatibility with a community supported method as long as they do not impact officially supported methods, add a significant amount of code exceptions or future maintenance burden on the Home Assistant development team.
Supported installation methods
These are the four installation methods that are officially supported:
-
Home Assistant
Full installation of our all-inclusive home automation system. Best in class home automation is complemented with a UI for configuring your system, making backups and safe updates with automatic rollback.This method was previously known as “Hass.io”, and includes our Operating System (HassOS), the Supervisor, and add-ons. It can be run on various single-board computers or in a virtual machine.
-
Home Assistant Container
Run just the Home Assistant Core application on a native OCI compatible containerization system (like Docker). It does not provide the full Supervisor experience, and thus does not provide the Supervisor panel and add-ons.This method has a new name, and was previously known as “Home Assistant Core on Docker”.
-
Home Assistant Supervised
The full Home Assistant experience on a regular Linux operating system. This method was previously known as “Hass.io on generic Linux”, installed on top of, e.g., Debian. -
Home Assistant Core
Run the Home Assistant Core application directly on Python. It does not provide the full Supervisor experience, and thus does not provide the Supervisor panel and add-ons.
As you can see, the Home Assistant Supervised method is here to stay.
What is missing for each of the above-listed are the specific details, e.g., the supported operating systems for a Supervised installation or the supported hardware for a full Home Assistant installation. We hope to have these details available soon.
Community Guides Wiki
Home Assistant is an open-source project and it can be used in any way you want, even if it is not officially supported by the Home Assistant team. We welcome these alternative initiatives and have created a place for our community to provide, share and collectively maintain additional documentation.
We’ve added a new section to our forums called “Community Guides”. Each post will be automatically turned into a wiki article that other members can help maintain and can be discussed right below the article. This section is not just for installation methods, but ANY guide, how-to or tutorial.
We have ported several guides from the official documentation to the community guides. These guides were already marked as “community provided” guides previously, or are targeted towards extremely specific setups.
Final words
Today’s blog post is about bringing some clarity on our stance with the Supervised installation, but at the same time bringing more context to the problems and solutions we are currently working on. Cleaning up and structuring our official documentation is an important first step in this process.
Realizing we have not finished up specific details on each installation method, you might still be wondering if your setup is going to be supported moving forward. These details can be expected soon. We have no intention of preventing Home Assistant to run under community supported methods.
Thanks to the passionate community, you spoke and gave feedback on this. We’ll have more specific details to share in the near future, so stay tuned.
Paulus
Home Assistant Code of Conduct 2.0
On January 21st, 2017, Home Assistant announced we had implemented a Code of Conduct. Using this blog post, we’d like to inform you we are updating our Code of Conduct.
Why a Code of Conduct?
Our ever-growing community, consists of people from all over the world, and we want to ensure our community is a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
The Code of Conduct describes what type of behavior is considered unacceptable in our community, how we will enforce violations of it and how one can report incidents.
This keeps our community open, welcoming, diverse, inclusive and healthy.
What has been updated?
Our code of conduct is adapted from the Contributor Covenant
In general, not much has changed compared to what we already had
Moving forward, this updated Code of Conduct will be active for all projects, social channels and community communication channels of the Home Assistant organization.
0.110: Speed! OpenZWave beta, HomeKit Cameras, ONVIF, Calendars
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 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!
../Frenck
Icons
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
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.
Screenshot of the integrations page.
Oh! We’ve also made the icons and logos available for custom integrations!
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
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 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.
Calendar panel
Thanks to @zsarnett
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.
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.
Check the documentation for more information.
Internal & External URLs
There are many cases where an integration needs the URL/link to your Home Assistant 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.
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 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 needed.
After upgrading to 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.
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."
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
condition:
- condition: not
conditions:
- condition: state
entity_id: alarm_control_panel.home_alarm
state: disarmed
action:
- service: light.turn_off
target:
entity_id: light.kitchen
HomeKit
@bdraco
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.
ONVIF
The ONVIF integration did get lots of love from @hunterjm
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.
Supervisor
Have you seen the new supervisor UI? @ludeeus
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 backward-incompatible changes, it is now available via the UI and many bug are squashed. Thanks @shbatm
!
New Integrations
- Add numato integration (@clssn
- #33816 ) (numato docs) (new-integration) - Add zwave mqtt (@MartinHjelmare
- #34987 ) (zwave_mqtt docs) (new-integration) - Add Home Connect integration (@DavidMStraub
- #29214 ) (homeconnect docs) (new-integration) - Add BleBox integration (@gadgetmobile
- #32664 ) (blebox docs) (new-integration) - Add devolo home control (@2Fake
- #33181 ) (devolo_home_control docs) (new-integration) - Add agent_dvr integration (@ispysoftware
- #32711 ) (agent_dvr docs) (new-integration) - Add Universal Powerline Bus (@gwww
- #34692 ) (upb docs) (new-integration) - Add Flick Electric NZ integration (@ZephireNZ
- #30696 ) (flickelectric docs) (new-integration) - Add BSBLan Climate integration (@liudger
- #32375 ) (bsblan docs) (new-integration) - Add Zerproc integration (@emlove
- #35477 ) (zerproc docs) (new-integration) - Add wiffi integration (@mampfes
- #30784 ) (wiffi docs) (new-integration) - Add forked_daapd integration (@uvjustin
- #31953 ) (forked_daapd docs) (new-integration)
New Platforms
- Add Xiaomi miio Alarm Control Panel (@starkillerOG
- #32091 ) (xiaomi_miio docs) (new-platform) - Config flow for hunterdouglas_powerview (@bdraco
- #34795 ) (hunterdouglas_powerview docs) (new-platform) - Add battery sensors to hunterdouglas_powerview (@bdraco
- #34917 ) (hunterdouglas_powerview docs) (new-platform) - Add zwave_mqtt sensor platform (@cgarwood
- #35135 ) (zwave_mqtt docs) (new-platform) - Add zwave_mqtt light platform (@MartinHjelmare
- #35337 ) (zwave_mqtt docs) (new-platform) - Universal Powerline Bus Scene support (@gwww
- #35401 ) (upb docs) (new-platform) - Add Climate Platform Support to ISY994 (@shbatm
- #35440 ) (isy994 docs) (new-platform) - ONVIF Event Implementation (@hunterjm
- #35406 ) (onvif docs) (new-platform) - Support BleBox sensor (@gadgetmobile
- #35374 ) (blebox docs) (new-platform) - Add binary sensor platform to zwave_mqtt (@marcelveldt
- #35519 ) (zwave_mqtt docs) (new-platform)
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
Blink, done by @fronzbot
-
HomeKit, done by @bdraco
-
Hunter Douglas PowerView, done by @bdraco
-
Lutron Caséta, done by @chrisaljoudi
-
Mill, done by @Danielhiversen
-
ONVIF, done by @hunterjm
-
Pi-hole, done by @shenxn
-
Tibber, done by @Danielhiversen
-
Tuya, done by @ollo69
-
Universal Devices ISY994, done by @shbatm
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
[On hold] Deprecating Home Assistant Supervised on generic Linux
[Update May 26]
New blog post published with next steps.
[Update May 10]
We’ve been overwhelmed with the many reactions. We realize our communication has been poor on this subject, for which I want to apologize. We do not collect data and so can’t always judge the impact of our decisions.
We’re going to put the deprecation plan on hold for now. Anyone running this installation method today can continue running this. We will offer more clear information in the future.
We’re going to investigate how we can maintain the supervised installation on generic Linux.
Furthermore, we are going to make sure that supported installation guides are properly documented.
Paulus
TL;DR: Home Assistant Supervised (also known as Home Assistant on Generic Linux) installation method is no longer supported.
There are currently three different ways of installing Home Assistant:
- Home Assistant: our operating system running either directly on a supported device like the ODROID N2, Raspberry Pi 4, Intel NUC or a virtual machine.
- Home Assistant Supervised: an installation of core + supervisor that are hosted on a generic Linux installation.
- Home Assistant Core: our Python core application running in a Python virtual environment or a Docker container.
The benefit of running the Supervisor is that you are able to keep Home Assistant up to date from within Home Assistant, and easily install add-ons that are pre-configured to be able to integrate with Home Assistant.
The Supervisor is an extremely complicated program that interacts with a wide range of applications and components in the host operating system. Examples are Docker containers, DNS, sound and USB hardware sticks that users want to use with Home Assistant. The Supervisor is controlled from Home Assistant which allows us to create a full home automation hub experience.
The Home Assistant operating system is made with the bare minimum that the Supervisor needs to run and makes sure it does not get in the way of the Supervisor: the system is fully managed by the Supervisor.
Some users still wanted to be able to control the host operating system, and so a generic installer was introduced that could install Home Assistant Core and Supervisor on a generic Linux system, like Debian or Ubuntu.
However, when people run it on top of their own system, things can go wrong. And in fact, it’s quite complex to maintain it on generic Linux. Installing is fine, everyone can follow a tutorial, but after that when things break, people come to us, not the author of the tutorial. And this workload keeps growing, to a problematic extent.
Home Assistant OS and Supervisor are being maintained by Pascal. He started them 3,5 years ago and has been maintaining this first in his spare time, later as a full-time employee of Nabu Casa.
Building the operating system and the supervisor is a complex task that requires specific expertise. Sadly after 3,5 years, there are still no other contributors to help. This has resulted in his responsibilities outgrowing what one can expect from a full-time employee.
Nabu Casa was founded to make the development of Home Assistant sustainable. To be able to maintain a healthy work/life balance and to avoid developer burn-out that is, unfortunately, common in the open source world.
In an effort to reduce Pascal’s constraints we’re per direct no longer supporting the generic Linux installation method. It will no longer be mentioned in the documentation. We have archived the repository. If you are willing to maintain it, feel free to fork it. Issues that result from using this will be ignored or closed when reported to us.
Open Source & Community
Just as with our recent decision to limit the usage of YAML in some cases, Home Assistant will keep choosing health over features. Open source is not about us having to support every feature anyone on the internet can think of. Open source means that anyone can do that themselves and choose to share this or not.
There are still tons of ways of installing Home Assistant, there are still tons of features and customizations possible.
Frequently Asked Questions
How do I run Home Assistant while still keeping control over the operating system?
We offer a virtual machine image of Home Assistant. These images can be used on e.g., VMWare, VirtualBox and Proxmox, and also on NAS systems that support running a VM as most modern NAS systems do. Using these provided images will give you the full supported Home Assistant experience.
You can find virtual machine images here.
I run on a platform that doesn’t support VMs and I still want to keep control over the operating system.
To do this we recommend running Home Assistant Core in Docker. You will lose out on the easy updates, system management and pre-configured apps (add-ons) from the UI. However, you are still able to run the full beating heart of the Home Assistant home automation platform.
All applications that are available as Home Assistant add-ons are also available as third-party Docker containers. You will be responsible to configure them to work with Home Assistant Core yourself.
I know what I am doing. Can I still use the generic Linux installer?
Yep, the archived repository is still there. You can also fork it and change things. But there is no official resource to visit when things break.
I am currently running Home Assistant Supervised. Now what?
Everything will continue to work as-is. Bugs won’t be fixed and you should consider migrating to one of the other methods. If you are migrating to a virtual machine, you can make a snapshot in the Supervisor panel and restore that in your new installation.
[Edit May 9, 16:19] Removed paragraph from Open Source & Community as it was insinuating.