Blog
Why Home Assistant doesn't have an external API for integrations
Home Assistant is the world’s largest home automation platform talking with over 1900 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
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
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
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
Take also a look at the original post
Browser Extension
Fresh off the press, we came across something really cool on the community forum.
bokub
ESPHome 1.17
A new version of ESPHome
In particular, I would like to point out the new pulse_meter
The pulse meter component is also what I’ve used for the hardware I’ve been working on. I’ve made a range of improvements since the last time I shared it. Now including a status LED so it’s easy to check if it’s working. pic.twitter.com/GwaVZS0HQj
— Klaas Schoute (@klaasnicolaas) May 4, 2021
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:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
2021.5: Stability, performance, triggers, color modes!
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 backward-incompatible 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
- Startup visibility - What is taking so long?
- Why Home Assistant didn’t restart when I pressed the restart button?
- Updated look and feel for the integration dashboard
- Color modes!
- Trigger-based binary template sensor
- Docker images now signed and available on the GitHub Container Registry
- Other noteworthy changes
- New Integrations
- New Platforms
- Integrations now available to set up from the UI
- Release 2021.5.1 - May 7
- Release 2021.5.2 - May 10
- Release 2021.5.3 - May 11
- Release 2021.5.4 - May 14
- Release 2021.5.5 - May 19
- If you need help…
- Backward-incompatible changes
- Farewell to the following
- All changes
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 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 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.
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.
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.
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:
- Store webhook information in Home Assistant
- One that updates based on a time trigger once a day (e.g., “Is is my birthday?” binary sensor).
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
CodeNotary is a distributed Ledger solution using the
immudb
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
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()
andmax()
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:
-
Compensation, added by @Petro31
-
iAlarm, added by @RyuzakiKK
-
Kostal Plenticore, added by @stegm
-
Met Éireann, added by @DylanGore
-
motionEye, added by @dermotduffy
-
Mutesync, added by @currentoor
-
Picnic, added by @corneyl
-
SiteSage Emonitor, added by @bdraco
New Platforms
The following integration got support for a new platform:
-
ClimaCell added sensor that provide a whole bunch of additional data, done by @raman325
-
deCONZ now has support for alarm control panels, added by @Kane610
-
Mazda Connected Services now provides a device tracker for your car, added by @bdr99
-
National Weather Service (NWS) added support for weather sensors, added by @MatthewFlamm
-
Rituals Perfume Genie now provides sensors and binary sensors, added by @milanmeu
-
Sonos added battery & charging binary sensors for Sonos speakers that have those, done by @jjlawren
-
Zigbee Home Automation (ZHA) now has support for alarm control panels, added by @dmulcahey
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
Enphase Envoy, done by @bdraco
-
Google Maps Travel Time, done by @raman325
-
SMA Solar, done by @rklomp
-
Waze Travel Time, done by @raman325
-
Ezviz, done by @RenierM26
-
AVM FRITZ!Box Tools, done by @chemelli74
Release 2021.5.1 - May 7
- Fix mysensors default persistence file on import (@MartinHjelmare
- #48410 ) (mysensors docs) - Only initialize Nuki configurations (@darkson95
- #49747 ) (nuki docs) - Denonavr bugfixes (@scarface-4711
- #49984 ) (denonavr docs) - Fix group selector (@tkdrob
- #50088 ) (group docs) - Fix RM pro temperature sensor (@felipediel
- #50098 ) (broadlink docs) - Ignore empty output from MQTT fan’s value template (@jbouwh
- #50122 ) (mqtt docs) - Bump python-miio dependency (@rytilahti
- #50129 ) (xiaomi_miio docs) - Bump sqlalchemy to 1.4.13 (@bdraco
- #50138 ) (recorder docs) - Fix zwave_js websocket api KeyError on unloaded entry (@MartinHjelmare
- #50154 ) (zwave_js docs) - Fix unique_id issue on onewire config entries (@epenet
- #50161 ) (onewire docs) - Add color_mode support to group light (@emontnemery
- #50165 ) (group docs) - Move not loaded websocket constant to zwave_js (@MartinHjelmare
- #50188 ) - Add value map for Climacell V3 pollen sensors (@raman325
- #50200 ) (climacell docs) - Ensure tesla setup is retried on timeout (@bdraco
- #50202 ) (tesla docs) - Allow SimpliSafe startup to retry on failure (@bachya
- #50211 ) (simplisafe docs) - Bump aiohue to 2.3.0 (@balloob
- #50217 ) (hue docs) - support more alarm panels (@dmulcahey
- #50235 ) (zha docs) - Fix Netatmo climate (@cgtobi
- #50238 ) (netatmo docs) - Fix light turn_on color conversion (@emontnemery
- #50251 ) (light docs) - Add color_mode to demo light (@emontnemery
- #49694 ) (demo docs)
Release 2021.5.2 - May 10
- Catch non payload modbus messages (@janiversen
- #49910 ) (modbus docs) - Fix incorrect attribute checks in Modbus hub (@vzahradnik
- #50241 ) (modbus docs) - Fix amcrest detection of sensor reset (@FrnchFrgg
- #50249 ) (amcrest docs) - Skip Huawei LTE device registry setup with no identifiers or connections (@scop
- #50261 ) (huawei_lte docs) - Fix Sonos polling bug (@jjlawren
- #50265 ) (sonos docs) - Update ovoenergy to 1.1.12 (@timmo001
- #50268 ) (ovo_energy docs) - Update denonavr to version 0.10.7 (@scarface-4711
- #50288 ) (denonavr docs) - Bump ha-philipsjs to 2.7.3 (@elupus
- #50293 ) (philips_js docs) - Fix tplink unloading when no switches are present (@bdraco
- #50301 ) (tplink docs) - Fix ESPHome timestamp sensor (@frenck
- #50305 ) (esphome docs) - Revert Rachio to seconds instead of total_seconds (@brg468
- #50307 ) (rachio docs) - Support multiple disks in systemmonitor (@ColinRobbins
- #50362 ) (systemmonitor docs) - Bump androidtv to 0.0.59 (@JeffLIrion
- #50367 ) - Bump hatasmota to 0.2.12 (@emontnemery
- #50372 ) (tasmota docs) - Increase httpx timeout for Tesla (@alandtse
- #50376 ) (tesla docs) - Fix location of current_play_mode (@jjlawren
- #50386 ) (sonos docs) - Bump pysonos to 0.0.45 (@jjlawren
- #50407 ) (sonos docs)
Release 2021.5.3 - May 11
- Handle transport errors when updating media via events (@bdraco
- #50480 ) (sonos docs) - Hotfix for Sonos favorites race condition (@jjlawren
- #50495 ) (sonos docs) - Include _StopScript.cause in trace (@emontnemery
- #50441 ) - update denonavr version 0.10.8 (@scarface-4711
- #50476 ) (denonavr docs) - Bump aiohue to 2.3.1 (@balloob
- #50506 ) (hue docs)
Release 2021.5.4 - May 14
- Fix Sonos favorites race condition v2 (@jjlawren
- #50575 ) (sonos docs) - Fix battery attribute (@cgtobi
- #50405 ) (netatmo docs) - Bumps aioasuswrt to 1.3.4 (@kennedyshead
- #50414 ) (asuswrt docs) - Skip adding battery on S1 Sonos devices (@jjlawren
- #50536 ) (sonos docs) - Bump pyhaversion from 21.3.0 to 21.5.0 (@ludeeus
- #50540 ) (version docs) - Update light device actions to check supported_color_modes (@emontnemery
- #50611 ) (light docs) - Fix IQVIA failing to start if any API call fails (@bachya
- #50615 ) (iqvia docs) - Update light intents to check supported_color_modes (@emontnemery
- #50625 ) (light docs)
Release 2021.5.5 - May 19
- Upgrade freesms to 0.2.0 (@frenck
- #50853 ) (free_mobile docs) - Backport Sonos handle subscription failures (@jjlawren
- #50796 ) (sonos docs) - Bump hatasmota to 0.2.13 (@emontnemery
- #50662 ) (tasmota docs) - Bump pysonos to 0.0.47 (@jjlawren
- #50792 ) (sonos docs) - Bump pyatmo to 4.2.3 (@cgtobi
- #50801 ) (netatmo docs)
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
Community Highlights: 19th edition
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
Take also a look at the original post
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
OpenTTS 2.0
Maybe the name still sounds fairly unknown to you, but OpenTTS
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:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Community Highlights: 18th edition
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
Would you also like your dashboard to be in the community highlight? Drop it
on Reddit
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
Home Assistant Energy
Internship progress
It has been 11 weeks since I started as an intern at Nabu Casa
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
In addition, I’m also working on an analog pulse meter, working with ESPHome
More information can also be found in the twitter thread below.
I'm doing an internship at @NabuCasa
— Klaas Schoute (@klaasnicolaas) April 20, 2021with the goal to discover how @home_assistant can be used to gain insight in your energy usage and help optimize it.
I will be using this thread to show some of the things that I have done so far. pic.twitter.com/0lLJxt15Nn
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:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Community Highlights: 17th edition
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
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
New >3 Click Mobile Dashboard - Work in Progressfrom r/homeassistant
Would you also like your dashboard to be in the community highlight? Drop it
on Reddit
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:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Community Highlights: 16th edition
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
Tempometer Gauge Card
Are you looking for a card to spice up your existing gauge card?
Then try the tempometer gauge card
Lovelace Dashboard
This week also a Lovelace dashboard and this time that of agneevX
You can find all his code in this repository
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:
- Tweet it! Be sure to mention @home_assistant
- Share it on our Facebook group
- Post it to our subreddit
- Tag @homeassistant
on Instagram - Or via chat, drop us a line in the #lounge at Discord
See you next edition!
Home Assistant Companion Android App April 2021 Release
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
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
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 & 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
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
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.
- 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 ❤️
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
- Automation debugging
- Home Assistant Analytics
- Warnings for undefined variables in Templates
- Filtering automations, scripts and scenes
- Z-Wave JS update
- Trigger-based template sensors
- UI selectors for script fields
- Other noteworthy changes
- New Integrations
- New Platforms
- Integrations now available to set up from the 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…
- Backward-incompatible changes
- Farewell to the following
- All changes
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.
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
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
Not open enough for you? We are publishing the result for everybody to see:
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, 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.
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 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 backward-incompatible 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.
Furthermore two new, advanced, services are introduced:
-
zwave_js.set_value
, a service that is capable of setting a value on a Z-Wave device directly, bypassing Home Assistant. -
zwave_js.bulk_set_partial_config_parameters
, a service that will allow you to set configuration parameters in bulk.
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.
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.
-
@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:
-
Analytics, added by @ludeeus
-
Legrand Home+ Control, added by @chemaaa
-
Pentair ScreenLogic, added by @dieselrabbit
New Platforms
The following integration got support for a new platform:
-
Gogogate2 and iSmartGate provides battery sensors for wiresless door sensors, added by @emontnemery
-
Panasonic Viera has now support for remotes, added by @joogps
-
Philips TV now has support for remotes, added by @elupus
-
Rheem EcoNet Products now have support for climate entities, added by @w1ll1am23
. -
Supervisor integration now has entities and services for things like versions and pending updates, added by @raman325
-
Tado now has weather support, added by @Noltari
Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
-
Xiaomi Miio, fans, sensors and lights, done by @starkillerOG
-
Hive, done by @KJonline
-
Verisure, done by @frenck
Release 2021.4.1 - April 8
- Check all endpoints for zwave_js.climate fan mode and operating state (@raman325
- #48800 ) (zwave_js docs) - Add missing super call in Verisure Camera entity (@JohNan
- #48812 ) (verisure docs) - Fix iCloud extra attributes (@nzapponi
- #48815 ) (icloud docs) - Replace redacted stream recorder credentials with ‘****’ (@emontnemery
- #48832 ) (stream docs) - Fix mysensor cover closed state (@MartinHjelmare
- #48833 ) (mysensors docs) - Validate supported_color_modes for MQTT JSON light (@emontnemery
- #48836 ) (light docs) (mqtt docs) - Bump speedtest-cli to 2.1.3 (@spacegaier
- #48861 ) (speedtestdotnet docs) - Correct wrong x in frontend manifest (@bramkragten
- #48865 ) (frontend docs) - Fix motion_blinds gateway signal strength sensor (@starkillerOG
- #48866 ) (motion_blinds docs) - Fix possibly missing changed_by in Verisure Alarm (@frenck
- #48867 ) (verisure docs) - Fix optional data payload in Prowl messaging service (@frenck
- #48868 ) (prowl docs) - Update frontend to 20210407.2 (@bramkragten
- #48888 ) (frontend docs)
Release 2021.4.2 - April 9
- Account for openweathermap ‘dew_point’ not always being present (@hanskroner
- #48826 ) (openweathermap docs) - Catch expected errors and log them in rituals perfume genie (@milanmeu
- #48870 ) (rituals_perfume_genie docs) - Extend media source URL expiry to 24h (@emontnemery
- #48912 ) (media_source docs) - Bump pykodi to 0.2.4 (@cgtobi
- #48913 ) (kodi docs) - Handle exceptions when looking for new version (@ludeeus
- #48922 ) (version docs) - Change discovery timeout from 10 to 60 (@ludeeus
- #48924 ) (hassio docs) - Fix “notify.events” trim() issue + add initial tests (@spacegaier
- #48928 ) (notify_events docs) - Bump pykodi to 0.2.5 (@cgtobi
- #48930 ) (kodi docs) - Bump ZHA quirks library (@dmulcahey
- #48931 ) (zha docs) - Extend Google Cast media source URL expiry to 24h (@Ph-Wagner
- #48937 ) (cast docs) - Fix Plex live TV handling (@jjlawren
- #48953 ) (plex docs)
Release 2021.4.3 - April 10
- Add TTS engines in config.components (@ludeeus
- #48939 ) (tts docs) - Implement percentage_step and preset_mode is not not speed fix for MQTT fan (@jbouwh
- #48951 ) (mqtt docs) - Bump devolo Home Control to support old websocket-client versions again (@Shutgun
- #48960 ) (devolo_home_control docs) - Fix config forwarding (@balloob
- #48967 ) (template docs) - Prevent ping id allocation conflict with device_tracker (@bdraco
- #48969 ) (ping docs) - Fix Shelly button device triggers (@thecode
- #48974 ) (shelly docs) - Update python-smarttub to 0.0.23 (@mdz
- #48978 ) (smarttub docs)
Release 2021.4.4 - April 13
- Move cast config flow tests to test_config_flow (@emontnemery
- #48362 ) (cast docs) - Bump nexia to 0.9.6 (@bdraco
- #48982 ) (nexia docs) - Set Lyric hold time to use local time instead of utc (@timmo001
- #48994 ) (lyric docs) - Fix Shelly brightness offset (@thecode
- #49007 ) (shelly docs) - Bump ha-philipsjs to 2.7.0 (@elupus
- #49008 ) (philips_js docs) - Fix use search instead of match to filter logs (@frenck
- #49017 ) (logger docs) - Resolve potential roku setup memory leaks (@ctalkington
- #49025 ) (roku docs) - Bump aiohomekit to 0.2.61 (@bdraco
- #49044 ) (homekit_controller docs) - Fix cast options flow overwriting data (@emontnemery
- #49051 ) (cast docs) - Quote media_source paths (@emontnemery
- #49054 ) (http docs) - mqtt fan percentage to speed_range and received speed_state fix (@jbouwh
- #49060 ) (mqtt docs) - Catch unknown equipment values (@dieselrabbit
- #49073 ) (screenlogic docs) - Downgrade logger message about homekit id missing (@bdraco
- #49079 ) (homekit_controller docs) - Upgrade maxcube-api to 0.4.2 (@unaiur
- #49106 ) (maxcube docs) - Check all endpoints for zwave_js.climate hvac_action (@jjlawren
- #49115 ) (zwave_js docs)
Release 2021.4.5 - April 16
- Bump aiodiscover to 1.3.4 (@bdraco
- #49142 ) (dhcp docs) - Fix setting up remotes that lack a supported features list in homekit (@bdraco
- #49152 ) (homekit docs) - Don’t receive homeassistant_* events from MQTT eventstream (@emontnemery
- #49158 ) (mqtt_eventstream docs) - Set deprecated supported_features for MQTT JSON light (@emontnemery
- #49167 ) (light docs) (mqtt docs) - Upgrade spotipy to 2.18.0 (@frenck
- #49220 ) (spotify docs) - Fix race when restarting script (@emontnemery
- #49247 ) - Fix mysensors sensor protocol version check (@MartinHjelmare
- #49257 ) (mysensors docs) - Fix Coronavirus integration robustness (@frenck
- #49287 ) (coronavirus docs) - Mark camera as a base platform (@ludeeus
- #49297 )
Release 2021.4.6 - April 19
- Apply Precision/Scale/Offset to struct in modbus sensor (@janiversen
- #48544 ) (modbus docs) - Upgrade pyMetno to 0.8.2 (@Danielhiversen
- #49308 ) (met docs) (norway_air docs) - Fix exception in roomba discovery when the device does not respond on the first try (@bdraco
- #49360 ) (roomba docs) - Fix deadlock when restarting scripts (@emontnemery
- #49410 ) - Google report state: thermostatMode should be a string, not null (@bramkragten
- #49342 ) (google_assistant docs)
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