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…
- Breaking 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 who build the backend for this. The beautiful graphing was made by @thomasloven, and all the frontend work by @balloob & @bramkragten. Marvelous job guys! Thanks!
Additionally, a special thanks to all the (beta) testers that helped testing this feature and those who provided trace samples that helped to squash bugs!
Got questions about this feature? Want to see it in action? Be sure to tune in to the 2021.4 release party stream later today!
Home Assistant Analytics
Now don’t be scared by the title!
Today we introduce: Home Assistant Analytics. Opt-in, privacy-aware, public and open source. Just as it all should be for our project.
@ludeeus did a fantastic job writing this new integration. You decide if you turn it on or not; however, we guarantee it’s privacy-aware. Doubt it? Review it! Everything is open source!
Not open enough for you? We are publishing the result for everybody to see:
Screenshot of the Home Assistant Analytics website.
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 breaking changes section for more info.
Alright, now the fun stuff! You can now configure each Z-Wave device straight from within Home Assistant. When you view a device in the Home Assistant frontend, you can click on “CONFIGURE DEVICE” button that is shown on each device page. This allows you to manage and adjust device (node) specific configuration parameters for the selected device.
Screenshot of configuring a Z-Wave device from within Home Assistant.
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. Make sure to fill in all fields of the issue template.
Breaking Changes
Below is a listing of the breaking change for this release, per subject or integration. Click on one of those to read more about the breaking change for that specific item.
Custom integrations now require a version
key in their manifest file, this
also means that all custom integrations now require a manifest file.
If you are using a legacy custom integration like custom_components/awesome.py
this now needs to move to custom_components/awesome/__init__.py
so you can
add custom_components/awesome/manifest.json
to it.
For more information about integration, manifests have a look here: https://developers.home-assistant.io/docs/creating_integration_manifest
For now, this will create a warning on startup. But this will be blocked from loading if it’s missing a version in the manifest starting with Home Assistant 2021.6.
If you see these warnings, please report the issue with the author of that custom integration.
(@ludeeus - [#45919])
The Xiaomi Miio Fan, Sensor & Light platforms can now be configured via the UI.
If you currently have them configured using YAML configuration, they will be automatically imported into the UI on upgrade. After upgrading, you can safely remove the YAML configuration for these devices.
The LIFX Legacy platform is deprecated and will be removed in Home Assistant Core 2021.6.0. Use the LIFX integration instead.
(@frenck - #47235) (lifx_legacy docs)
At this moment, we are unsure if this is a breaking change or not, so we list it, just to be sure.
We are now explicitly only supporting secrets inside your Home Assistant Core and Lovelace configuration files (and anything included from there). Secrets are no longer supported in other loaded YAML files.
This change should not affect regular users of Home Assistant, however, we have been made aware that some custom integrations may cause problems. If you are a user of Dwains theme, the HomeKit Infused theme or lovelace_gen, please make sure to update those or check with the upstream project.
The HomeKit auto_start
configuration option has been deprecated. It dates
from the “old”-days to prevent entities not being available yet when HomeKit
started. However, nowadays, Home Assistant ensures all entities are available
on startup instantly.
Therefore, this option is no longer needed. If you still have it in your configuration (and have automations for it to start HomeKit); those can be safely removed as well.
(@frenck - #47470) (homekit docs)
Wake on LAN component now assumes a dummy state if a host is not provided.
Before, the state was only based on the host
config parameter, which is
listed as optional.
With this change the host
config is still optional, but if it is not defined,
the state of the switch is simply the last action that was taken. If you’re
relying on a Wake on LAN entity in an automation or script, please make sure
that your assumptions about state still hold.
The Verisure integration largely rewritten and is now configured via the Home Assistant user interface.
Your existing YAML configuration will be automatically imported when upgrading Home Assistant Core. After the upgrade completes, you can safely remove the existing Verisure YAML configuration.
If after upgrade your Verisure alarm system doesn’t appear, please check your integrations dashboard. In rare cases (with accounts that have access to multiple Verisure alarm systems), it might be needed to select the specific Verisure alarm system to migrate.
This also means the YAML configuration for the Verisure integration is now deprecated and will be removed in Home Assistant Core 2021.6.0.
The services provided by the Verisure integration have changed to match the standard way of how Home Assistant handles services. The following services are affected by this change:
Previously these services required a device_serial
parameter, they have now
changed to accept a regular Home Assistant entity, device or area as a target.
For example:
- service: verisure.enable_autolock
target:
entity_id: lock.my_verisure_lock
If you used any of these services in your automations or scripts, please make sure you update them after updating to Home Assistant Core 2021.4.0.
(@frenck - #47880 #47905) (verisure docs)
Before this change, all sensors in an unknown state when the Prometheus exporter
starts (i.e.: when Home Assistant starts) were being setup and metrics were
exported with a default value of 0
. Now, they will not be exported anymore
(unless they become available again) - they can be found by searching for
metrics where entity_available
is 0
(will reveal both entities that are
in unknown or unavailable state).
You should update any automations, scripts or 3rd party data consumers that
depend on the old prometheus export with default value 0
.
(@inetAnt - #47840) (prometheus docs)
August has fully transitioned to configuration via UI. YAML configuration is no longer supported. Existing YAML configuration has already been imported automatically in the previous releases and can now safely be removed from your configuration files.
(@bdraco - #47615) (august docs)
The Workday integration used to operate on the timezone configured on the system, instead of the timezone configured in Home Assistant. This can become problematic, for example, if your system runs on UTC, but you are 11 hours ahead of that.
This behavior has been correct and the workday sensors now rely on the timezone configured in Home Assistant. You might need to adjust to this, if you have automations, scripts or templates that previously manually corrected this.
(@schiermi - #47927) (workday docs)
Zwave JS climate devices that report their temperature in Fahrenheit will now report in tenth precision instead of whole precision, when the device supports it.
Previously, when those devices reported a temperature of, for example, 67.6F it would be rounded and reported in whole precision as 68F. Those devices will now report the temperature with tenth precision, thus 67.6F.
This means that if you currently have automation that depends on the temperature reported by these devices you may have to adjust their functionality to work properly with how the temperature is now being reported.
(@chilicheech - #48133) (zwave_js docs)
The event names for Z-Wave JS value notification (central scene) events will
now be called zwave_js_value_notification
and notification (e.g.,
locking or unlocking a lock) events will now be called zwave_js_notification
.
For notification events, the properties that Z-Wave JS provides have changed,
and we have changed the HA event property names to reflect that. The parameter
that used to be called label
(The human-readable label for the
notification event) is now called event_label
as there is now a
new label
property which is the human-readable label for the notification
type.
In addition, we now support notification events for two command classes, Entry Control and Notification, so the command class is reflected in the event data. You can learn more about the different command class notifications and what each parameter means for the different notifications here:
https://zwave-js.github.io/node-zwave-js/#/api/node?id=quotnotificationquot
(@raman325 - #48094) (zwave_js docs)
Previously, during template rendering, undefined variables are replaced with an empty string. As an example the template `` will render as the empty string. This is error prone as it means misspelled or non existent variables are silently accepted by the template engine.
Starting this release, there will be a warning message in the log when a variable is undefined, but it is still rendered as the empty string. So, besides the warning, right now, nothing changes.
Starting with Home Assistant 2021.10, undefined variables will be treated as an error and template rendering will fail.
To allow rendering of templates where it is expected that a variably may not
be defined without logging a warning or failing to render, use the default
filter: ``.
(@emontnemery - #48140)
Zeroconf will now only listen on the default interface by default.
If you need to broadcast mDNS responses to all interfaces or retain the
previous behavior, set default_interface
to false
.
With multiple interfaces, mDNS traffic processing happened numerous times since the duplicate packets appeared on each interface. This behavior was not desirable for most cases which necessitated a change in the default.
The Home Assistant Operating System has multiple interfaces and was affected.
(@bdraco - #48302) (zeroconf docs)
The YAML configuration for the Google Cast integration has been deprecated and will be fully removed in Home Assistant Core 2021.6.0.
If you have existing YAML configuration for the Google Cast integration, please remove it from your configuration.
(@emontnemery - #47269) (cast docs)
Vacuum attributes clean start
, clean stop
and camera
attribute generated_at
are now in a timestamp format.
New format is “2021-03-20T10:35:47Z”. This allow automation to use their
value based on as_timestamp()
.
If you relies on these attributes in your automation or script, you might need to adjust them to match this change.
(@chemelli74 - #48150) (neato docs)
The fan entity model has been changed. This impacts the way the MQTT Fan supports speeds and the following configuration options are deprecated and will be removed in Home Assistant Core 2021.7.0:
speed_command_topic
speed_state_topic
speed_value_template
speeds
payload_off_speed
payload_low_speed
payload_medium_speed
payload_high_speed
Additionally,preset_modes
and percentage
are added to replace the legacy
model supporting only three speeds low
, medium
and high
.
Therefore, command templates
for state
, oscillation
, preset_mode
and
percentage
are introduced.
Block detectable I/O in the event loop
We added a warning when this happens last April and gave developers a year to fix the instability. We now prevent the instability by raising RuntimeError when code attempts to do known I/O in the event loop instead of the executor.
We now provide a suggestion on how to fix the code that is causing the issue.
You can now use the new style configuration when configuring the modbus integration. The existing configuration style is kept, allowing you to change gradually.
Remark the existing configuration style will be removed in a couple of releases.
Example of an existing configuration:
modbus:
- name: "hub1"
type: tcp
host: IP_ADDRESS
port: 502
sensor:
platform: modbus
registers:
- name: "Sensor1"
hub: "hub1"
unit_of_measurement: "°C"
slave: 1
register: 100
Same configuration in new style:
modbus:
- name: "hub1"
type: tcp
host: IP_ADDRESS
port: 502
sensors:
- name: "Sensor1"
slave: 1
address: 100
(@janiversen - #46591) (modbus docs)
The reporting
and include_used_components
configuration options have now
been deprecated, the updater
integration will no longer report any analytics.
The analytics has moved to its own integration.
See the analytics
integration for more details on
how to configure it.
(@ludeeus - #48518) (updater docs)
The SolarEdge configuration via YAML has been deprecated and will be removed in a future release of Home Assistant. The integration is using a configuration via the UI for two years now.
Existing YAML configurations are automatically imported into the UI, and can be safely removed from your YAML configuration.
(@frenck - #48533) (solaredge docs)
MQTT JSON light now supports color_mode
which should be used together with
supported_color_modes
to signal the light’s features.
Feature flags color_temp
, hs
, rgb
, white_value
, xy
are all deprecated
and support will be removed in 2021.10.
(@emontnemery - #47993) (mqtt docs)
When restarting Home Assistant, the previous ping sensor state is now restored and then updated in the background to allow startup to proceed without the risk of timing out.
When the user has many ping sensors, the ping integration could timeout starting up because each ping has to happen in the executor.
Farewell to the following
The following integrations are no longer available as of this release:
- Griddy has been removed, Ercot shut down Griddy after the massive power mess in Texas in mid February. (@bdraco - #47218)
All changes
- Bump version to 2021.4.0dev0 (@frenck - #47017)
- Convert discovery helper to use dispatcher (@balloob - #47008) (discovery docs) (octoprint docs)
- Upgrade TwitterAPI to 2.6.8 (@fabaff - #47019) (twitter docs)
- Add Xiaomi Miio fan config flow (@starkillerOG - #46866) (xiaomi_miio docs) (breaking-change)
- hm climate: Return PRESET_NONE instead of None (@FHeilmann - #47003) (homematic docs)
- Normally there should only be one battery sensor per device from deCONZ. (@Kane610 - #46761) (deconz docs)
- Upgrade icmplib to 2.0.2 (@fabaff - #47039) (ping docs)
- Clean up discovery integration (@balloob - #47022) (daikin docs) (discovery docs) (freebox docs)
- Upgrade pyowm to 3.2.0 (@fabaff - #47042) (openweathermap docs)
- Upgrade sendgrid to 6.6.0 (@fabaff - #47041) (sendgrid docs)
- Add remote control platform to Panasonic Viera (@joogps - #42450) (panasonic_viera docs) (new-platform)
- Bump gios library to version 0.2.0 (@bieniu - #47050) (gios docs)
- Replace wrong domain returned from xbox api 2.0 (@Melantrix - #47021) (xbox docs)
- Add zeroconf discovery to Freebox (@Quentame - #47045) (discovery docs) (freebox docs)
- Clean up Netatmo webhook handler (@cgtobi - #47037) (netatmo docs)
- Fix bond typing in config flow (@bdraco - #47055) (bond docs)
- Fix Z-Wave JS API docstrings (@cgarwood - #47061) (zwave_js docs)
- Upgrade youtube_dl to version 2021.02.22 (@chpego - #47078) (media_extractor docs)
- Bump pychromecast to 9.0.0 (@emontnemery - #47086) (cast docs)
- Remove flaky climacell test (@raman325 - #47080) (climacell docs)
- Add suggested_area support to devolo Home Control (@Shutgun - #47063) (devolo_home_control docs)
- Guard zwave_js missing nodes in websocket api (@cgarwood - #47096) (zwave_js docs)
- Improve handling for recording start of nest cam stream (@allenporter - #47144) (stream docs)
- Change device class of window covers to shade (@Kane610 - #47129) (deconz docs)
- Bump airly library to version 1.1.0 (@bieniu - #47163) (airly docs)
- Clean up mqtt_room (@tkdrob - #46882) (mqtt_room docs)
- Tweak Tasmota fan typing (@emontnemery - #47175) (tasmota docs)
- Apply recommendations to synology_dsm (@mib1185 - #47178) (synology_dsm docs)
- Fix flaky hls keepalive test (@allenporter - #47186) (stream docs)
- Remove turn_on and turn_off from SmartTub pump switches (@mdz - #47184) (smarttub docs)
- Move SmartTub climate constants to module level (@mdz - #47190) (smarttub docs)
- Explain why should_pool is True initially for wemo (@esev - #47191) (wemo docs)
- Cleanup SmartTub filtration cycles (@mdz - #47192) (smarttub docs)
- Handle stream failures in recorder (@allenporter - #47151) (stream docs)
- Enforce typing in bond (@bdraco - #47187) (bond docs)
- Update pylint (@cdce8p - #47205)
- Add hassio addon_update service and hassio config entry with addon and OS devices and entities (@raman325 - #46342) (hassio docs) (new-platform)
- Improve CI workflow (@cdce8p - #46696)
- Revert const replacement in fritzbox_callmonitor (@cgtobi - #47211) (fritzbox_callmonitor docs)
- Remove griddy integration (@bdraco - #47218) (griddy docs)
- KNX services send and event_register accept multiple group addresses (@farmio - #46908) (knx docs)
- Deprecate knx config_file (@farmio - #46874) (knx docs) (breaking-change)
- Restore pylint concurrency (@frenck - #47221)
- Parameterize SmartTub tests (@mdz - #47189) (smarttub docs)
- Upgrade coverage to 5.5 (@frenck - #47227)
- Upgrade spotipy to 2.17.1 (@frenck - #47228) (spotify docs)
- Bump mcstatus to 5.1.1 (@jdeath - #47169) (minecraft_server docs)
- Overhaul command_line tests (@dermotduffy - #46682) (command_line docs)
- Minor Hyperion mypy cleanups (@dermotduffy - #45765) (hyperion docs)
- Address late hassio review (@raman325 - #47229) (hassio docs)
- KNX address constant (@farmio - #47196) (knx docs)
- Add support for a list of known hosts to Google Cast (@emontnemery - #47232) (cast docs)
- Add remote control support to philips_js (@elupus - #47249) (philips_js docs) (new-platform)
- Deprecate LIFX Legacy integration (@frenck - #47235) (lifx_legacy docs) (breaking-change)
- Fix typo in plaato strings (@milanmeu - #47245) (plaato docs)
- Remove rounding from The Things Network (@stephan192 - #47157) (thethingsnetwork docs)
- Add battery sensor for gogogate2 wireless door sensor (@emontnemery - #47145) (gogogate2 docs) (new-platform)
- Fix typing on fan percentage (@bdraco - #47259)
- Lint suppression cleanups (@scop - #47248)
- Clean up constants (@tkdrob - #46948)
- Add init test to Freebox (@Quentame - #46998) (freebox docs)
- Add services for izone airflow min/max (@Nick-Adams-AU - #45727) (izone docs)
- Fix izone flake8 error (@frenck - #47276) (izone docs)
- Add force_update to tasmota sensors (@rlehfeld - #47052) (tasmota docs)
- Upgrade isort to 5.7.0 (@scop - #47279)
- Add disk sensor to Freebox (@Quentame - #46689) (freebox docs)
- Uniformize platform setup (@Quentame - #47101)
- Clean up secret loading (@balloob - #47034) (breaking-change)
- KNX remove custom deprecation warnings (@farmio - #47238) (knx docs)
- Add activity properties to remote entity model (@bdraco - #47237) (harmony docs) (remote docs)
- bump python-smarttub to 0.0.19 (@mdz - #47294) (smarttub docs)
- Remove name from keenetic-ndms2 strings (@milanmeu - #47113) (keenetic_ndms2 docs)
- Correct gogogate2 battery sensor attributes (@emontnemery - #47302) (gogogate2 docs)
- Update izone services.yaml and remove entity_id from schema. (@Nick-Adams-AU - #47305) (izone docs)
- Fix Supervisor platform coordinator data lookup (@MartinHjelmare - #47308) (hassio docs)
- Philips JS correct post review comments (@elupus - #47247) (philips_js docs)
- Fix grammar in pi_hole logs (@tkdrob - #47324) (pi_hole docs)
- Add LZW36 device schema to zwave_js discovery (@firstof9 - #47314) (zwave_js docs)
- Initial automation tracing (@emontnemery - #46755) (automation docs) (config docs) (script docs)
- Fix secrets in files included via include_dir_list (@frenck - #47350)
- Update Solax library to 0.2.6 (@ppetru - #47384) (solax docs)
- Update browse_media.py (@cgtobi - #47414) (xbox docs)
- Fix typo in docs link for forked_daapd (@Cooper-Dale - #47413) (forked_daapd docs)
- Spellcheck on Synology component (@systemcrash - #47451) (synology_dsm docs)
- Add allenporter to stream codeowners (@uvjustin - #47431) (stream docs)
- Limit log spam by ESPHome (@amelchio - #47456) (esphome docs)
- Clean up constants (@tkdrob - #47323)
- Prevent Zerproc leaving open unnecessary connections (@emlove - #47401) (zerproc docs)
- Deprecate HomeKit auto start (@frenck - #47470) (homekit docs) (breaking-change)
- Convert kulersky to use new async backend (@emlove - #47403) (kulersky docs)
- Increase test coverage of UniFi integration (@Kane610 - #46347) (unifi docs)
- Typing tweak to the Elgato integration (@frenck - #47471) (elgato docs)
- Improve restoring UniFi POE entity state (@Kane610 - #47148) (unifi docs)
- Update ZHA dependencies (@Adminiuga - #47479) (zha docs)
- Move AsusWrt sensors update logic in router module (@ollo69 - #46606) (asuswrt docs)
- Complete typing on TwenteMilieu integration (@frenck - #47480) (twentemilieu docs)
- Complete typing on Verisure integration (@frenck - #47482) (verisure docs)
- Add OPENING & CLOSING state to MySensors cover (@FidgetyRat - #47285) (mysensors docs)
- Upgrade upcloud-api to 1.0.1 (@scop - #47501) (upcloud docs)
- Merge action and condition traces (@emontnemery - #47373) (automation docs)
- Disable audio stream when ADTS AAC detected (@uvjustin - #47441) (stream docs)
- Complete typing on AdGuard Home integration (@frenck - #47477) (adguard docs)
- Add precipitation probability forecast to owm (@N1c093 - #47284) (openweathermap docs)
- Add device classes for CO and CO2 measurements (@Adminiuga - #47487) (sensor docs)
- Change default homekit ports to 21063 and 21064 (@bdraco - #47491) (homekit docs)
- Increase ESPHome log level on first connection failure (@amelchio - #47547) (esphome docs)
- Improve common structure in UniFi device tracker tests (@Kane610 - #47526) (unifi docs)
- Correctly close lacrosse on homeassistant stop (@jplitza - #47555) (lacrosse docs)
- Clean up Lutron Caseta (@tkdrob - #47534) (lutron_caseta docs)
- Clean up kmtronic (@tkdrob - #47537) (kmtronic docs)
- Round miles in myChevy sensors (@austinmroczek - #46879) (mychevy docs)
- Remove @newAM from hdmi_cec codeowners (@newAM - #47542) (hdmi_cec docs)
- Bump actions/stale from v3.0.17 to v3.0.18 (@dependabot - #47612)
- Update rokuecp to 0.8.1 (@ctalkington - #47589) (roku docs)
- Upgrade elgato to 2.0.1 (@frenck - #47616) (elgato docs)
- Upgrade pre-commit to 2.11.0 (@frenck - #47618)
- Add support for Flo “pucks” (@adamjernst - #47074) (flo docs)
- Allow 10mV precision for ZHA battery sensor entities (@Adminiuga - #47520) (zha docs)
- Add feels like temperature sensor to OpenWeatherMap (@freekode - #47559) (openweathermap docs)
- Code cleanup for SmartTub integration (@mdz - #47584) (smarttub docs)
- Upgrade pillow to 8.1.2 (@frenck - #47619)
- Add (some) of ZCL concentration clusters to ZHA component (@B-Hartley - #47590) (zha docs)
- Store automation traces indexed by run_id (@emontnemery - #47509) (automation docs)
- Add title key to allow mobile app title translation to other languages (@Antoni-Czaplicki - #46593) (mobile_app docs)
- Add suggested_area support to Apple TV (@bdraco - #47015) (apple_tv docs)
- Remove self as code owner for mylink (@bdraco - #46242) (somfy_mylink docs)
- Config flow to allow marking itself as confirm only (@balloob - #47607)
- Fix I-frame interval in stream test video (@uvjustin - #47638)
- Add WS command to get a summary of automation traces (@emontnemery - #47557) (automation docs) (config docs)
- Add type hints to LightEntity (@thecode - #47024) (light docs)
- Ensure bond light follows proper typing (@spacegaier - #47641) (bond docs)
- Include changed variables in automation trace (@emontnemery - #47549)
- Update attrs to 20.3.0 (@scarface-4711 - #47642)
- Add option to reverse switch behaviour in KMTronic (@dgomes - #47532) (kmtronic docs)
- Upgrade sentry-sdk to 1.0.0 (@frenck - #47626) (sentry docs)
- Upgrade aiohttp to 3.7.4.post0 (@frenck - #47627)
- Fix maxcube thermostat transition from off to heat mode (@unaiur - #47643) (maxcube docs)
- Catch dhcp setup permission errors sooner (@bdraco - #47639) (dhcp docs)
- Harmony: set confirm only (@bdraco - #47617) (harmony docs)
- Add error message to options flow if connection fails for nut integration (@mib1185 - #46972) (nut docs)
- Shelly: set confirm only (@balloob - #47608) (shelly docs)
- Revert Shelly temperature sensor name change (@thecode - #47664) (shelly docs)
- Replace Entity.device_state_attributes with Entity.extra_state_attributes (@emontnemery - #47304)
- Update tests a-b to use async_get() instead of async_get_registry() (@emontnemery - #47651)
- Update tests t-z to use async_get() instead of async_get_registry() (@emontnemery - #47655)
- Update tests p-s to use async_get() instead of async_get_registry() (@emontnemery - #47654)
- Update tests c-h to use registry async_get (@emontnemery - #47652)
- Update tests i-o to use async_get() instead of async_get_registry() (@emontnemery - #47653)
- Add TYPE_CHECKING to coverage excludes (@cdce8p - #47668)
- Rename AutomationTrace.runid to AutomationTrace.run_id (@emontnemery - #47669) (automation docs)
- Improve logging elgato (@balloob - #47681) (elgato docs)
- Handle zeroconf updated events (@balloob - #47683) (zeroconf docs)
- Fix recorder with MSSQL (@bdraco - #46678) (recorder docs)
- Restore switch.turn_on and switch.turn_off functionality for SmartTub pumps (@mdz - #47586) (smarttub docs)
- Add confirm only for Elgato (@frenck - #47684) (elgato docs)
- Use the local timezone when parsing Todoist due dates (@c99koder - #45994) (todoist docs)
- Add support for breakpoints in scripts (@emontnemery - #47632) (automation docs) (config docs)
- Fix automations with traces. (@balloob - #47705) (automation docs)
- Bump codecov/codecov-action from v1.2.1 to v1.2.2 (@dependabot - #47707)
- Fix aemet temperatures with a value of 0 (@Noltari - #47680) (aemet docs)
- Add device class CO2 to various integrations (@iMicknl - #47676) (ambient_station docs) (awair docs) (fibaro docs) (netatmo docs) (tasmota docs)
- bump client library (@zxdavb - #47722) (evohome docs)
- Bump incomfort client to 0.4.4 (@zxdavb - #47718) (incomfort docs)
- Use LONGTEXT column instead of TEXT for MySQL/MariaDB and migrate existing databases (@CurrentThread - #47026) (recorder docs)
- Refactor Harmony tests to better follow Home Assistant conventions (@mkeesey - #47141) (harmony docs)
- Allow SSDP discovery modern Hue hubs (@balloob - #47725) (hue docs)
- Improve HomeKit discovered Hue config flow (@frenck - #47729) (hue docs)
- Add Tado weather support (@Noltari - #44807) (tado docs) (new-platform)
- Update xknx to 0.17.2 (@farmio - #47732) (knx docs)
- Add missing clear-night weather condition (@hung2kgithub - #47666) (template docs)
- Tweak automation tracing (@emontnemery - #47721) (automation docs) (config docs)
- Verify get_zones webhook works (@balloob - #47741) (mobile_app docs)
- Ensure startup can proceed when there is package metadata cruft (@bdraco - #47706)
- Fixed string typos in Lutron and Roomba (@spacegaier - #47745) (lutron_caseta docs) (roomba docs)
- Fix light brightness_step on multiple entities (@emontnemery - #47746) (light docs)
- Add Xiaomi Miio sensor config flow (@starkillerOG - #46964) (xiaomi_miio docs) (breaking-change)
- Hoist mqtt name property and add icon support to MqttEntity (@kristianheljas - #47165) (mqtt docs)
- Add Xiaomi Miio light config flow (@starkillerOG - #47161) (xiaomi_miio docs) (breaking-change)
- Update integrations a-e to override extra_state_attributes() (@emontnemery - #47756)
- Update integrations f-i to override extra_state_attributes() (@emontnemery - #47757)
- Recorder improvements (@cdce8p - #47739) (recorder docs)
- Add DataUpdateCoordinator to Verisure (@frenck - #47574) (verisure docs)
- Update integrations j-o to override extra_state_attributes() (@emontnemery - #47758)
- Update integrations t-z to override extra_state_attributes() (@emontnemery - #47760)
- Update integrations p-s to override extra_state_attributes() (@emontnemery - #47759)
- Consistent spelling of “PIN” (@spacegaier - #47771) (blink docs) (ecobee docs) (hangouts docs) (nest docs) (zwave docs)
- Upgrade numato-gpio to 0.10.0 (@clssn - #47539) (numato docs)
- Upgrade adguardhome to v0.5.0 (@frenck - #47774) (adguard docs)
- Add apply_filter attribute to recorder.purge service (@cdce8p - #45826) (recorder docs)
- Bump broadlink from 0.16.0 to 0.17.0 (@felipediel - #47779) (broadlink docs)
- Bump pyIntesisHome to v1.7.6 (@jnimmo - #47500) (intesishome docs)
- Log the full exception when the recorder fails to setup (@bdraco - #47770) (recorder docs)
- Cleanup homekit and remove aid storage from hass.data (@bdraco - #47488) (homekit docs)
- Improve Atag integration and bump version to 0.3.5.3 (@MatsNl - #47778) (atag docs)
- Store the correct context in the trace (@balloob - #47785) (automation docs)
- Do not use AsyncTrackStates (@balloob - #47255) (api docs)
- Bump devolo_home_control_api to 0.17.0 (@Shutgun - #47790) (devolo_home_control docs)
- Remove unused COVER_SCHEMA from gogogate2 cover (@emontnemery - #47170) (gogogate2 docs)
- Bump pyatv to 0.7.7 (@postlund - #47798) (apple_tv docs)
- Allow filtering the logbook by context_id (@balloob - #47783) (logbook docs)
- Add ambient sensors to nut integration (@mib1185 - #47411) (nut docs)
- Add temperature sensor for gogogate2 wireless door sensor (@emontnemery - #47754) (gogogate2 docs)
- Return property_key in zwave_js get_config_parameters websocket (@cgarwood - #47808) (zwave_js docs)
- Add HomeKit support for new CO / CO2 device class (@iMicknl - #47737) (demo docs) (homekit docs)
- UniFi has changed to not report uptime in epoch form (@Kane610 - #47492) (unifi docs)
- Improve deCONZ init tests (@Kane610 - #47825) (deconz docs)
- Introduction of deCONZ websocket fixture (@Kane610 - #47812) (deconz docs)
- Update cloud integration to 0.42.0 (@klaasnicolaas - #47818) (cloud docs)
- Additional sensors for OpenWeatherMap (@hanskroner - #47806) (openweathermap docs)
- Fix unclean shutdown of recorder test (@emontnemery - #47791) (recorder docs)
- fix exception on device removal (@dmulcahey - #47803) (zha docs)
- Bump frontend to 20210313.0 (@balloob - #47844) (frontend docs)
- Fix missing integer cast in squeezebox config flow (@rajlaud - #47846) (squeezebox docs)
- Add timeouts in stream tests to prevent possible hangs (@allenporter - #47545) (stream docs)
- Fix zwave_js preset supported feature (@raman325 - #47819) (zwave_js docs)
- Fix spelling of automatically in roomba/lutron_caseta components (@tdorsey - #47856) (lutron_caseta docs) (roomba docs)
- Update aiolyric to v1.0.6 (@timmo001 - #47871) (lyric docs)
- Add device_info to Apple TV entities (@postlund - #47837) (apple_tv docs)
- Bump up ZHA dependency (@Adminiuga - #47873) (zha docs)
- Fix zwave_js preset mode lookup (@MartinHjelmare - #47851) (zwave_js docs)
- Update service config for lyric (@timmo001 - #47857) (lyric docs)
- Add HVAC action to Lyric climate platform (@timmo001 - #47876) (lyric docs)
- Verisure: Remove JSONPath, unique IDs, small cleanups (@frenck - #47870) (verisure docs)
- Add Xiaomi Miio subdevice lightbulb support (@starkillerOG - #46660) (xiaomi_miio docs)
- Upgrade Tibber library to 0.16.2 (@Danielhiversen - #47892) (tibber docs)
- Reduce number of iqair request (@jugla - #47890) (airvisual docs)
- Update pyhomematic to 0.1.72 (@danielperna84 - #47906) (homematic docs)
- Improve error reporting in recorder purge test (@bdraco - #47929) (recorder docs)
- Fix homekit checking for port cleanup too many times (@bdraco - #47836) (homekit docs)
- Add suggested area support to august (@bdraco - #47930) (august docs)
- Bump accuweather library (@bieniu - #47915) (accuweather docs)
- Bump gios library (@bieniu - #47917) (gios docs)
- Upgrade to maxcube-api-0.4.1 (@unaiur - #47910) (maxcube docs)
- Invalidate HLS Stream on nest url refresh failure (@allenporter - #47869) (nest docs)
- Address review comments and minor fix for Mazda integration (@bdr99 - #47702) (mazda docs)
- Update openwrt-luci-rpc from 1.1.6 to 1.1.8 (@pdecat - #47848) (luci docs)
- Improve bad JSON data reporting (@balloob - #47932)
- MQTT Light: Use flash attribute in async_turn_off (@drzony - #47919) (mqtt docs)
- Support all Xiaomi Miio gateway switches (@starkillerOG - #46657) (xiaomi_miio docs)
- Make Xiaomi Miio unavailable device independent (@starkillerOG - #47795) (xiaomi_miio docs)
- Add Hive config flow (@KJonline - #47300) (hive docs) (breaking-change)
- Add tests for Netatmo climate (@cgtobi - #46392) (netatmo docs)
- Upgrade qnapstats library to 0.3.1 (@colinodell - #47907) (qnap docs)
- Clean up Lyric (@timmo001 - #47899) (lyric docs)
- Migrate LCN configuration to ConfigEntry (Part 1) (@alengwenus - #44090) (lcn docs)
- Upgrade vsure to 1.7.3 (@frenck - #47946) (verisure docs)
- Sort supported features in vlc_telnet (@dmcc - #46800) (vlc_telnet docs)
- Add zwave_js dev docs readme (@MartinHjelmare - #47621) (zwave_js docs)
- None optional hass typing in base entity and notify (@frenck - #47528)
- Bump brother library (@bieniu - #47949) (brother docs)
- Implement Wake On Lan Dummy State (@ntilley905 - #47719) (wake_on_lan docs) (breaking-change)
- Update state translation strings for water_heater (@iMicknl - #46588) (water_heater docs)
- Ensure recorder purge tests can handle multiple purge cycle (@bdraco - #47956) (recorder docs)
- Use ClientTimeout for hassio send_command (@ludeeus - #47957) (hassio docs)
- improve debug logging (@mib1185 - #47858) (synology_dsm docs)
- Add suggested_area to MQTT discovery (@RadekHvizdos - #47903) (mqtt docs)
- Add config flow to Verisure (@frenck - #47880) (verisure docs) (breaking-change)
- Add zwave_js sensor humidity device class (@MartinHjelmare - #47953) (zwave_js docs)
- Move Verisure services to entity services (@frenck - #47905) (verisure docs) (breaking-change)
- Add devices to Verisure integration (@frenck - #47913) (verisure docs)
- Make it possible to list debug traces for a specific automation (@emontnemery - #47744) (automation docs)
- Fix xmpp notify for muc rooms (@Socalix - #46715) (xmpp docs)
- Add voltage device class to devolo Home Control (@Shutgun - #47967) (devolo_home_control docs)
- Add reauthentication to Verisure (@frenck - #47972) (verisure docs)
- Correct trace for choose and repeat script actions (@emontnemery - #47973)
- Add execute_script WS API (@emontnemery - #47964) (websocket_api docs)
- Add support for light color modes (@emontnemery - #47720) (kulersky docs) (light docs) (yeelight docs) (zerproc docs)
- Add custom JSONEncoder for automation traces (@emontnemery - #47942) (automation docs)
- Guard extra call in ZHA lights (@dmulcahey - #47832) (zha docs)
- Ignore STATE_UNKNOWN in prometheus (@inetAnt - #47840) (prometheus docs) (breaking-change)
- Add device classes to Verisure sensors (@frenck - #47990) (verisure docs)
- Update xknx to 0.17.3 (@farmio - #47996) (knx docs)
- Improve JSONEncoder test coverage (@emontnemery - #47935)
- Add aliases to actions in automation blueprints (@klaasnicolaas - #47940) (automation docs)
- Fix withings InvalidParamsException (@ronaldheft - #47975) (withings docs)
- Bump up ZHA dependencies (@Adminiuga - #47997) (zha docs)
- Add binary_sensor entities for SmartTub reminders (@mdz - #47583) (smarttub docs)
- Add support for Xiaomi Air Purifier Pro H (@billsq - #47601) (xiaomi_miio docs)
- Add missing “pin” field in step “pair” for philips_js (@eifinger - #47802) (philips_js docs)
- Upgrade youtube_dl to version 2021.03.14 (@chpego - #48000) (media_extractor docs)
- Add location details to deprecation warning (@alandtse - #47155)
- KNX sensor: float no longer valid for
type
(@farmio - #48005) (knx docs) (breaking-change) - Add run_id to automation logbook event (@balloob - #47980) (automation docs)
- Delay ZHA group updates to ensure all members are updated first (@abmantis - #46861) (zha docs)
- Remove YAML support from August (@bdraco - #47615) (august docs) (breaking-change)
- Add Pentair ScreenLogic integration (@dieselrabbit - #47933) (screenlogic docs) (new-integration)
- Fix historic attributes for input_datetime (@spacegaier - #45208) (history docs)
- Fix issue with setting sleep mode during DST (@natekspencer - #48001) (litterrobot docs)
- Add support for percentage based fan model in esphome (@blejdfist - #46712) (esphome docs)
- Bump codecov/codecov-action from v1.2.2 to v1.3.1 (@dependabot - #48020)
- Add Logger Check Before Adding Another (@ntilley905 - #47954)
- Rewrite tests for Template Light (@sycx2 - #41163) (template docs)
- Update metadata license string (@cdce8p - #46899)
- Fix workday sensor to honor timezone (@schiermi - #47927) (workday docs) (breaking-change)
- Switch history tests to pytest (@mdonoughe - #42318) (history docs)
- Update typing 01 (@cdce8p - #48013)
- Improve OWM Precipitation sensors (@hanskroner - #47945) (openweathermap docs)
- Update typing 02 (@cdce8p - #48014)
- Update typing 03 (@cdce8p - #48015)
- Add service schema for ESPHome api services (@glmnet - #47426) (esphome docs)
- Update typing 04 (@cdce8p - #48037)
- Update typing 05 (@cdce8p - #48038)
- Update typing 06 (@cdce8p - #48039)
- Google has deprecated a comma separated list for modes changed it to array (@KartoffelToby - #48029) (google_assistant docs)
- Upgraded aiopylgtv to v0.4.0 (@corneyl - #47014) (webostv docs)
- Add a service to reload config entries that can easily be called though automations (@bdraco - #46762) (homeassistant docs)
- Update typing 07 (@cdce8p - #48057)
- Update typing 08 (@cdce8p - #48058)
- Use websocket fixture in deCONZ binary sensor tests (@Kane610 - #47820) (deconz docs)
- Reduce rest setup code (@bdraco - #48062) (rest docs)
- Use websocket fixture in deCONZ climate tests (@Kane610 - #47821) (deconz docs)
- Update typing 09 (@cdce8p - #48059)
- Use websocket fixture in deCONZ cover tests (@Kane610 - #47822) (deconz docs)
- Use websocket fixture in deCONZ event related tests (@Kane610 - #47823) (deconz docs)
- Use websocket fixture in deCONZ fan tests (@Kane610 - #47824) (deconz docs)
- Use websocket fixture in deCONZ light tests (@Kane610 - #47826) (deconz docs)
- Use websocket fixture in deCONZ lock tests (@Kane610 - #47827) (deconz docs)
- Use websocket fixture in deCONZ sensor tests (@Kane610 - #47830) (deconz docs)
- Use websocket fixture in deCONZ switch tests (@Kane610 - #47831) (deconz docs)
- Improve deCONZ services and scenes tests (@Kane610 - #47829) (deconz docs)
- Propagate RFLink ‘send_command’ event (@javicalle - #43588) (rflink docs)
- Amcrest add support for CrossLineDetection (@andreas-amlabs - #44582) (amcrest docs)
- Update typing 10 (@cdce8p - #48071)
- Allow hdmi_cec to recover from lost connection to adapter without restart (@rajlaud - #40714) (hdmi_cec docs)
- Update typing 11 (@cdce8p - #48072)
- Ignore not implemented lg_soundbar source/equaliser. (@bernimoses - #45868) (lg_soundbar docs)
- Update typing 12 (@cdce8p - #48073)
- Update typing 13 (@cdce8p - #48077)
- Add tests for Netatmo oauth2 api (@cgtobi - #46375) (netatmo docs)
- Update typing 14 (@cdce8p - #48078)
- Update typing 15 (@cdce8p - #48079)
- Add URL input for Prowl (@elyobelyob - #46427) (prowl docs)
- Add definitions for grouping media players (@klada - #41193) (media_player docs)
- Add images support to matrix notify (@bestlibre - #37625) (matrix docs)
- Correct trace for repeat script actions (@emontnemery - #48031)
- Fix Shelly sleeping device initialization after reconfiguration (@bieniu - #48076) (shelly docs)
- Update typing 16 (@cdce8p - #48087)
- Add python-typing-update to pre-commit-config (@cdce8p - #48088)
- Update pyupgrade to v2.10.1 (@cdce8p - #48089)
- Add Opentherm Gateway current and setpoint precision (@Martidjen - #47484) (opentherm_gw docs)
- Refactor Netatmo test (@cgtobi - #48097) (netatmo docs)
- Type check KNX integration expose (@farmio - #48055) (knx docs)
- Type check KNX integration weather, notify and scene (@farmio - #48051) (knx docs)
- Type check KNX integration light (@farmio - #48053) (knx docs)
- Type check KNX integration binary_sensor, sensor and switch (@farmio - #48050) (knx docs)
- Type check KNX integration factory and schema (@farmio - #48045) (knx docs)
- Use device class voltage in NUT integration (@bieniu - #48096) (nut docs)
- Add tests for Netatmo light (@cgtobi - #46381) (netatmo docs)
- Add tests for Netatmo camera (@cgtobi - #46380) (netatmo docs)
- Add “timestamp” attribute to seventeentrack (@andreasbrett - #47960) (seventeentrack docs)
- Fix Homematic transition function on light devices with multiple channels (@miccico - #45725) (homematic docs)
- Upgrade RPi.GPIO to 0.7.1a4 (@frenck - #48106) (bmp280 docs) (mcp23017 docs) (rpi_gpio docs)
- Improve test coverage of deCONZ config flow (@Kane610 - #48091) (deconz docs)
- Add flake8 comprehensions checks to pre-commit & CI (@frenck - #48111)
- Add missing oauth2 error abort reason (@MartinHjelmare - #48112)
- Have pylint warn when user visible log messages do not start with capital letter or end with a period (@bdraco - #48064)
- Wait for switch startup in generic_thermostat (@javicalle - #45253) (generic_thermostat docs)
- Improve uvc test camera (@sycx2 - #41438) (uvc docs) (breaking-change)
- Improve sensor coverage by verifying daylight sensor attributes (@Kane610 - #48090) (deconz docs)
- Make Vera should_poll static rather than dynamic (@pavoni - #47854) (vera docs)
- Type check KNX integration fan (@farmio - #48056) (knx docs)
- Type check KNX integration cover (@farmio - #48046) (knx docs)
- Remove defunct test from percentage util (@frenck - #48125)
- Set zwave_js climate precision to tenths for F (@chilicheech - #48133) (zwave_js docs) (breaking-change)
- Rewrite of not a == b occurances (@frenck - #48132)
- Update pyvesync to 1.3.1 (@decompil3d - #48128) (vesync docs)
- Add tests for Netatmo webhook handler (@cgtobi - #46396) (netatmo docs)
- Yoda assertion style removed is (@frenck - #48142)
- Improve test coverage of deconz_device (@Kane610 - #48141) (deconz docs)
- Warn on undefined variables in templates (@emontnemery - #48140) (breaking-change)
- Fix a collection of tests with missing asserts (@frenck - #48127) (hassio docs) (logger docs) (recorder docs) (tod docs) (universal docs)
- only block coord removal if it is active (@dmulcahey - #48147) (zha docs)
- Use domain const in config_flow (@spacegaier - #48168) (ambiclimate docs) (daikin docs) (mqtt docs) (point docs) (tellduslive docs) (tradfri docs)
- ESPHome trigger reconnect immediately when mDNS record received (@OttoWinter - #48129) (esphome docs)
- Update RFLink tests (@javicalle - #48149) (rflink docs)
- Small code styling tweaks for HomeKit (@frenck - #48163) (homekit docs)
- Make Rflink handle set_level command for dimmable devices (@javicalle - #46499) (rflink docs)
- Mark base components’ state_attribute @final, rename others to extra_state_attributes (@emontnemery - #48161)
- ScreenLogic cleanups (@dieselrabbit - #48136) (screenlogic docs) (new-platform)
- Fix typo in homekit strings.json (@eltociear - #48176) (homekit docs)
- Preset support for MOES thermostat valves (@xonestonex - #48178) (zha docs)
- Handle switch state updates from Konnected device (@heythisisnate - #48167) (konnected docs)
- Index config entries by id (@bdraco - #48199) (config docs)
- Update homekit to improve representation of activity based remotes (@bdraco - #47261) (homekit docs)
- Make sure include_ignore=False always works with _async_current_entries (@bdraco - #48196)
- Fix Kulersky and Zerproc config unloading (@emlove - #47572) (kulersky docs) (zerproc docs)
- Improve condition trace tests (@emontnemery - #48152)
- Test that homeassistant stop and restart do not block WS (@emontnemery - #48081) (websocket_api docs)
- Trigger Plex GDM scans regularly (@jjlawren - #48041) (plex docs)
- Exclude homekit accessories created by the homekit integration from homekit_controller (@bdraco - #48201) (homekit_controller docs)
- Increase config entries test coverage (@bdraco - #48203)
- Convert august to be push instead of poll (@bdraco - #47544) (august docs)
- Ensure homekit yaml config works when there is an ignored config entry (@bdraco - #48175) (homekit docs)
- Populate trigger variable when manually triggering automation (@balloob - #48202) (automation docs)
- Bump yalexs to 1.1.5 for august (@bdraco - #48205) (august docs)
- Remove vera should_poll (@pavoni - #48209) (vera docs)
- Update aqualogic library to v2.6 (@swilson - #48119) (aqualogic docs)
- Migrate integrations a-c to extend SensorEntity (@emontnemery - #48210)
- Migrate integrations d-e to extend SensorEntity (@emontnemery - #48211)
- Bump colorlog to 4.8.0 (@frenck - #48218)
- Upgrade pre-commit to 2.11.1 (@frenck - #48219)
- Fix maxcube temperature for thermostat auto mode (@unaiur - #48047) (maxcube docs)
- Improve script tracing (@emontnemery - #48100)
- Upgrade pyupgrade to v2.11.0 (@frenck - #48220) (esphome docs) (http docs) (wunderground docs) (zha docs)
- Add identification for YAML imports (@starkillerOG - #48162) (xiaomi_miio docs)
- Add jobstate parser to Onvif integration (@MatsNl - #46589) (onvif docs)
- Fix condition extra fields for climate and humidifier (@spacegaier - #48184) (climate docs) (cover docs) (humidifier docs)
- Add an option to hide selected Hyperion effects (@dermotduffy - #45689) (hyperion docs)
- Refactor tracing: Move trace support to its own integration (@emontnemery - #48224) (automation docs) (trace docs) (new-integration)
- Migrate integrations f-h to extend SensorEntity (@emontnemery - #48212)
- Migrate integrations n-q to extend SensorEntity (@emontnemery - #48214)
- Migrate integrations t-v to extend SensorEntity (@emontnemery - #48216)
- Migrate integrations w-z to extend SensorEntity (@emontnemery - #48217)
- Migrate integrations r-s to extend SensorEntity (@emontnemery - #48215)
- Migrate integrations i-m to extend SensorEntity (@emontnemery - #48213)
- Improve Docker and Kubernetes support for KNX (@plomosits - #48065) (knx docs)
- Move SensorEntity last in the inheritance tree (@emontnemery - #48230)
- Clean up AsusWRT (@balloob - #48012) (asuswrt docs)
- Remove login details before logging stream source (@uvjustin - #45398) (stream docs)
- Bump nanoleaf to 0.1.0, add unique IDs (@dewet22 - #48135) (nanoleaf docs)
- Add Blink config migration (@fronzbot - #46671) (blink docs)
- Change nanoleaf name to configured name instead of hostname (@keis - #46407) (nanoleaf docs)
- Add august doorbells to dhcp discovery (@bdraco - #48244) (august docs)
- Add dhcp discovery support to blink (@bdraco - #48243) (blink docs)
- Upgrade pylast to 4.2.0 (@fabaff - #48245) (lastfm docs)
- Increase test coverage of deCONZ device triggers (@Kane610 - #48126) (deconz docs)
- Add tests for Netatmo (@cgtobi - #46372) (netatmo docs)
- Use contextlib.suppress where possible (@frenck - #48189)
- Fix some sensor classes (@emontnemery - #48254)
- Bump up ZHA dependencies (@Adminiuga - #48257) (zha docs)
- Update issue form to use latest changes (@frenck - #48250)
- Update pypoint to 2.1.0 (@fredrike - #48223) (point docs)
- datetime must be a string (@dgomes - #47809) (buienradar docs)
- Install requirements.txt while building dev Dockerfile (@ludeeus - #48268)
- Add proper percentage support to deCONZ fan integration (@Kane610 - #48187) (deconz docs)
- Bump plexapi to 4.5.0 (@jjlawren - #48264) (plex docs)
- Refactor tracing: Prepare for tracing of scripts (@emontnemery - #48231) (automation docs) (trace docs)
- Google assistant: disconnect user agent when not found in google (@bramkragten - #48233) (cloud docs) (google_assistant docs)
- Migrate template to register reload service on async_setup (@balloob - #48273) (template docs)
- Add tests for Netatmo sensor (@cgtobi - #46393) (netatmo docs)
- Improve Plex GDM client connections (@jjlawren - #48272) (plex docs)
- Clean up SmartTub reminders (@mdz - #48033) (smarttub docs)
- Fix Core bug report issue form (@frenck - #48279)
- Add support for tracing script execution (@emontnemery - #48276) (automation docs) (script docs) (trace docs)
- Add support for Roomba 980 discovery (@scyto - #47696) (roomba docs)
- Ignore python-typing-update for pre-commit requirements (@cdce8p - #48292)
- Bump omnilogic to 0.4.3 to fix API certificate issue (@djtimca - #48296) (omnilogic docs)
- Handle range conversions that do not start at 1 (@bdraco - #48298)
- Determine zwave_js sensor device class during initialization (@raman325 - #48304) (zwave_js docs)
- Listen on the default interface by default for zeroconf (@bdraco - #48302) (zeroconf docs) (breaking-change)
- Bump plexapi to 4.5.1 (@jjlawren - #48307) (plex docs)
- Add metrics upload by UDP to graphite (@BoresXP - #43751) (graphite docs)
- Fix missing glances temperature sensors (@TheNetAdmin - #46086) (glances docs)
- Type check KNX integration climate (@farmio - #48054) (knx docs)
- Add allowed UUIDs and ignore CEC to Google Cast options flow (@emontnemery - #47269) (cast docs) (breaking-change)
- Add Homepluscontrol integration (@chemaaa - #46783) (homepluscontrol docs) (new-integration)
- Fix zha manual flow test (@MartinHjelmare - #48317) (zha docs)
- Add econet thermostat support and use getattr for sensors (@w1ll1am23 - #45564) (econet docs) (new-integration) (new-platform)
- Fix device discovery of OAuth2 config flows (@frenck - #48326)
- Add tests for Netatmo data handler (@cgtobi - #46373) (netatmo docs)
- Bump plexwebsocket to 0.0.13 (@jjlawren - #48330) (plex docs)
- Support overriding token in notifify.event service (@papajojo - #47133) (notify_events docs)
- Fix late comment to PR adding percentage support to deCONZ fan platform (@Kane610 - #48333) (deconz docs)
- Bump python-typing-update to 0.3.2 (@cdce8p - #48303) (deconz docs) (yeelight docs)
- Update in 1 minute on unavailable Motion blinds (@starkillerOG - #47800) (motion_blinds docs)
- Address huisbaasje review comments (@frenck - #48313) (huisbaasje docs)
- Use async with in Acmeda config flow (@frenck - #48291) (acmeda docs)
- Subaru integration code quality changes (@G-Two - #48193) (subaru docs)
- Remove timedate manipulation from Neato attributes (@chemelli74 - #48150) (neato docs) (breaking-change)
- xknx 0.17.4 (@farmio - #48350) (knx docs)
- Validate device trigger schemas once (@emontnemery - #48319)
- Pre-calculate Verisure alarm states (@frenck - #48340) (verisure docs)
- Percentage and preset mode support for MQTT fan (@jbouwh - #47944) (homeassistant docs) (mqtt docs) (breaking-change)
- Validate device action schemas once (@emontnemery - #48351)
- Refactor Netatmo tests (@cgtobi - #48277) (netatmo docs)
- Bump snapcast to 2.1.2 (@D3v01dZA - #48343) (snapcast docs)
- Small speed up to adding entities (@bdraco - #48353)
- Improve august reconnect logic when service become unreachable (@bdraco - #48349) (august docs)
- Xknx unneeded expose (@mptei - #48311) (knx docs)
- Add Netatmo schedule event handling (@cgtobi - #46573) (netatmo docs)
- Extend typing on scaffold templates (@frenck - #48232)
- Type check KNX integration init and knx_entity (@farmio - #48044) (knx docs)
- Merge of nested IF-IF cases - X-Z (@frenck - #48373) (xiaomi_miio docs) (zha docs) (zwave docs) (zwave_js docs)
- Create FUNDING.yml (@balloob - #48375)
- Merge of nested IF-IF case in elkm1 test (@frenck - #48374) (elkm1 docs)
- Improve traces for nested script runs (@emontnemery - #48366) (trace docs)
- Return config entry details after creation (@emontnemery - #48316) (config docs)
- Remove HomeAssistantType alias from AdGuard integration (@frenck - #48377) (adguard docs)
- Fix script default trace (@balloob - #48390)
- Block detectable I/O in the event loop (@bdraco - #48387) (breaking-change)
- Bump httpx to 0.17.1 (@bdraco - #48388)
- Merge multiple context managers in tests (@frenck - #48146)
- Merge of nested IF-IF cases - Core (@frenck - #48364)
- Lazy load broadlink storage (@bdraco - #48391) (broadlink docs)
- Merge of nested IF-IF cases - K-N (@frenck - #48370)
- Upgrade flake8 and dependencies, enable flake8-noqa (@scop - #48393) (http docs) (seventeentrack docs)
- Merge of nested IF-IF cases - O-R (@frenck - #48371)
- Merge of nested IF-IF cases - S-W (@frenck - #48372)
- Merge of nested IF-IF cases - A-C (@frenck - #48365) (agent_dvr docs) (alarmdecoder docs) (alexa docs) (apprise docs) (asuswrt docs) (cast docs) (climacell docs)
- Merge of nested IF-IF cases - H-J (@frenck - #48368)
- Merge of nested IF-IF cases - E-G (@frenck - #48367)
- Add Maxcube unit tests (@unaiur - #47872) (maxcube docs)
- Remove HomeAssistantType alias from helpers (@frenck - #48400)
- Fix ability to ignore AdGuard hassio discovery (@frenck - #48401) (adguard docs)
- Fix entity service calls on WLED master light (@frenck - #48402) (wled docs)
- Bump yalexs to 1.1.9 (@bdraco - #48383) (august docs)
- Address late review of vesync light (@decompil3d - #48130) (vesync docs)
- Add Ambient Station PM25 indoor sensor (@conflipper - #47970) (ambient_station docs)
- Add support for selective config parameter entity discovery (@raman325 - #48336) (zwave_js docs)
- Add broadlink dhcp discovery (@bdraco - #48408) (broadlink docs)
- Add template support for remaining attributes of weather entity (@csoltenborn - #47736) (template docs)
- ZHA lock code services and events (@jcam - #47208) (zha docs)
- Update mac address in broadlink test to match mocked device (@bdraco - #48415) (broadlink docs)
- Bump ZHA quirks to 0.0.55 (@dmulcahey - #48418) (zha docs)
- Remove KNX type alias for homeassistant.core types (@farmio - #48422) (knx docs)
- Discard outdated data reported by AEMET stations (@Noltari - #48417) (aemet docs)
- Allow discovery configuration of modbus platforms (@janiversen - #46591) (modbus docs) (breaking-change)
- Simplify maxcube integration (@unaiur - #48403) (maxcube docs)
- Handle routers that convert hostnames to lowercase in dhcp (@bdraco - #48429) (dhcp docs) (roomba docs)
- Fix bug in vlc_telnet seeking (@dmcc - #48425) (vlc_telnet docs)
- Add dsmr monthly and yearly totals (@robertdelpeut - #48253) (dsmr_reader docs)
- Detect when media position is stale in vlc_telnet (@dmcc - #48434) (vlc_telnet docs)
- Fallback to filename for title in vlc_telnet (@dmcc - #48438) (vlc_telnet docs)
- Add additional data source to dhcp (@bdraco - #48430) (dhcp docs)
- Fallback to current temperature unit for zwave_js climate (@raman325 - #48347) (zwave_js docs)
- Bump HAP-python to 3.4.1 for homekit (@bdraco - #48444) (homekit docs)
- Bump aiodiscover to 1.1.2 for dhcp (@bdraco - #48445) (dhcp docs)
- Remove myself as codeowner of HomematicIP Cloud (@SukramJ - #48437) (homematicip_cloud docs)
- Address review comments from trace refactoring PRs (@emontnemery - #48288) (automation docs) (script docs) (trace docs)
- Speed up bond setup with gather (@bdraco - #48454) (bond docs)
- Bump aiodiscover to 1.2.0 in for dhcp (@bdraco - #48456) (dhcp docs)
- Fix template fan default speed count (@bdraco - #48389) (fan docs) (template docs)
- Fix broken trace tests (@emontnemery - #48458) (trace docs)
- Fix knx tests (@mptei - #48407) (knx docs)
- Log the reason a config entry failed to setup (@bdraco - #48449)
- Don’t write 0 to next modbus register (@PimDoos - #48378) (modbus docs)
- Include platform only integrations in the manifest list api (@bdraco - #48269) (device_tracker docs) (websocket_api docs)
- Do not load ignored or disabled integrations at startup (@bdraco - #48355)
- Add support for Selectors in Script service fields (@frenck - #48469) (script docs)
- Fix unmute bug in vlc_telnet (@dmcc - #48441) (vlc_telnet docs)
- Allow specifying template entities based on triggers (@balloob - #48169) (trigger docs) (new-integration)
- Cloud: Expose if google is registered in status + check on login (@bramkragten - #48260) (cloud docs)
- Command template support for MQTT fan (@jbouwh - #48413) (mqtt docs) (breaking-change)
- Add screenshot to manifest (@bramkragten - #48475) (frontend docs)
- Bump zwave-js-server-python to 0.23.0 to support zwave-js 7 (@raman325 - #48094) (zwave_js docs) (breaking-change)
- Make integration setup optional (@frenck - #48381)
- Add ‘for’ to cover device triggers (@emontnemery - #48324) (cover docs)
- Merge condition and action traces (@emontnemery - #48461) (automation docs) (script docs) (trace docs)
- Clean up icons & device classes for Toon (@frenck - #48471) (toon docs)
- Allow MQTT entities to be disabled by default (@emontnemery - #48284) (mqtt docs)
- Refactor fan device triggers to use ToggleEntity triggers (@emontnemery - #48321) (fan docs)
- Bump aiodiscover to 1.3.0 to improve performance (@bdraco - #48482) (dhcp docs)
- Create async_config_entry_first_refresh to reduce coordinator boilerplate (@bdraco - #48451)
- Clean up superfluous integration setup - part 1 (@frenck - #48476)
- Clean up superfluous integration setup - part 2 (@frenck - #48478)
- Clean up superfluous integration setup - part 3 (@frenck - #48484)
- Remove HomeAssistantType alias from entity components - Part 1 (@frenck - #48467)
- Remove HomeAssistantType alias from entity components - Part 2 (@frenck - #48468)
- Add asyncio locks to screenlogic api access points (@dieselrabbit - #48457) (screenlogic docs)
- Bump aiodiscoer to 1.3.2 for dhcp (@bdraco - #48489) (dhcp docs)
- Add analytics integration (@ludeeus - #48256) (analytics docs) (default_config docs) (hassio docs) (onboarding docs) (new-integration)
- Add image proxy to Kodi media browser (@cgtobi - #47315) (kodi docs)
- Add zwave_js.bulk_set_partial_config_parameters service (@raman325 - #48306) (zwave_js docs)
- Update pylint to 2.7.3 (@cdce8p - #48488)
- Create new websession if more than one entry in Tesla (@alandtse - #47886) (tesla docs)
- Make devolo home control more robust against connection losts (@Shutgun - #48328) (devolo_home_control docs)
- Fixed auth issue for non-2FA iCloud accounts (@nzapponi - #48455) (icloud docs)
- Add opentherm_gw option for setpoint override mode (@Martidjen - #48465) (opentherm_gw docs)
- Bump yalexs to 1.1.10 for august (@bdraco - #48494) (august docs)
- Use MAX_VOLUME constant in vlc_telnet (@dmcc - #48491) (vlc_telnet docs)
- Include platform only integrations in analytics (@bdraco - #48493) (analytics docs)
- Add zwave_js.set_value service (@raman325 - #48487) (zwave_js docs)
- Add myself as codeowner to analytics (@ludeeus - #48498) (analytics docs)
- Update pylint to 2.7.4 (@cdce8p - #48500)
- Add ‘for’ to alarm device triggers (@emontnemery - #48503) (alarm_control_panel docs)
- Simplify device trigger code (@emontnemery - #48507) (alarm_control_panel docs) (climate docs) (cover docs) (device_automation docs) (lock docs) (vacuum docs)
- Add support for capturing renewals to dhcp discovery (@bdraco - #48242) (dhcp docs)
- Add ‘for’ to vacuum device triggers (@emontnemery - #48506) (vacuum docs)
- Add ‘for’ to media_player device triggers (@emontnemery - #48505) (media_player docs)
- Add ‘for’ to lock device triggers (@emontnemery - #48504) (lock docs)
- Raise Spotify exception if no active device found (@spacegaier - #48486) (spotify docs)
- Add discovery for Tube’s Zigbee coordinators to ZHA (@dmulcahey - #48420) (zha docs)
- Fix local mypy workflow (@KapJI - #48433)
- Correct FAA Delays integration domain in manifest (@frenck - #48512) (faa_delays docs)
- Fix duplicates and unexpected failures during roomba discovery (@bdraco - #48492) (roomba docs)
- KNX passive group addresses (@farmio - #48009) (knx docs)
- Enable strict typing for zeroconf (@KapJI - #48450) (zeroconf docs)
- Add regex-based filters to logger component (@jshufro - #48439) (logger docs)
- Evaluate AirVisual interval on reboot (@jugla - #48392) (airvisual docs)
- Remove analytics from updater (@ludeeus - #48518) (updater docs) (breaking-change)
- support feedback for ZHA device reconfiguration (@dmulcahey - #48447) (zha docs)
- Fix init for first added shelly device (@mib1185 - #48411) (shelly docs)
- Search for areas used in automations and scripts (@bramkragten - #48499) (automation docs) (script docs) (search docs)
- Add target version to log about missing version (@ludeeus - #48520)
- Bump Synology DSM to 1.0.2 (@Quentame - #48528) (synology_dsm docs)
- Bump Météo-France to 1.0.2 (@Quentame - #48527) (meteo_france docs)
- Bump Freebox to 0.0.10 (@Quentame - #48526) (freebox docs)
- Bump async_upnp_client to 0.16.0 (@StevenLooman - #48521) (dlna_dmr docs) (ssdp docs) (upnp docs)
- Shield async httpx call in generic (@uvjustin - #47852) (generic docs)
- Deprecate SolarEdge YAML configuration (@frenck - #48533) (solaredge docs) (breaking-change)
- Remove if/else from modbus test cases (@janiversen - #48514) (modbus docs)
- Add color_mode support to MQTT JSON light (@emontnemery - #47993) (light docs) (mqtt docs) (breaking-change)
- Add vicare fuelcell (@nbraem - #47167) (vicare docs)
- Bump pyhaversion from 3.4.2 to 21.3.0 (@ludeeus - #48537) (version docs)
- Add missing neato error status (@vlebourl - #48508) (neato docs)
- Add Plex library count sensors (@jjlawren - #48339) (plex docs)
- Use consolidated constant for “description” (@spacegaier - #48490)
- Add id to automation triggers (@emontnemery - #48464) (homeassistant docs)
- Prevent ping integration from delaying startup (@bdraco - #43869) (ping docs) (breaking-change)
- Ensure HA script and Python script services have a name (@spacegaier - #47204)
- Improve error handling for WS API trace/get (@emontnemery - #48502) (trace docs)
- Set Plex sensor availability properly (@jjlawren - #48546) (plex docs)
- Update xknx to version 0.17.5 (@marvin-w - #48522) (knx docs)
- Avoid divide by zero errors in tplink light integration (@superm1 - #48235) (tplink docs)
- Fix update of surveillance_station data in Synology DSM (@mib1185 - #47966) (synology_dsm docs)
- Remove Hass.io terms in strings.json (@LEJOUI - #48541) (adguard docs) (almond docs) (deconz docs) (mqtt docs)
- Create homekit locks according to spec (@bdraco - #48453) (homekit docs)
- Update frontend to 20210331.0 (@bramkragten - #48552) (frontend docs)
- Improve Plex device handling (@jjlawren - #48369) (plex docs) (breaking-change)
- Add operation sensor to Shelly Gas (@chemelli74 - #48462) (shelly docs)
- Use Mapping[str, Any] instead of dict in Entity (@KapJI - #48421)
- Add Qingping Air Monitor Lite support support (@arturdobo - #48181) (xiaomi_miio docs)
- Use SOURCE_REAUTH constant for starting reauth flows (@bdraco - #48553)
- Improve automation trace tests (@emontnemery - #48542) (trace docs)
- Provide the improved service UX with deCONZ services (@Kane610 - #48382) (deconz docs)
- Fix timer.finish to cancel callback (@youknowjack0 - #48549) (timer docs) (beta fix)
- Remove analytics from default_config (@ludeeus - #48566) (default_config docs) (beta fix)
- Fix incorrect constant import in Ambient PWS (@bachya - #48574) (ambient_station docs) (beta fix)
- Don’t care about DPI entries when looking for clients to be restored from UniFi (@Kane610 - #48579) (unifi docs) (beta fix)
- Cleanup orphan devices in onewire integration (@epenet - #48581) (onewire docs) (beta fix)
- Return config entry details for 1-step config flows (@emontnemery - #48585) (config docs) (beta fix)
- Upgrade numpy to 1.20.2 (@frenck - #48597) (iqvia docs) (opencv docs) (tensorflow docs) (trend docs) (beta fix)
- Allow templatable service target to support scripts (@frenck - #48600) (beta fix)
- Fix websocket search for related (@frenck - #48603) (search docs) (beta fix)
- Clean up mobile app (@balloob - #48607) (mobile_app docs) (beta fix)
- Update frontend to 20210402.0 (@bramkragten - #48609) (frontend docs) (beta fix)
- Increase time out for http requests done in Axis integration (@Kane610 - #48610) (axis docs) (beta fix)
- Include script script_execution in script and automation traces (@emontnemery - #48576) (trace docs) (beta fix)
- Include blueprint input in automation trace (@emontnemery - #48575) (automation docs) (script docs) (trace docs) (beta fix)
- Bump aioshelly to 0.6.2 (@thecode - #48620) (shelly docs) (beta fix)
- Fix trigger template entities without a unique ID (@balloob - #48631) (template docs) (beta fix)
- Support modern config for the trigger based template entity (@balloob - #48635) (template docs) (beta fix)
- Updated frontend to 20210402.1 (@bramkragten - #48639) (frontend docs) (beta fix)
- Bump aiodiscover to 1.3.3 for dhcp (@bdraco - #48644) (dhcp docs) (beta fix)
- Only listen for zeroconf when the esphome device cannot connect (@bdraco - #48645) (esphome docs) (beta fix)
- Fix AEMET town timestamp format (@Noltari - #48647) (aemet docs) (beta fix)
- Prevent config entry retry from blocking startup (@bdraco - #48660) (beta fix)
- Fix Raspi GPIO binary_sensor produces unreliable responses (@mburget - #48170) (rpi_gpio docs) (beta fix)
- Implement Ignore list for poll control configuration on Ikea devices (@Adminiuga - #48667) (zha docs) (beta fix)
- Bump zwave_js dependency to 0.23.1 (@raman325 - #48682) (zwave_js docs) (beta fix)
- Fix verisure deadlock (@balloob - #48691) (verisure docs) (beta fix)
- Abort discovery for unsupported doorbird accessories (@bdraco - #48710) (doorbird docs) (beta fix)
- Improve warnings on undefined template errors (@emontnemery - #48713) (beta fix)
- Bump pychromecast to 9.1.2 (@emontnemery - #48714) (cast docs) (beta fix)
- Flag brightness support for MQTT RGB lights (@emontnemery - #48718) (mqtt docs) (beta fix)
- Fix infinite recursion in LazyState (@blueshiftlabs - #48719) (history docs) (beta fix)
- Allow reloading top-level template entities (@balloob - #48733) (template docs) (beta fix)
- Updated frontend to 20210406.0 (@balloob - #48734) (frontend docs) (beta fix)
- Do not activate Met.no without setting a Home coordinates (@frenck - #48741) (met docs) (beta fix)
- Generate a seperate UUID for the analytics integration (@ludeeus - #48742) (analytics docs) (beta fix)
- Rename hassio config entry title to Supervisor (@frenck - #48748) (hassio docs) (beta fix)
- Use microsecond precision for datetime values on MariaDB/MySQL (@agners - #48749) (recorder docs) (beta fix)
- Add custom integrations to analytics (@ludeeus - #48753) (analytics docs) (beta fix) (new-integration)
- Solve cast delaying startup when discovered devices are slow to setup (@bdraco - #48755) (cast docs) (beta fix)
- Met.no - only update data if coordinates changed (@Danielhiversen - #48756) (met docs) (beta fix)
- Remove login details before logging SQL errors (@emontnemery - #48758) (sql docs) (beta fix)
- Fix whitespace error in cast (@emontnemery - #48763) (cast docs) (beta fix)
- Update frontend to 20210407.0 (@bramkragten - #48765) (frontend docs) (beta fix)
- Reject nan, inf from generic_thermostat sensor (@emontnemery - #48771) (beta fix)
- Update frontend to 20210407.1 (@bramkragten - #48778) (frontend docs) (beta fix)