2021.8.0: Feel the energy ⚡️

Happy August! ☀️

Home Assistant Core 2021.8 is here, and this is the release I have been looking
forward to for months! There is so much exciting new stuff in here: I don’t
know where to start.

The most exciting part is the new main focus that is added to Home Assistant:

Home Energy management.

A massive deal for a lot of people, no matter if you are doing it for
environmental reasons or simply to save a buck or two (or both 😬). Knowing
that moving forward, it will be an additional focus, I think, is amazing.

But besides the Energy management stuff, I’m also excited about the side effects
of it. A lot of things created for Energy, are also re-usable for other things!
That is how we roll, right?

We get long-term statistics, new super nice and fast graphs, and a new
layout option for Lovelace. All the building blocks are available for
customization and re-use. I am looking forward to seeing how they are going
to be put to use.

Anyways, enjoy the release! And don’t forget the drop by
the release party on YouTube
later today (9:00 PM CET).

../Frenck

Matthias de Baat joins Nabu Casa

Let start by announcing that Matthias de Baat
is joining the team at Nabu Casa to work on
Home Assistant as a UX-designer.

UX stands for “User Experience”, which is Matthias’ area of expertise and what
he will be working on improving. His goal is to make Home Assistant easier to
use and accessible for everyone. He will be setting up design processes and
tooling, doing user research and making designs.

If you are interested in joining the Home Assistant user research group, you
can show your interest by filling in this Google Form
that Matthias has prepared.

Welcome Matthias! Excited to have you on board!

But wait! There is more!

Otto Winter, the founder of ESPHome, will
be joining Nabu Casa during his summer break as well! Welcome Otto! This summer
is going to be fantastic!

Home Energy Management!

This feature is a big thing; A start of something new. Home Assistant is going
to provide you insight into your energy usage.

But this needs more than just a paragraph in the release notes, this needs
its own blog! So, at this point, stop reading the release notes (momentarily)
and read the blog Paulus has written about this:

Read the blog about the new Home Energy Management features of Home Assistant

Long term statistics

Storing sensor data for a more extended period using the recorder, can make your
database grow pretty fast (especially if you have sensors that update a lot!).

In the previous releases, we’ve worked towards improving this situation and
laid down the groundwork for tracking statistics in the database;
We are making it widely available this release!

Integrations can now hint Home Assistant about the type of value the sensor
represents, allowing us to process and store that data in a more efficient way.
Every hour, we calculate things like mean, min/max values, or the difference
created that hour and store just that result in our long-term statistics.

These statistics is what partly powers the new Energy dashboard, however,
they can be used for anything else: Introducing the Lovelace statistics graph card.

Screenshot of the new Lovelace statistics graph card
Screenshot of the new Lovelace statistics graph card.

This card can make beautiful graphs, allowing you to make graphs for any of
your stored long-term statistical data. It can render as a line or bar chart.
Bars are suited for metered entities that have a summed value. Lines are
perfect to display the mean, min and max of the entity.

The support for long-term statistics is limited at this moment. We are
expecting to open it up for more measurements in the upcoming releases while
more integrations are adding support for these new measurement types.

Sidebar view

The default layout you see in Lovelace (which we generally all use), is called
the “masonry” layout. We also have a panel view/layout that stretches a single
card to the whole view. This release brings in a brand new view layout: Sidebar.

This new sidebar view has two columns, a wide one and a small one on the right.
It is perfect for displaying larger cards like graphs (like that nice new
statistics graph card), or maps. While having some additional smaller cards
with information on the side.

The new Energy dashboard uses this new view layout, but of course, made
available for use in other Lovelace dashboards as well.

Screenshot of new Lovelace sidebar view layout
Screenshot of new Lovelace sidebar view layout.

Gauge card now has needle mode

A nice little addition to the Lovelace gauge card: Needle mode!

Instead of showing a value and filling it partially, in needle mode, it will
show the full gauge but point out the value with a needle. And, if you add
severity to your gauge card configuration, it will always be shown.

Screenshot of the Gauge card in needle mode with severity configured
Screenshot of the Gauge card in needle mode with severity configured.

These settings are available straight from the Lovelace UI editor; More
information and examples can be found in the Gauge card documentation.

Currency core setting

To support the display of financial values, we’ve added a new setting to Home
Assistant that allows you to define the currency Home Assistant should use
in cases it relies on your input.

You can find this new currency setting in the general settings of Home Assistant.

This setting is used for the cost calculation of the new energy features.

Siren

The last release, we introduced the select entity,
this release, we introduce the siren entity! 🚨

Thanks to @raman325 for adding this noisemaker to the family! He also
implemented the first integration to add support for Sirens: the Z-Wave JS
integration. So, if you have a Z-Wave enabled Siren, you can now control it.

Locking, Unlocking and Jammed

Locks in Home Assistant can be a little bit smarter as of today, thanks
to @bdraco. Besides the locked & unlocked states, support for locking,
unlocking and jammed has been added.

Support for these new states has been added to the August, HomeKit Controller
and template integrations. Additionally, HomeKit, Alexa and Google Assistant
have been made compatible and aware for these states as well.

Scripts/Automations/Templates

Some new features landed for script, automations and templates this release.

This

When an automation or script is triggered to run, a new variable is available:
this. This variable contains the state object
of the automation or script running and allows you to access information about
the automation directly. Thanks, @r-t-s!

Device template functions

If you like to write YAML automations manually, are using templates, and require
device IDs or device information, than you know those IDs are hard to find and
the device information is not available at all.

@raman325 added some new template functions that can be helpful when working
with devices.

  • device_entities(device_id) returns a list of entities associated
    with a given device ID (can also be used as a filter).
  • device_attr(device_or_entity_id, attr_name) returns the value of attr_name
    for the given device ID or entity ID.
  • is_device_attr(device_or_entity_id, attr_name, attr_value) returns whether
    the value of attr_name for the given device ID or entity ID matches attr_value.
  • device_id(entity_id) returns the device ID for a given entity ID
    (can also be used as a filter).

Thanks for these powerful new features!

Other noteworthy changes

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

  • Thanks to @firstof9, Z-Wave JS now has support for transitions with lights!
  • More Z-Wave JS improvements by @raman325. He added support for device
    triggers and conditions. Thanks!
  • You can now assign a unique ID to light, cover and media player groups,
    allowing you to manage them from the Home Assistant frontend and assign
    them to an area!
  • The motionEye integration now has support for motion detection, thanks @dermotduffy
  • ZHA can now work with Formaldehyde and VOC level sensors, thanks @Adminiuga
  • @posixx added a new feature for integration that provide alarm panels;
    those integrations can now update to support Vacation mode!
  • Rainbird now has a service to change the rain delay, thanks @Kr0llx!
  • If you are using BMW Connected Drive, @EddyK69 added a lot of trip sensors.
  • Sonos snapshots now behave, are more robust and work as expected. Additionally,
    support for controlling crossfade has been added, thanks @jjlawren!
  • WLED now supports controlling the new playlists features introduced in WLED 0.13.
  • @farmio added support for KNX lights that use HS-colors, thanks!
  • And @joncar added support for transitions to LiteJet lights, awesome!
  • If you have MFA on your Tesla account, thanks to @BreakingBread0,
    the integration now supports that.
  • When using the Netatmo integration, you can now control the schedule it
    should be using with a select entity. Thanks, @cgtobi!
  • @janiversen added more data types to modus and added array write to
    the turn on/off capabilities of Modbus switches, fans and lights.
  • Advantage Air now has temperature sensors for each zone, thanks @Bre77!
  • Gree Climate now has switches to support more modes, thanks to @cmroche!
  • You can now remove holidays from the workday sensor by name instead of
    date. This is useful for holidays they don’t have a fixed date each year.
    Thanks @matthewgottlieb!
  • HomeKit will not auto-recreated TVs when sources are out of sync. One thinsg
    less to worry about, thanks @bdraco
  • @jbouwh has drastically reworked and extended the Humidifier support for
    the Xiaomi Miio integration. Amazing job!

New Integrations

We welcome the following new integrations this release:

New Platforms

The following integration got support for a new platform:

Integrations now available to set up from the UI

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

Release 2021.8.1 – August 4

  • Fix Panasonic Viera TV going unavailable when turned off (@Hyralex – #53788) (panasonic_viera docs)
  • Add temporary fix to modbus to solve upstream problem (@janiversen – #53857) (modbus docs)
  • Fix attr_unit_of_measurement in update of apcupsd entity (@mib1185 – #53947) (apcupsd docs)
  • Fix coordinator not defined in yale_smart_alarm (@gjohansson-ST – #53973) (yale_smart_alarm docs)
  • Fix divider for Fritz sensors (@chemelli74 – #53980) (fritz docs)
  • Fix empty sonos_group entity attribute on startup (@jjlawren – #53985) (sonos docs)
  • Update frontend to 20210804.0 (@bramkragten – #53997) (frontend docs)

Release 2021.8.2 – August 5

  • Bump pylitterbot to 2021.8.0 (@natekspencer – #54000) (litterrobot docs)
  • Add missing device class to SAJ energy sensors (@frenck – #54048) (saj docs)
  • Handle empty software version when setting up HomeKit (@bdraco – #54068) (homekit docs)
  • Bump up ZHA dependencies (@puddly – #54079) (zha docs)
  • Packages to support config platforms (@balloob – #54085) (automation docs) (script docs) (template docs)
  • Fix Shelly last_reset (@thecode – #54101) (shelly docs)
  • Two fixes (@chemelli74 – #54102) (fritz docs)
  • Increase time before scene and script HomeKit entities are reset (@bdraco – #54105) (homekit docs)
  • Bump zeroconf to 0.33.3 (@bdraco – #54108) (zeroconf docs)

Release 2021.8.3 – August 6

  • Gracefully handle additional GSM errors (@ocalvo – #54114) (sms docs)
  • Handle software version being None when setting up HomeKit accessories (@nzapponi – #54130) (homekit docs)
  • Fix sensor PLATFORM_SCHEMA for ebox and enphase_envoy (@mib1185 – #54142) (enphase_envoy docs)
  • Fetch interface index from network integration instead of socket.if_nametoindex in zeroconf (@bdraco – #54152) (zeroconf docs) (network docs)
  • Bump zeroconf to 0.33.4 to ensure zeroconf can startup when ipv6 is disabled (@bdraco – #54165) (zeroconf docs)

Release 2021.8.4 – August 8

  • Add missing motor_speed sensor for Xiaomi Miio humidifier CA1 and CB1 (@bieniu – #54202)
  • Fix update entity prior to adding (@Trinnik – #54015) (aladdin_connect docs)
  • Fix androidtv media_image_hash (@tkdrob – #54188) (androidtv docs)
  • Solve missing automatic update of struct configuration in modbus (@janiversen – #54193) (modbus docs)
  • Update const.py (@Mk4242 – #54195) (ebusd docs)
  • Add parameter to delay sending of requests in modbus (@janiversen – #54203) (modbus docs)
  • Bugfix: Bring back unique IDs for ADS covers after #52488 (@carstenschroeder – #54212) (ads docs)
  • Don’t block motionEye setup on NoURLAvailableError (@dermotduffy – #54225) (motioneye docs)
  • Pin google-cloud-pubsub to an older version (@allenporter – #54239)

Release 2021.8.5 – August 9

  • Fix camera state and attributes for agent_dvr (@tkdrob – #54049) (agent_dvr docs)
  • Force an attempted subscribe on speaker reboot (@geuben – #54100) (sonos docs)
  • Fix login to BMW services for rest_of_world and north_america (@rikroe – #54261) (bmw_connected_drive docs)
  • Always set interfaces explicitly when IPv6 is present (@bdraco – #54268) (zeroconf docs)
  • Fix atom integration for long term statistics (@ZeGuigui – #54285) (atome docs)
  • Use correct state attribute for alarmdecoder binary sensor (@tkdrob – #54286) (alarmdecoder docs)
  • Bump soco to 0.23.3 (@jjlawren – #54288) (sonos docs)
  • Fix ondilo_ico name attribute (@cdce8p – #54290) (ondilo_ico docs)
  • Bump zeroconf to 0.34.3 (@bdraco – #54294) (zeroconf docs)
  • Ensure hunterdouglas_powerview model type is a string (@bdraco – #54299) (hunterdouglas_powerview docs)
  • Remove zwave_js transition on individual color channels (@firstof9 – #54303) (zwave_js docs)
  • Restores unit_of_measurement (@dgomes – #54335) (integration docs)
  • Fix xiaomi air fresh fan preset modes (@jbouwh – #54342) (xiaomi_miio docs)
  • Update frontend to 20210809.0 (@bramkragten – #54350) (frontend docs)
  • Fix Xiaomi-miio turn fan on with speed, percentage or preset (@jbouwh – #54353) (xiaomi_miio docs)
  • Fix aqualogic state attribute update (@dailow – #54354) (aqualogic docs)
  • Cast SimpliSafe version number as a string in device info (@bachya – #54356) (simplisafe docs)
  • Do not process forwarded for headers for cloud requests (@balloob – #54364) (http docs) (cloud docs)
  • Revert “Use entity class attributes for Bluesound (#53033)” (@balloob – #54365) (bluesound docs)
  • Update Climacell rate limit (@raman325 – #54373) (climacell docs)
  • Fix race condition in Advantage Air (@Bre77#53439) (advantage_air docs)

Release 2021.8.6 – August 10

  • Handle CO2Signal response value being None (@balloob – #54377) (co2signal docs)
  • Fix Canary sensor state (@ludeeus – #54380) (canary docs)
  • Re-add Tibber notify service name (@Danielhiversen – #54401) (tibber docs)
  • Bump hass_nabucasa to 0.46.0 (@balloob – #54421) (cloud docs)
  • Bump pyopenuv to 2.1.0 (@bachya – #54436) (openuv docs)

Release 2021.8.7 – August 15

  • Use pycarwings2 2.11 (@filcole – #54424) (nissan_leaf docs)
  • Fix Huawei LTE entity state updating (@scop – #54447) (huawei_lte docs)
  • Strip attributes whitespace in universal media_player (@0xFelix – #54451) (universal docs)
  • Bump notifications-android-tv to 0.1.3 (@tkdrob – #54462) (nfandroidtv docs)
  • Updates to bump MyQ to 3.1.2 (@ehendrix23 – #54488) (myq docs)
  • Add missing PRESSURE_BAR conversion (@Danielhiversen – #54497)
  • Treat temporary errors as warnings for Tesla (@alandtse – #54515) (tesla docs)
  • Fix attributes not showing after using entity class attributes (@gerard33 – #54558) (bmw_connected_drive docs)
  • Upgrade qnapstats library to 0.4.0 (@colinodell – #54571) (qnap docs)
  • Fix bug in ambiclimate (@Danielhiversen – #54579) (ambiclimate docs)
  • Fix Tibber last reset (@Danielhiversen – #54582) (tibber docs)
  • Adax, update requirements (@Danielhiversen – #54587) (adax docs)
  • Clamp color temperature to supported range in ESPHome light (@oxan – #54595) (esphome docs)
  • Bump zeroconf to 0.35.0 (@bdraco – #54604) (zeroconf docs)
  • Bump py-synologydsm-api to 1.0.4 (@mib1185 – #54610) (synology_dsm docs)
  • Guard partial upgrade (@balloob – #54617) (http docs)
  • Solve switch/verify register type convert problem in modbus (@janiversen – #54645) (modbus docs)
  • Send color_brightness to ESPHome devices on 1.20 (pre-color_mode) (@jesserockz#54670) (esphome docs)

Release 2021.8.8 – August 18

  • Fix TPLink emeter reset not updating (@TomBrien – #54848) (tplink docs)
  • Fix tplink doing I/O in event loop and optimize (@rytilahti – #54570) (tplink docs)
  • Fix ‘in’ comparisons vesync light (@cdce8p – #54614) (vesync docs)
  • Update PyMetEireann to 2021.8.0 (@DylanGore – #54693) (met_eireann docs)
  • Fix BMW remote services in rest_of_world & north_america (@rikroe – #54726) (bmw_connected_drive docs)
  • Fix HomeKit cover creation with tilt position, open/close, no set position (@bdraco#54727) (homekit 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.

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Abode

The previously deprecated YAML configuration of the Abode integration has been removed.

Abode is now configured via the UI, any existing YAML configuration has been imported
in previous releases and can now be safely removed from your YAML configuration files.

(@frenck#52357) (abode docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

AirVisual

The Air Quality platform has been marked as deprecated, therefore the
air_quality entity has been removed and replaced with sensor entities.

If you used the air_quality entity in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@bachya#52349) (airvisual docs)


States for the “Pollutant Level” and “Main Pollutant” entities have changed;
automations that depended on the old states will need to be updated.

Pollutant Level:

  • Good -> good
  • Moderate -> moderate
  • Unhealthy -> unhealthy
  • Unhealthy for sensitive groups -> unhealthy_sensitive
  • Very unhealthy -> very_unhealthy
  • Hazardous -> hazardous

Pollutant Label:

  • Carbon Monoxide -> co
  • Nitrogen Dioxide -> n2
  • Ozone -> o3
  • PM10 -> p1
  • PM2.5 -> p2
  • Sulfur Dioxide -> s2

(@bachya#53133) (airvisual docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Ambient Weather Station

The previously deprecated YAML configuration of the Ambient Weather Station integration has been removed.

Ambient Weather Station is now configured via the UI, any existing YAML configuration has been imported
in previous releases and can now be safely removed from your YAML configuration files.

(@bachya#52459) (ambient_station docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

AVM FRITZ!Box Net Monitor / AVM FRITZ!Box Tools

In order to optimize device load and avoid exhausting available connections,
fritz_netmonitor has been merged into fritz.

Please remove your YAML existing configuration and configure the new integration.

(@chemelli74#52264) (fritz docs)


The profile switches introduced in the previous release have been removed as
they where incompatible with the Home Assistant architectural design rules.

Instead, you can now block every device connected individually.

(@AaronDavidSchneider#52721) (fritz docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

AVM FRITZ!SmartHome

The power and energy attributes from switch entities have been removed and
replaced by sensors.

If you relied on these attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@mib1185#52562) (fritzbox docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Bosch BME280

The YAML configuration for this integration has changed. Instead of a sensor
config with platform section, an integration configuration section under the
integration domain key should be used.

Before:

sensor:
  - platform: bme280
    name: "Stary_Oskol"

After:

bme280:
  - name: "Stary_Oskol"

(@Kuzj#48775) (bme280 docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Broadlink

The power and energy attributes from switch entities have been removed and
replaced by sensors.

If you relied on these attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@Danielhiversen#53342) (broadlink docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Buienradar

The previously deprecated YAML configuration of the Buienradar integration has been removed.

Buienradar is now configured via the UI, any existing YAML configuration has been imported
in previous releases and can now be safely removed from your YAML configuration files.

(@frenck#52939) (buienradar docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

CO2 Signal

The CO2 Signal integration migrated to configuration via the UI. Configuring
CO2 Signal via YAML configuration has been deprecated and will be removed in a
future Home Assistant release.

Your existing YAML configuration is automatically imported on upgrade to this release;
and thus can be safely removed from your YAML configuration after upgrading.

(@Danielhiversen#53193) (co2signal docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Demo

Demo switch entity no longer reports current_power_w and today_energy_kwh attributes.

(@thecode#52424) (demo docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

devolo Home Control

The consumptions attributes from the switch entities have been removed and
replaced by sensors.

If you relied on these attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@Shutgun#53335) (devolo_home_control docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

GIOŚ

The Air Quality platform has been marked as deprecated, therefore the
air_quality entity has been removed and replaced with sensor entities.

If you used the air_quality entity in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@bieniu#52295) (gios docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Google Assistant

Home Assistant will no longer expose the legacy fan speeds to Google Assistant.

If you use fans with with Google Assistant, you’ll need to resync your device.
Ask you Google device to Sync my device or trigger an update via
the google_assistant.request_sync service.

(@elupus#53105) (google_assistant docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

HomeKit

Previously the on/off switches provided to HomeKit by scripts, would enable or
disable a script. This likely was not what is expected as
Hey Siri turn on "script" would appear to do nothing.

Pressing a script switch in HomeKit now runs the script instead.

(@bdraco#53106) (homekit docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

HomeKit Controller

HomeKit Controller was using the wrong ID to track some sensors.
The following are affected:

  • Koogeek or Eve power sensors (added in Jan 2021)
  • The temperature sensor added alongside homekit climate devices (added in Jul 2021, the climate entity itself is not affected)

If you have one of these you may need to remove a stale entity registry entry
and you may need to fix the names of these entities as customizations may be lost.

(@Jc2k#53848) (homekit_controller docs)


If you have a power sensor for a Eve Energy or Koogeek P1EU/SW2, the units for
that sensor has changed from watts to W to properly follow
Home Assistant standards.

(@Jc2k#53877) (homekit_controller docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Honeywell Total Connect Comfort (US)

The Honeywell integration migrated to configuration via the UI. Configuring
Honeywell via YAML configuration has been deprecated and will be removed in a
future Home Assistant release.

Your existing YAML configuration is automatically imported on upgrade to this release;
and thus can be safely removed from your YAML configuration after upgrading.

(@rdfurman#50731) (honeywell docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Huawei LTE

Routers currently in unauthenticated mode need to be provided credentials for
duration of one successful startup in order to retrieve a unique id from the API.
Unauthenticated mode can then be enabled for subsequent starts in integration options.

(@scop#49878) (huawei_lte docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Itho Daalderop Spider

The power and energy attributes from switch entities have been removed and
replaced by sensors.

If you relied on these attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@peternijssen#53397) (spider docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Jewish Calendar

The Jewish Calendar integration returned a datetime format that wasn’t properly
formatted according to ISO standards. This has been adjusted.

If you rely on manually parsing of dates that are returned from this integration,
you might need to adjust your templates to incorporate this change.

(@frenck#52722) (jewish_calendar docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Lyft

The Lyft integration has been deprecated and is pending removal in
Home Assistant Core 2021.10.0. It is considered impossible to obtain API keys
to be able to use this integration.

(@frenck#53005) (lyft docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Mill

The consumption_today and consumption_total from the climate entity have
been removed and replace by sensors.

If you relied on these attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@Danielhiversen#52311) (mill docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Modbus

All entities are set to unavailable during loading of modbus integration and
remain so until data is received. Entities with scan_interval = 0
(entities without polling) are always available, to allow service calls.

The old configuration style with setting scan_interval: 9999 will cause the
entity to be unavailable for 9999 seconds.

(@janiversen#53155) (modbus docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

MySensors

The power and energy attributes from switch entities have been removed.

If you relied on these switch attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

This measurement (S_POWER, V_WATT) will still be reported as previously
by the power sensor entity.

(@MartinHjelmare#53566) (mysensors docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Prometheus

This includes a few changes to the names of the exported Prometheus metrics,
which now better align with Prometheus naming guidelines:

  • Default value for the namespace configuration variable is now homeassistant,
    and all metric names now have a default homeassistant_ prefix.
  • Some metrics have been renamed:
    • light_state renamed to light_brightness_percent.
    • temperature_c renamed to climate_target_temperature_celsius.
    • current_temperature_c renamed to climate_current_temperature_celsius.
    • Sensor metrics now have a sensor_ name prefix.
    • Temperature sensor metrics now have a _celsius unit suffix (as opposed to just _c).

Note, that users that don’t currently explicitly set the namespace variable
will see names changed for all exported metrics. If keeping existing metric
names is important to you, you can adjust your Home Assistant and Prometheus
configuration as described below.

To keep metrics exported without the homeassistant_ prefix, explicitly set an
empty namespace in Home Assistant configuration:

prometheus:
  namespace: ""

To revert the other metric name changes, you can use metric_relabel_configs
in your Prometheus configuration file to rename the metrics after scraping.
This set of relabeling rules
is a good starting point, but please note that if you set a non-empty namespace
in Home Assistant you will need to adjust these rules accordingly.

(@knyar#50156) (prometheus docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Rituals Perfume Genie

The previously deprecated fan speed and room size attributes have been removed.
They have now have got their own entities.

(@milanmeu#53611) (rituals_perfume_genie docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Synology DSM

The previously deprecated YAML configuration of the Synology DSM integration has been removed.

Synology DSM is now configured via the UI, any existing YAML configuration has been imported
in previous releases and can now be safely removed from your YAML configuration files.

(@mib1185#53197) (synology_dsm docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Tibber

The previously deprecated YAML configuration of the Tibber integration has been removed.

Tibber is now configured via the UI, any existing YAML configuration has been imported
in previous releases and can now be safely removed from your YAML configuration files.

(@Danielhiversen#53235) (tibber docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

TP-Link Kasa Smart

The power and energy attributes from switch entities have been removed and
replaced by sensors. This applies to all five extra attributes about energy
(current_power_w, total_energy_kwh, today_energy_kwh, voltage, current_a).

If you relied on these attributes in your automations, scripts or Lovelace
dashboards, you’ll need to update your configuration to match this change.

(@mib1185#53596) (tplink docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

VeSync

The previously deprecated YAML configuration of the VeSync integration has been removed.

VeSync is now configured via the UI, any existing YAML configuration has been imported
in previous releases and can now be safely removed from your YAML configuration files.

(@frenck#52358) (vesync docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Viessmann ViCare

Viessmann introduced a new API to control their devices. The original
(inofficial API) was shut down which rendered the Home Assistant integration
useless. This breaking change restores the integrations functionality

This involves adding a new client_id parameter. It must be set with an API
key from the Viessmann developer portal.

Please register and create your private API key.
Follow these steps to create your API key:

  1. Register and login in the Viessmann Developer Portal.
  2. In the menu navigate to API Keys.
  3. Create a new OAuth client using following data:
Name: PyViCare
Google reCAPTCHA: Disabled
Redirect URIs: vicare://oauth-callback/everest
  1. Copy the Client ID to the configuration, e.g. client_id="XXXXXXXXXXXXXX"
vicare:
  username: VICARE_EMAIL
  password: VICARE_PASSWORD
  client_id: VICARE_CLIENT_ID

Please not that not all previous properties are available in the new API.
Missing properties were removed and might be added later if they are
available again.

(@oischinger#53281) (vicare docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

WLED

The wled.preset service has been deprecated. In the previous Home Assistant
release, support for an select entity that provides access to presets
has been added, use that entity in your automations and scripts instead.

(@frenck#53383) (wled docs)


The playlist attribute from the WLED light entities has been removed and
replaced by a playlist select entity instead of the attribute.

If you relied on the attribute in your automation or scripts, you need to
adjust those to use the new entity instead.

(@frenck#53381) (wled docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Xiaomi Miio

Existing Xiaomi Mi automations using the platform specific services for
humidifiers will have a breaking change. You need to change their automation
to use new services. Existing fan entities will be automatically replaced with
new humidity entities.

The entity name is migrated from the fan entity name. The fan entity_id will
change because the platform will change.

For the related entities the old fan entity name will be prepended to the new
entities.

Example:

Entity with entity_id “fan.my_device” and name “My humidifier” will migrate
to an entity with entity_id “humidifier.my_humidifier” and name “My humidifier”.

A sensor for humidity will have a name like “My humidifier Humidity”.

(@jbouwh#52366) (xiaomi_miio docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Yale Smart Living

The CYale Smart Living integration migrated to configuration via the UI. Configuring
Yale Smart Living via YAML configuration has been deprecated and will be removed in a
future Home Assistant release.

Your existing YAML configuration is automatically imported on upgrade to this release;
and thus can be safely removed from your YAML configuration after upgrading.

(@gjohansson-ST#50850) (yale_smart_alarm docs)

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Z-Wave JS

Z-Wave JS entities will now be in an unavailable state when the parent node
is considered dead by Z-Wave JS. This may impact existing automations because
Home Assistant will block service calls to unavailable entities.

A node can potentially be revived by sending a ping to it, therefore you can
use the new node status sensor (disabled by default) to track node status and
use the zwave_js.ping_node service to try to revive the node.

The node status sensor will always be available even when the node is dead.

(@raman325#48017) (zwave_js docs)

Farewell to the following

The following integrations are no longer available as of this release:

  • Weather Underground has been unavailable and in a non-working state and
    has therefore been removed. (@frenck#52999)
  • Garmin Connect has been removed. Due to API changes, it stopped working
    and cannot function without violating Home Assistant design rules. Garmin
    will not allow open source projects to their official APIs.
    (@cyberjunky#52808) (garmin_connect docs)

All changes

function showDetails(el) {
const content = el.parentElement.querySelector(“.details-block-content”);
const up = el.querySelector(“svg#up”);
const down = el.querySelector(“svg#down”);
up.style.display = up.style.display === “none” ? “block” : “none”;
down.style.display = down.style.display === “none” ? “block” : “none”;
content.hidden = !content.hidden;
}

Click to see all changes!

  • Bump version to 2021.8.0dev0 (@frenck – #52346)
  • Use attrs instead of property for Jewish Calendar (@yuvalabou – #52333) (jewish_calendar docs)
  • Remove deprecated YAML configuration from Abode (@frenck – #52357) (abode docs) (breaking-change)
  • Remove deprecated YAML configuration from VeSync (@frenck – #52358) (vesync docs) (breaking-change)
  • Remove redundant property definitions in Ambient PWS (@bachya – #52350) (ambient_station docs)
  • Remove redundant property definitions in IQVIA (@bachya – #52378) (iqvia docs)
  • Remove redundant property definitions in Flu Near You (@bachya – #52377)
  • Add motion detection support to motionEye (@dermotduffy – #49665) (motioneye docs)
  • Remove redundant property definitions in Notion (@bachya – #52367) (notion docs)
  • Bump pyfritzhome to 6.2.0 (@flabbamann – #52345) (fritzbox docs)
  • Demo: Explicitly return None when no extra state attribute set (@frenck – #52390) (demo docs)
  • Add support for Formaldehyde and VOC level sensors (@Adminiuga – #52232) (zha docs)
  • Allow combining value_template and position_template for template cover (@emontnemery – #52383) (template docs)
  • Vacation Mode on Alarm Panels (@posixx – #45980) (alarm_control_panel docs)
  • Use attributes instead of properties for uptime (@yuvalabou – #52398) (uptime docs)
  • Remove redundant property definitions in Guardian (@bachya – #52361) (guardian docs)
  • Remove redundant property definitions in OpenUV (@bachya – #52379) (openuv docs)
  • Clean up netatmo sensor data processing (@cgtobi – #52403) (netatmo docs)
  • Add rainbird set_rain_delay service (@Kr0llx – #52369) (rainbird docs)
  • Remove boilerplate code in favour of attributes in Netatmo integration (@cgtobi – #52395) (netatmo docs)
  • Enable basic type checking for Tasmota (@emontnemery – #52435) (tasmota docs)
  • Add sensor platform to goalzero (@tkdrob – #49835) (goalzero docs) (new-platform)
  • Demo: remove deprecated switch entity properties (@thecode – #52424) (demo docs) (breaking-change)
  • Remove redundant property definitions in ReCollect Waste (@bachya – #52368) (recollect_waste docs)
  • Add static typing to devolo_home_control (@Shutgun – #52396) (devolo_home_control docs)
  • Replace custom listener with helper in ReCollect Waste (@bachya – #52445) (recollect_waste docs)
  • Merge fritzbox_netmonitor integration into fritz (@chemelli74#52264) (fritz docs) (fritzbox_netmonitor docs) (breaking-change)
  • Improve typing in Sony Bravia TV integration (@bieniu – #52438) (braviatv docs)
  • Enable basic type checking for climate (@emontnemery – #52470) (climate docs)
  • Enable basic type checking for gogogate2 (@emontnemery – #52467) (gogogate2 docs)
  • Enable basic type checking for trace (@emontnemery – #52468)
  • Replace custom listener with helper in SimpliSafe (@bachya – #52457) (simplisafe docs)
  • Remove redundant property definitions in SimpliSafe (@bachya – #52458) (simplisafe docs)
  • Remove redundant property definitions in RainMachine (@bachya – #52456) (rainmachine docs)
  • Remove redundant property definitions in Tile (@bachya – #52448) (tile docs)
  • Enable basic type checking for script (@emontnemery – #52476)
  • Deprecate YAML config for Ambient PWs (2021.9.0 removal) (@bachya – #52459) (ambient_station docs) (breaking-change)
  • Mark entities for dead zwave_js nodes as unavailable (@raman325 – #48017) (zwave_js docs) (breaking-change)
  • Update devolo-home-control-api (@Shutgun – #52497) (devolo_home_control docs)
  • Add basic typing to ezviz camera platform (@RenierM26 – #52492) (ezviz docs)
  • Use entity class attributes for airnow (@tkdrob – #52502) (airnow docs)
  • Migrate GIOS air_quality platform to sensor (@bieniu – #52295) (gios docs) (breaking-change) (new-platform)
  • Migrate AirVisual air_quality platform to sensor platform (@bachya – #52349) (airvisual docs) (breaking-change)
  • Use entity class attributes for ambiclimate (@tkdrob – #52521) (ambiclimate docs)
  • Use entity class attributes for aemet (@tkdrob – #52499) (aemet docs)
  • Use entity class attributes for alpha_vantage (@tkdrob – #52520) (alpha_vantage docs)
  • Use entity class attributes for alert (@tkdrob – #52518) (alert docs)
  • Add type checking and entity attributes for Fast.com (@yuvalabou – #52524) (fastdotcom docs)
  • Enable basic typing for roku (@ctalkington – #52478) (roku docs)
  • Use entity class attributes for abode (@tkdrob – #52427) (abode docs)
  • Enable basic type checking for mqtt (@emontnemery – #52463) (mqtt docs)
  • Use entity class attributes for aftership (@tkdrob – #52500) (aftership docs)
  • Fix CI failing due to Shell Command exception (@thecode – #52483) (shell_command docs)
  • Rename goalzero sensor (@tkdrob – #52452) (goalzero docs)
  • Enable basic type checking for Google cast (@emontnemery – #52434) (cast docs)
  • Enable basic type checking for the homeassistant component (@emontnemery – #52464) (homeassistant docs)
  • Use entity class attributes for accuweather (@tkdrob – #52431) (accuweather docs)
  • Add type annotations and shorten sensor names on ezviz sensor platforms (@RenierM26 – #52475) (ezviz docs)
  • Fully type Tag component (@yuvalabou – #52540) (tag docs)
  • Use entity class attributes for ads (@tkdrob – #52488) (ads docs)
  • Use dataclasses in netatmo data handler (@cgtobi – #52537) (netatmo docs)
  • Disable flaky shell_command test (@thecode – #52564) (shell_command docs)
  • Use entity class attributes for aladdin_connect (@tkdrob – #52516) (aladdin_connect docs)
  • Add type hints to LCN (@alengwenus – #52509) (lcn docs)
  • Bump gios to version 1.0.2 (@bieniu – #52576) (gios docs)
  • Wheels v2021.07.0 (@pvizeli – #52580)
  • Minor improvements of util.percentage typing (@emontnemery – #52581)
  • Improve config entry title for GIOS integration (@bieniu – #52583) (gios docs)
  • Minor improvements of MQTT typing (@emontnemery – #52578) (mqtt docs) (mysensors docs)
  • Add type annotations to init and coordinator. Minor cleanups. (@RenierM26 – #52506) (ezviz docs)
  • Enable strict typing for Fritz (@chemelli74 – #50668) (fritz docs)
  • Clean up alarmdecoder (@tkdrob – #52517) (alarmdecoder docs)
  • Bump hatasmota to 0.2.20 (@emontnemery – #52591) (tasmota docs)
  • Add home-assistant/core as codeowner for the template integration (@emontnemery – #52592) (template docs)
  • Use HA location name as name in GIOS integration (@bieniu – #52585) (gios docs)
  • Upgrade numpy to 1.21.0 (@frenck – #52586) (compensation docs) (iqvia docs) (opencv docs) (tensorflow docs) (trend docs)
  • Enable basic type checking for fan (@emontnemery – #52471) (fan docs)
  • Remove unnecessary async_setup method for Guardian (@bachya – #52597) (guardian docs)
  • Add type annotations to Ambient PWS (@bachya – #52596) (ambient_station docs)
  • Python 3.9.6 / Base image 2021.07.0 (@pvizeli – #52605)
  • Bump opencv to 4.5.2.54 (@pvizeli – #52630) (opencv docs)
  • Fix Waze Travel Time tests (@thecode – #52663) (waze_travel_time docs)
  • Refactor decompression timestamp validation logic in stream component (@allenporter – #52462) (stream docs)
  • Add missing type annotations to Guardian (@bachya – #52598) (guardian docs)
  • Add missing type annotations to Notion (@bachya – #52599) (notion docs)
  • Add missing type annotations to ReCollect Waste (@bachya – #52600) (recollect_waste docs)
  • Use entity class attributes for anel_pwrctrl (@tkdrob – #52594) (anel_pwrctrl docs)
  • Use entity class attributes for avion (@tkdrob – #52696) (avion docs)
  • Use entity class attributes for aurora_abb_power (@tkdrob – #52692) (aurora_abb_powerone docs)
  • Use class properties in netatmo (@cgtobi – #52705) (netatmo docs)
  • Use entity class attributes for Aten pe (@tkdrob – #52687) (aten_pe docs)
  • Hint for str type instead of explicitly casting to str (@alengwenus – #52712) (lcn docs)
  • Use entity class attributes for anthemav (@tkdrob – #52602) (anthemav docs)
  • Use entity class attributes for apcupsd (@tkdrob – #52662) (apcupsd docs)
  • Upgrade Fronius dependency to 0.5.3 (@nielstron – #52737) (fronius docs)
  • Use entity class attributes for aurora (@tkdrob – #52690) (aurora docs)
  • Add device info to Freedompro (@stefano055415 – #52715) (freedompro docs)
  • Add transition support to zwave_js lights (@firstof9 – #52160) (zwave_js docs)
  • Fix pylint issue with stream component c-extension (@cdce8p – #52847) (stream docs)
  • Rename preview task to run (@balloob – #52857)
  • Use entity class attributes for bbb_gpio (@tkdrob – #52837) (bbb_gpio docs)
  • Use entity class attributes for bayesian (@tkdrob – #52831) (bayesian docs)
  • Use entity class attributes for Beewi smartclim (@tkdrob – #52839) (beewi_smartclim docs)
  • Use entity class attributes for azure_devops (@tkdrob – #52698) (azure_devops docs)
  • Use entity class attributes for arlo (@tkdrob – #52681) (arlo docs)
  • Add AllTrips sensors for BMW Connected Drive (@EddyK69 – #50420) (bmw_connected_drive docs)
  • Add siren platform (@raman325 – #48309) (demo docs) (siren docs) (new-integration)
  • Add device classes to homematicip_cloud cover (@LeszekSwirski – #52793) (homematicip_cloud docs)
  • Initial support for zwave_js device conditions (@raman325 – #52003) (zwave_js docs)
  • Implement stable unique id for Huawei LTE, requires credentials on setup (@scop – #49878) (huawei_lte docs) (breaking-change)
  • Add more data_types to modbus (@janiversen – #52423) (modbus docs)
  • Fix Soundbar exclusion from SamsungTV (@chemelli74 – #51023) (samsungtv docs)
  • Use entity class attributes for Blinksticklight (@tkdrob – #52892) (blinksticklight docs)
  • Use entity class attributes for Bh1750 (@tkdrob – #52886) (bh1750 docs)
  • Import Protocol from typing (@cdce8p – #52848)
  • Use entity class attributes for Bizkaibus (@tkdrob – #52888) (bizkaibus docs)
  • Bump dessant/lock-threads from 2.0.3 to 2.1.1 (@dependabot – #52899)
  • Use entity class attributes for Bitcoin (@tkdrob – #52887) (bitcoin docs)
  • Improve testing of option flow in Coinbase (@TomBrien – #52870) (coinbase docs)
  • Add some type hints for webhook component (@cgtobi – #52895) (webhook docs)
  • Improve typing of Tasmota (2/3) (@emontnemery – #52747) (tasmota docs)
  • Use entity class attributes for apple_tv (@tkdrob – #52664) (apple_tv docs)
  • Set device_class on temperature sensors R-Z (@emontnemery – #52920)
  • Improve typing of Tasmota (3/3) (@emontnemery – #52748) (tasmota docs)
  • Upgrade sentry-sdk to 1.3.0 (@frenck – #52926) (sentry docs)
  • Correct Wrong “raise” in modbus validators. (@janiversen#52924) (modbus docs)
  • Improve typing of Tasmota (1/3) (@emontnemery – #52746) (mqtt docs) (tasmota docs)
  • Add array write to turn_on/off in modbus switch/fan/light (@janiversen – #52582) (modbus docs)
  • Set device_class on temperature sensors F-K (@emontnemery – #52918) (foobot docs) (fritzbox docs) (glances docs) (hddtemp docs) (ihc docs) (juicenet docs) (kaiterra docs)
  • Use properties instead of raw data in the rituals integration (@milanmeu – #52587) (rituals_perfume_genie docs)
  • Set device_class on temperature sensors L-Q (@emontnemery – #52919) (lacrosse docs) (luftdaten docs) (mfi docs) (mysensors docs) (notion docs) (openevse docs) (qnap docs)
  • Poll Nissan servers for battery updates (@bwduncan – #44826) (nissan_leaf docs)
  • Set device_class on temperature sensors A-E (@emontnemery – #49524)
  • Use entity class attributes for bbox (@tkdrob – #52838) (bbox docs)
  • Use entity class attributes for Blockchain (@tkdrob – #52894) (blockchain docs)
  • Use entity class attributes for Blebox (@tkdrob – #52890) (blebox docs)
  • ESPHome enable static type checking (@OttoWinter – #52348) (esphome docs)
  • Use entity class attributes for Plex (@jjlawren – #52617) (plex docs)
  • String formatting cleanups (@scop – #52937)
  • Use entity class attributes for aqualogic (@tkdrob – #52668) (aqualogic docs)
  • Add schedule selector for Netatmo (@cgtobi – #52909) (netatmo docs)
  • Fix siren turn on parameter filtering (@raman325 – #52947) (siren docs)
  • Handle FailedCommand exceptions in zwave_js WS API (@raman325 – #52461) (zwave_js docs)
  • Change behavior of Z-Wave JS services (@raman325 – #52941) (zwave_js docs)
  • Minor test coverage improvement of mfi and zwave sensors (@emontnemery – #52935) (mfi docs) (zwave docs)
  • Add switch support to Freedompro (@stefano055415 – #52727) (freedompro docs) (new-integration) (new-platform)
  • Expose async_get_source_ip in the network integration (@bdraco – #52901) (network docs)
  • Switch to using entry.async_on_remove (@raman325 – #52952) (zwave_js docs)
  • Return empty when listing statistic_ids for unsupported statistic (@emontnemery – #52954) (history docs) (recorder docs)
  • Fix modbus climate precision configuration variable (@Kirchoff – #52651) (modbus docs)
  • Validate tone is valid when processing siren.turn_on service call (@raman325 – #52953) (demo docs) (siren docs)
  • Improve docstring for async_get_device_class_lookup (@emontnemery – #52921)
  • Add generic hygrostat integration (@Shulyaka – #36759) (generic_hygrostat docs) (new-integration)
  • Add sensor support to Freedompro (@stefano055415 – #52726) (freedompro docs) (new-integration) (new-platform)
  • Set device_class on additional temperature sensors (@emontnemery – #52960) (dht docs) (ecobee docs) (htu21d docs) (mhz19 docs) (mysensors docs) (temper docs) (thermoworks_smoke docs) (waterfurnace docs)
  • Use entity class attributes for automation (@tkdrob – #52694) (automation docs)
  • Add binary_sensor support to Freedompro (@stefano055415 – #52717) (freedompro docs) (new-integration) (new-platform)
  • Fix flume converagerc (@tkdrob – #52975)
  • Set device class for climacell temperature sensors (@emontnemery – #52965) (climacell docs)
  • Additional fixes for siren platform (@raman325 – #52971) (siren docs)
  • Use entity class attributes for aquostv (@tkdrob – #52670) (aquostv docs)
  • Use entity class attributes for Blackbird (@tkdrob – #52889) (blackbird docs)
  • Add missing device classes for climacell sensors (@raman325 – #52979) (climacell docs)
  • Enable basic type checking for recorder (@emontnemery – #52440) (recorder docs)
  • Use entity class attributes for august (@tkdrob – #52744) (august docs)
  • Make zwave_js value updated event logic more performant (@raman325 – #52997) (zwave_js docs)
  • Remove flume for allowed ignore coverage violations (@frenck – #53001)
  • Remove defunct Weather Underground integration (@frenck – #52999) (wunderground docs) (breaking-change)
  • Update homekit to use network integration (@bdraco – #52946) (homekit docs) (network docs)
  • Include future statistics in history/list_statistic_ids (@emontnemery – #52942) (history docs) (recorder docs) (sensor docs)
  • Deprecate Lyft integration (@frenck – #53005) (lyft docs) (breaking-change)
  • Update statistics meta data on entity_id change (@emontnemery – #52755) (recorder docs)
  • Add support for Z-Wave JS siren (@raman325 – #52948) (zwave_js docs)
  • Add missing test coverage for sirens (@raman325 – #53014) (siren docs)
  • Add zwave_js device triggers (@raman325 – #51968) (zwave_js docs)
  • Pylint 2.9.3 (@Danielhiversen – #52972)
  • Use entity class attributes for Co2signal (@Danielhiversen – #53032) (co2signal docs)
  • Support user-defined base currency for Coinbase exchange rate sensors (@TomBrien – #52879) (coinbase docs)
  • Remove deprecated YAML configuration from Buienradar (@frenck – #52939) (buienradar docs) (breaking-change)
  • Bump actions/stale from 3.0.19 to 4 (@dependabot – #53042)
  • Clean up freedompro (@tkdrob – #52992) (freedompro docs)
  • Add lock support Freedompro (@stefano055415 – #52725) (freedompro docs) (new-integration) (new-platform)
  • Use entity class attributes for bme680 (@tkdrob – #53037) (bme680 docs)
  • Use entity class attributes for arcam_fmj (@tkdrob – #52675) (arcam_fmj docs)
  • Add MQTT humidifier platform integration (@jbouwh – #52828) (humidifier docs) (mqtt docs) (new-integration)
  • Use entity class attributes for Bmp280 (@tkdrob – #53036) (bmp280 docs)
  • Handle missing peername (@ludeeus – #53052) (hassio docs)
  • Use entity class attributes for agent_dvr (@tkdrob – #52501) (agent_dvr docs)
  • Use entity class attributes for Bloomsky (@tkdrob – #53030) (bloomsky docs)
  • Use entity class attributes for androidtv (@tkdrob – #52531) (androidtv docs)
  • Generate const files for config flow scaffolds (@balloob – #53064)
  • Fix google test coverage (@tkdrob – #53060)
  • Use Utility Meter configured name as friendly name (@rklomp – #53051) (utility_meter docs)
  • Rewrite mocking in devolo Home Control tests (@Shutgun – #53011) (devolo_home_control docs)
  • Update name from “generic” to “generic camera” (@hmmbob – #53080) (generic docs)
  • Add cover support to Freedompro (@stefano055415 – #52723) (freedompro docs) (new-integration) (new-platform)
  • Revert “Fix google test coverage (#53060)” (@tkdrob – #53085)
  • Replace fritz profile switches by per device parental control switches (@AaronDavidSchneider – #52721) (fritz docs) (breaking-change)
  • Add fan support to Freedompro (@stefano055415 – #52724) (freedompro docs) (new-integration) (new-platform)
  • Add On/Off as target values for zwave_js cover stop action (@p4p3r – #52881) (zwave_js docs)
  • Update Plugwise Config Flow (@bouwew – #47563) (plugwise docs)
  • Fix units for Fritz network sensors (@chemelli74 – #53026) (fritz docs)
  • Use entity class attributes for Bond (@tkdrob – #53055) (bond docs)
  • Log source of discovery in Sonos (@jjlawren – #53101) (sonos docs)
  • Replace local Barrier CC constants with library enums (@kpine – #53109) (zwave_js docs)
  • Bump library version for Advantage Air (@Bre77 – #52813) (advantage_air docs)
  • Add more Gree switches (@cmroche – #49629) (gree docs)
  • Add new unit types for better type checking (@cdce8p – #53124) (climate docs) (devolo_home_control docs) (esphome docs) (fritzbox docs) (lcn docs) (mysensors docs) (zwave_js docs)
  • Improve error message when HomeKit does not support an entity (@bdraco – #53129) (homekit docs)
  • Bump greeclimate to 0.11.8 (@cmroche – #53148) (gree docs)
  • Fix home_connect test coverage (@tkdrob – #53086)
  • Fix home plus control coverage (@tkdrob – #53087)
  • Use entity class attributes for bosch_shc (@tkdrob – #53057) (bosch_shc docs)
  • Add support for tilt only covers to HomeKit (@bdraco – #53130) (homekit docs)
  • Use entity class attributes for arwn (@tkdrob – #52683) (arwn docs)
  • Use entity class attributes for Blink (@tkdrob – #52891) (blink docs)
  • Use entity class attributes for blinkt (@tkdrob – #52893) (blinkt docs)
  • Update pylutron-caseta to 0.11.0 (@defunctzombie – #53160) (lutron_caseta docs)
  • Fix hisense_aehw4a1 test exclusion (@tkdrob – #53084)
  • Add _attr_state_class (@Bre77 – #52815) (advantage_air docs)
  • Show the name of the domain in HomeKit when selecting to include (@bdraco – #53169) (homekit docs)
  • Please mypy. (@janiversen#53142) (alarmdecoder docs)
  • Bump zeroconf to 0.33.0 (@bdraco – #53174) (zeroconf docs)
  • Upgrade pyupgrade to 2.21.2, apply its changes (@scop – #52987)
  • Bump google-nest-sdm to 0.3.0 (@allenporter – #53172) (nest docs)
  • Add CO2 and efficiency sensors to Vallox (@viiru- – #48923) (vallox docs)
  • Run pyupgrade on homekit config_flow (@bdraco – #53180) (homekit docs)
  • Cleanup redundant coveragerc entries (@tkdrob – #53171)
  • Execute scripts from HomeKit (@bdraco – #53106) (homekit docs) (breaking-change)
  • Bump zeroconf to 0.33.1 (@bdraco – #53179) (zeroconf docs)
  • Activate mypy for eafm (@janiversen – #53184)
  • Correct typing in control4 and activate mypy (@janiversen – #53156) (control4 docs)
  • Add Switcher config flow discovery support (@thecode – #52316) (switcher_kis docs)
  • Add sound pressure unit constants (dB + dBa) (@cdce8p – #53159) (awair docs) (demo docs) (isy994 docs) (mysensors docs) (netatmo docs) (point docs)
  • Add pylint CodeStyle extension (@cdce8p – #53147)
  • Bugfix current temperature in gree climate (@cmroche – #53149) (gree docs)
  • Correct typing in azure_devops and activate mypy (@janiversen – #53152) (azure_devops docs)
  • Use entity class attributes for avea (@tkdrob – #52695) (avea docs)
  • Activate mypy in aurora (@janiversen – #53150) (aurora docs)
  • Modify AirVisual states to be translatable (@bachya#53133) (airvisual docs) (breaking-change)
  • Use entity class attributes for Citybikes (@tkdrob – #53167) (citybikes docs)
  • Upgrade black to 21.7b0 (@frenck – #53192)
  • Remove I/O in Plex tests (@jjlawren – #53196) (plex docs)
  • Upgrade numpy to 1.21.1 (@frenck – #53194) (compensation docs) (iqvia docs) (opencv docs) (tensorflow docs) (trend docs)
  • Upgrade holidays to 0.11.2 (@frenck – #53191) (workday docs)
  • Correct typing in bsblan and activate mypy (@janiversen – #53153) (bsblan docs)
  • Remove yaml support from Synology DSM (@mib1185 – #53197) (synology_dsm docs) (breaking-change)
  • Use entity class attributes for bme280 (@tkdrob – #53035) (bme280 docs)
  • Use entity class attributes for buienradar (@tkdrob – #53166) (buienradar docs)
  • Add honeywell config flow (@rdfurman – #50731) (honeywell docs) (breaking-change)
  • Fix issues after pylint update (@cdce8p – #53205) (xiaomi_miio docs)
  • Switch to dataclass from dictionary for climacell sensor definitions (@raman325 – #53168) (climacell docs)
  • Co2signal configflow (@Danielhiversen – #53193) (co2signal docs) (breaking-change)
  • Refactor KNX tests (@farmio – #53183) (knx docs)
  • Small log addition for samsungtv (@chemelli74 – #53206) (samsungtv docs)
  • Remove duplicate functions in modbus climate/sensor. (@janiversen#53141) (modbus docs)
  • Upgrade modbus to quality level “silver”. (@janiversen#53186) (modbus docs)
  • mypy cleanup for homeassistant.components.nest (@allenporter – #53214) (nest docs)
  • Increase interval to stop Connection reset by peer (@aav7fl – #53202) (mutesync docs)
  • Mark ZHA Light methods as a callbacks (@Adminiuga – #53170) (zha docs)
  • Bump codecov/codecov-action from 1.5.2 to 2.0.1 (@dependabot – #53216)
  • Correct typing and activate mypy. (@janiversen#53217) (huisbaasje docs)
  • Add support for options in zwave_js.set_value service (@raman325 – #53212) (zwave_js docs)
  • Use entity class attributes for acer_projector (@tkdrob – #52432) (acer_projector docs)
  • Update python-typing-update to v0.3.5 (@cdce8p – #53223)
  • Use entity class attributes for Brottsplatskartan (@tkdrob – #53163) (brottsplatskartan docs)
  • Tibber, accumulated reward (@Danielhiversen – #53195) (tibber docs)
  • Review comments on earlier merge. (@janiversen#53221) (azure_devops docs) (insteon docs)
  • Add unique ID support to light, cover and media player groups (@frenck – #53225) (group docs)
  • Revert new unit types (@cdce8p – #53226)
  • Use entity class attributes for Brunt (@tkdrob – #53164) (brunt docs)
  • Add new electrical unit constants (mV + mA) (@cdce8p – #53158)
  • Correct typing in Insteon and activate mypy (@janiversen – #53222) (insteon docs)
  • Address style issues in nest typing (@allenporter – #53236) (nest docs)
  • Address late review of Co2 signal (@Danielhiversen – #53232) (co2signal docs)
  • Tibber use dataclass (@Danielhiversen – #53233) (tibber docs)
  • Update lock entity to support locking, unlocking, jammed (@bdraco – #51455) (lock docs)
  • Add typing in dynalite and activate mypy (@janiversen – #53238) (dynalite docs)
  • Add friendly name to Fritz profile switches (@chemelli74 – #53190) (fritz docs)
  • Add last reset and state class to rainforest eagle (@balloob – #52951) (rainforest_eagle docs)
  • Address late review of Ambiclimate, code clean up (@Danielhiversen – #53231) (ambiclimate docs)
  • Fix typing for climacell dataclass (@raman325 – #53240) (climacell docs)
  • Rename and reorganize electric unit constants (@cdce8p – #53243) (breaking-change)
  • Tibber, remove yaml support (@Danielhiversen – #53235) (tibber docs) (breaking-change)
  • Use unit constants (@cdce8p – #53244) (fritz docs) (powerwall docs)
  • Melcloud use NamedTuple (@Danielhiversen – #53234) (melcloud docs)
  • Correct set_temperature in modbus climate (@janiversen – #52923) (modbus docs)
  • Cleanup regroup handling in Sonos (@jjlawren – #53241) (sonos docs)
  • Fix alert infinite loop on repeat interval of 0 (@PeteRager – #52628) (alert docs)
  • Update requirement of homematicip_cloud component to v1.0.1 (@web-dc – #51407) (homematicip_cloud docs)
  • Fix modbus setting string as temperature in climate platform (@frenck – #53249) (modbus docs)
  • Add extra state attributes to goalzero (@tkdrob – #52932) (goalzero docs)
  • Update BlinkStick to 1.2.0 (@jtitley – #52244) (blinksticklight docs)
  • Type _attr_extra_state_attributes as a MutableMapping (@bachya – #52616)
  • Advantage Air add zone temperature sensors (@Bre77 – #51941) (advantage_air docs)
  • Avoid supplemental discovery of ignored upnp entry (@StevenLooman – #53250) (upnp docs)
  • Bump pylitterbot to 2021.7.2 (@natekspencer – #53254) (litterrobot docs)
  • Ensure Ambient PWS is strictly typed (@bachya – #53251)
  • Correct typing in edl21 and activate mypy. (@janiversen#53188) (edl21 docs)
  • Update alexa lock to support locking, unlocking, jammed (@bdraco – #52841) (alexa docs)
  • Recreate HomeKit accessories when calling the reset_accessory service (@bdraco – #53199) (homekit docs)
  • Auto recreate HomeKit TVs when the sources are out of sync (@bdraco – #53208) (homekit docs)
  • Bump httpx to 0.18.2 (@bdraco – #53257)
  • Update august to support locking, unlocking, jammed (@bdraco – #52814) (august docs)
  • Update google assistant locks to support locking, unlocking, jammed (@bdraco – #52820) (google_assistant docs)
  • Update template lock to support locking, unlocking, jammed (@bdraco – #52817) (template docs)
  • Update homekit controller lock to support locking, unlocking, jammed (@bdraco – #52821) (homekit_controller docs)
  • Update homekit lock to support locking, unlocking, jammed (@bdraco – #52819) (homekit docs)
  • Drop support for fan speeds and support reverse (@elupus – #53105) (google_assistant docs) (breaking-change)
  • Make additional input for zwave_js device triggers optional (@raman325 – #53134) (zwave_js docs)
  • Convert Mill consumption attributes to sensors (@Danielhiversen – #52311) (mill docs) (breaking-change) (new-platform)
  • Set modbus entity to non-available unless scan_interval=0 (@janiversen – #53155) (modbus docs) (breaking-change)
  • Calculate count automatically in modbus platforms (@janiversen – #53116) (modbus docs)
  • Netatmo, use nameclass (@Danielhiversen – #53247) (netatmo docs)
  • Code quality improvements for goalzero (@tkdrob – #53260) (goalzero docs)
  • Fix lint on dev (@balloob – #53265) (mill docs)
  • Tibber, use nameclass (@Danielhiversen – #53242) (tibber docs)
  • Fix MQTT to allow setting an unknown Select state (@frenck – #53227) (mqtt docs)
  • Allow for alternative external Growatt servers (@muppet3000 – #53102) (growatt_server docs)
  • Adax heaters (@Danielhiversen – #50998) (adax docs) (new-integration)
  • Use entity class attributes for arduino (@tkdrob – #52677) (arduino docs)
  • Use entity class attributes for atag (@tkdrob – #52686) (atag docs)
  • Add config flow to nfandroidtv (@tkdrob – #51280) (nfandroidtv docs)
  • Use entity class attributes for airvisual (@tkdrob – #52503) (airvisual docs)
  • Use entity class attributes for Bmw connected drive (@tkdrob – #53054) (bmw_connected_drive docs)
  • Use entity class attributes for arest (@tkdrob – #52678) (arest docs)
  • Use entity class attributes for Broadlink (@tkdrob – #53058) (broadlink docs)
  • Add reauth flow to Synology DSM (@mib1185 – #53204) (synology_dsm docs)
  • Improve typing in Shelly integration (@bieniu – #52544) (shelly docs)
  • Fix incorrect unit (@cdce8p – #53274) (fritz docs)
  • Fix similar network names for Fritz (@chemelli74 – #53278) (fritz docs)
  • Use entity class attributes for Bsblan (@tkdrob – #53165) (bsblan docs)
  • Convert skybell to use NamedTuple (@janiversen – #53269) (skybell docs)
  • Convert ebox to use NamedTuple (@janiversen – #53272) (ebox docs)
  • Add new unit constants (@cdce8p – #53258) (ambient_station docs) (arwn docs) (huawei_lte docs)
  • Refactor goalzero (@tkdrob – #53282) (goalzero docs)
  • Flipr integration (@cnico – #46582) (flipr docs) (new-integration)
  • Add missing type annotations to Airvisual (@bachya – #52615) (airvisual docs)
  • Add refresh after turning switch on or off and type annotations to ezviz (@RenierM26 – #52469) (ezviz docs)
  • Upgrade PyNaCl to 1.4.0 (@frenck – #53287) (mobile_app docs) (owntracks docs)
  • Use None instead of STATE_UNKNOWN in template lock (@bdraco – #53286) (template docs)
  • Add type annotations for Netatmo (@cgtobi – #52811) (netatmo docs)
  • Add WS API to access solar forecast data (@balloob – #53264) (forecast_solar docs)
  • Test KNX switch (@farmio – #53289) (knx docs)
  • Migrate forecast solar to v2 (@balloob – #53259) (forecast_solar docs)
  • Avoid dataclass incompat with mock spec (@balloob – #53298) (forecast_solar docs)
  • Use NamedTuple – nws (@cdce8p – #53293) (nws docs)
  • Use NamedTuple – metoffice (@cdce8p – #53294) (metoffice docs)
  • Use NamedTuple – glances (@cdce8p – #53297) (glances docs)
  • Use NamedTuple – ondilo_ico (@cdce8p – #53296) (ondilo_ico docs)
  • Use NamedTuple – epsonworkforce (@cdce8p – #53295) (epsonworkforce docs)
  • Ensure Guardian is strictly typed (@bachya – #53253) (guardian docs)
  • Bump zwave-js-server-python to 0.28.0 (@raman325 – #53302) (zwave_js docs)
  • Block title in strings.json unless internal or allowed (@balloob – #53304)
  • Add support for updating the ISY ip address from discovery (@bdraco – #53290) (isy994 docs)
  • Use entity class attributes for Bluesound (@tkdrob – #53033) (bluesound docs)
  • Disable speeds for first gen Xiaomi_miio air purifiers (@jbouwh – #52772) (xiaomi_miio docs)
  • Use NamedTuple – brother (@cdce8p – #53330) (brother docs)
  • Speedtestdotnet code cleanup and type hints (@engrbm87 – #52533) (speedtestdotnet docs)
  • Use NamedTuple – rova (@cdce8p – #53292) (rova docs)
  • Add a homekit.unpair service to forcefully remove pairings (@bdraco – #53303) (homekit docs)
  • Remove energy attributes from switch platform in devolo Home Control (@Shutgun – #53335) (devolo_home_control docs) (breaking-change)
  • Switch wirelesstag to use cloud push (@sergeymaysak – #50984) (wirelesstag docs)
  • Add Automate Pulse Hub v2 support (@sillyfrog – #39501) (automate docs) (new-integration)
  • Use entity class attributes for caldav (@tkdrob – #53332) (caldav docs)
  • Use NamedTuple – rainbird (@cdce8p – #53329) (rainbird docs)
  • Upgrade wled to 0.7.3 (@frenck – #53340) (wled docs)
  • Fritzbox enable temp sensor (@mib1185 – #52558) (fritzbox docs)
  • Add state class and last reset to consumption sensor in devolo Home Control (@Shutgun – #53337) (devolo_home_control docs)
  • Fix for issue #53031 (@MrHarcombe – #53343) (metoffice docs)
  • Making Pytest default for VS code (@chemelli74 – #53203)
  • Handle more Sonos snapshot restore scenarios (@jjlawren – #53277) (sonos docs) (breaking-change)
  • Bump aionotion to 3.0.2 (@bachya – #53354) (notion docs)
  • Create APIs for Insteon panel (@teharris1 – #49785) (insteon docs) (new-integration)
  • Replace util.get_local_ip in favor of components.network.async_get_source_ip() – part 1 (@chemelli74 – #52980) (breaking-change)
  • Do not automatically add title to strings.json (@balloob – #53350)
  • Update to PyVicare 1.0 (@oischinger – #53281) (vicare docs) (breaking-change)
  • Use entity class attributes for canary (@tkdrob – #53333) (canary docs)
  • Store JSON in database in compact format (@frenck – #53364) (recorder docs)
  • Bump HAP-python to 3.5.2 (@bdraco – #53362) (homekit docs)
  • Move Sonos to upstream SoCo (@amelchio – #53351) (sonos docs)
  • Use entity class attributes for Cert expiry (@tkdrob – #53363) (cert_expiry docs)
  • Add motionEye switches (@dermotduffy – #52491) (motioneye docs) (new-platform)
  • Move Fritzbox power, energy and temperature switch attributes to sensors (@mib1185 – #52562) (fritzbox docs) (breaking-change)
  • Upgrade wled to 0.8.0 (@frenck – #53376) (wled docs)
  • Send initial status in zwave_js WS API cmds to subscribe to updates (@raman325 – #53386) (zwave_js docs)
  • Add new input to zwave_js.multicast_set_value service (@raman325 – #53369) (zwave_js docs)
  • Support group events for AC switches and binary sensors. Fixes #53065. (@bnordli#53384) (rfxtrx docs)
  • Upgrade debugpy to 1.4.0 (@frenck – #53284) (debugpy docs)
  • Add support for power data from Koogeek SW2 via homekit_controller (@Jc2k – #53378) (homekit_controller docs)
  • Enforce strict typing for Notion (@bachya – #53355) (notion docs)
  • Convert CO2Signal to data update coordinator and add fossil fuel percentage (@balloob – #53370) (co2signal docs)
  • Use class attributes in devolo Home Control (@Shutgun – #53360) (devolo_home_control docs)
  • Handle homekit accessories where the pairing flag is wrong (@Jc2k – #53385) (homekit_controller docs)
  • Use entity class attributes for asuswrt (@tkdrob – #52685) (asuswrt docs)
  • Fix motionEye switch refresh bug (@dermotduffy – #53413) (motioneye docs)
  • Add missing string interpolation (@samueltardieu – #53422) (zha docs)
  • Add transition to LiteJet (@joncar – #47657)
  • Use entity class attributes for advantage_air (@tkdrob – #52498) (advantage_air docs)
  • Test KNX services (@farmio – #53367) (knx docs)
  • Ensure PyPI packages can still be installed on high latency connections (@bdraco – #53365)
  • Update Plugwise config_flow once more (@bouwew – #53423) (plugwise docs)
  • Bump to py-synologydsm-api 1.0.3 (@mib1185 – #53402) (synology_dsm docs)
  • Enforce strict typing for OpenUV (@bachya – #53409) (openuv docs)
  • Test KNX select (@farmio – #53371) (knx docs)
  • Upgrade open-garage to 0.1.5 (@davidjb – #53412) (opengarage docs)
  • Add support for Velux light devices (@bramstroker – #49338) (velux docs) (new-platform)
  • Ensure HomeKit accessories are started again after reset (@bdraco – #53372) (homekit docs)
  • Add yale_smart_alarm config flow and coordinator (@gjohansson-ST – #50850) (yale_smart_alarm docs) (breaking-change)
  • Bump yalesmartalarmclient to 0.3.4 (@gjohansson-ST – #53431) (yale_smart_alarm docs)
  • Add myself to webOS TV codeowners (@thecode – #53428) (webostv docs)
  • Use entity class attributes for climacell (@tkdrob – #53444) (climacell docs)
  • Fix System Bridge unique key for filesystem sensors (@timmo001 – #53446) (system_bridge docs)
  • Address late review of Adax (@Danielhiversen – #53456) (adax docs)
  • Fix wan/device uptime and add state_class to counters for Fritz (@chemelli74 – #52574) (fritz docs)
  • Pass clientsession. (@dermotduffy#53455) (motioneye docs)
  • Bump aioambient to 1.2.4 (@timmo001 – #53467) (ambient_station docs)
  • Bugfix package 0.3.4 (@gjohansson-ST – #53470) (yale_smart_alarm docs)
  • Codereview fixes. (@dermotduffy#53452) (motioneye docs)
  • Feature/google calendar read only support (@BottlecapDave – #52790) (google docs)
  • Late review comment in edl21 (@janiversen – #53464) (edl21 docs)
  • Bump up ZHA dependencies (@Adminiuga – #53472) (zha docs)
  • Fix flakey august pubnub test (@bdraco – #53474) (august docs)
  • Reduce repetitive noise in Sonos debug logs (@jjlawren – #53352) (sonos docs)
  • Bump codecov/codecov-action from 2.0.1 to 2.0.2 (@dependabot – #53487)
  • Allow zeroconf name change if there is another Home Assistant running on the local network (@bdraco – #53476) (zeroconf docs)
  • Deprecate wled.preset service (@frenck – #53383) (wled docs) (breaking-change)
  • Add WLED playlist support (@frenck – #53381) (wled docs) (breaking-change)
  • Add state class measurement to sensors where suitable for Synology DSM (@mib1185 – #53468) (synology_dsm docs)
  • Update pyupgrade to v2.23.0 (@cdce8p – #53495)
  • Reduce min scan interval to 10s for InfluxDB (@broadcasttechie – #53276) (influxdb docs)
  • Address late review of homekit_controller (@Jc2k – #53492) (homekit_controller docs)
  • Update pylint to 2.9.5 (@cdce8p – #53496)
  • Add MAC to SamsungTV when missing (@chemelli74 – #53479) (samsungtv docs)
  • Increase pool max size for urllib3 in Fritz integration (@chemelli74 – #53461) (fritz docs)
  • Broadlink, remove attr_current_power_w and add sensor (@Danielhiversen – #53342) (broadlink docs) (breaking-change)
  • Support controlling Flowerbud spray level via homekit_controller (@Jc2k – #53493) (homekit_controller docs)
  • Support energy/power sensors in the WeMo component (@esev – #53419) (wemo docs) (new-platform)
  • Add zwave_js WS API commands to get statistics (@raman325 – #53393) (zwave_js docs)
  • Add energy integration (@bramkragten – #52001) (default_config docs) (energy docs) (history docs) (websocket_api docs) (new-integration)
  • Mark energy integration as internal (@frenck – #53513) (energy docs)
  • Add country code to co2signal state attributes (@balloob – #53512) (co2signal docs)
  • Bump motioneye-client version to v0.3.11 (@dermotduffy – #53504) (motioneye docs)
  • Musiccast grouping fixes (@micha91 – #52339) (yamaha_musiccast docs)
  • Rename Prometheus metrics to conform with naming guidelines (@knyar – #50156) (prometheus docs) (breaking-change)
  • Change integration modbus to use _attr variables (@janiversen – #53511) (modbus docs)
  • Use entity class attributes for cloud (@tkdrob – #53445) (cloud docs)
  • Add crossfade control support to Sonos (@jjlawren – #53228) (sonos docs)
  • Add SensorEntityDescription class (@frenck – #53357) (ambee docs) (sensor docs)
  • Make sure that vocolinc flowerbud humidity sensor is exposed (via homekit_controller) (@Jc2k – #53518) (homekit_controller docs)
  • xknx 0.18.9 (@farmio – #53519) (knx docs)
  • Fix typo in codeowners (@oxan – #53520) (coronavirus docs) (energy docs)
  • Update frontend to 20210726.0 (@bramkragten – #53522) (frontend docs)
  • Add description classes to entity components (@frenck – #53521)
  • Address late review comments on Netatmo (@cgtobi – #53524) (netatmo docs)
  • Fix Rituals Perfume Genie sensors icons (@milanmeu – #53517) (rituals_perfume_genie docs)
  • Upgrade pyrituals to 0.0.6 (@milanmeu – #53527) (rituals_perfume_genie docs)
  • Adjust typing of _attr_extra_state_attributes (@frenck – #53529) (airvisual docs) (guardian docs) (netatmo docs) (openuv docs) (sia docs)
  • Increase static type coverage for nest integration (@allenporter – #53475) (nest docs)
  • Use EntityDescription – nws (@cdce8p – #53523) (nws docs)
  • Add MFA Capability to Tesla Integration (@BreakingBread0 – #53245) (tesla docs)
  • Ensure Jewish Calendar returns an iso formatted timestamp (@frenck – #52722) (jewish_calendar docs) (breaking-change)
  • Clean wemo sensor attributes (@esev – #53532) (wemo docs)
  • Update nexia to 0.9.11 (@mdz – #53534) (nexia docs)
  • Enforce strict typing for Flu Near You (@bachya – #53407) (flunearyou docs)
  • Enforce strict typing for RainMachine (@bachya – #53414) (rainmachine docs)
  • Add select entities to ESPHome (@jesserockz – #53526) (esphome docs)
  • Enable strict typing for Rituals Perfume Genie (@milanmeu – #53543) (rituals_perfume_genie docs)
  • Enforce strict typing for Tile (@bachya – #53410) (tile docs)
  • Use SensorEntityDescription for wemo (@esev – #53537) (wemo docs)
  • Use SensorEntityDescription in Airly integration (@bieniu – #53540) (airly docs)
  • Use SensorEntityDescription in Nettigo Air Monitor (@bieniu – #53539) (nam docs)
  • Replace HomeAssistantType with HomeAssistant (@milanmeu – #53545) (hyperion docs) (lcn docs) (meteoclimatic docs) (modern_forms docs) (philips_js docs) (siren docs) (yamaha_musiccast docs)
  • Remove incorrect use of ConfigType in config flows (@milanmeu – #53544)
  • UniFi lies about the client being noted, using the real note instead if it exists (@Kane610 – #53542) (unifi docs)
  • Update spider integration to support HEM (@peternijssen – #53397) (spider docs) (breaking-change) (new-platform)
  • Replace ServiceCallType with ServiceCall in lcn services (@milanmeu – #53547) (lcn docs)
  • Use entity descriptions classes in DSMR (@frenck – #53549) (dsmr docs)
  • Upgrade Rituals Perfume Genie to quality level “silver” (@milanmeu – #53550) (rituals_perfume_genie docs)
  • Use EntityDescription – metoffice (@cdce8p – #53555) (metoffice docs)
  • Ignore Sonos Boost devices during discovery v2 (@jjlawren – #53358) (sonos docs)
  • Use EntityDescription – glances (@cdce8p – #53559) (glances docs)
  • Use SensorEntityDescription in Brother integration (@bieniu – #53558) (brother docs)
  • Add initial version for the YouLess integration (@gjong – #41942) (youless docs) (new-integration)
  • Use EntityDescription – epsonworkforce (@cdce8p – #53556) (epsonworkforce docs)
  • Use entity descriptions classes in Forecast.Solar (@frenck – #53553) (forecast_solar docs)
  • Refactor the logic for peeking into the start of the stream (@allenporter – #52699) (stream docs)
  • Use EntityDescription – rainbird (@cdce8p – #53560) (rainbird docs)
  • Bump matrix-client to 0.4.0 (@johansmitsnl – #53508) (matrix docs)
  • Use EntityDescription – ebox (@cdce8p – #53565) (ebox docs)
  • Split color temp and color into separate HomeKit services when a light supports both (@bdraco – #53471) (homekit docs)
  • Bump gios library to version 2.0 (@bieniu – #53557) (gios docs)
  • Use EntityDescription – rova (@cdce8p – #53531) (rova docs)
  • Fix various zeroconf IPv6 compatibility issues (@vfreex – #53505) (network docs) (zeroconf docs)
  • KNX: Support for HS-color lights (@farmio – #53538) (knx docs)
  • Add more mysensors sensor attributes (@MartinHjelmare – #53566) (mysensors docs) (breaking-change)
  • Use EntityDescription – skybell (@cdce8p – #53564) (skybell docs)
  • Use entity class attributes for Cast (@tkdrob – #53348) (cast docs)
  • Use EntityDescription – tibber (@cdce8p – #53569) (tibber docs)
  • Use entity class attributes for clementine (@tkdrob – #53405) (clementine docs)
  • Allow removing workday holidays by name (@matthewgottlieb – #52700) (workday docs)
  • Move the coordinator logic to the BroadlinkEntity class (@felipediel – #53571) (broadlink docs)
  • Bump yalexs to 1.1.13 to fix august doorsense offline at startup (@bdraco – #53574) (august docs)
  • Replace util.get_local_ip in favor of components.network.async_get_source_ip() – part 3 (@chemelli74 – #53424) (emulated_roku docs) (breaking-change)
  • Bump pyairvisual to 5.0.9 (@bachya – #53578) (airvisual docs)
  • Remove garmin_connect integration (@cyberjunky – #52808) (garmin_connect docs) (breaking-change)
  • Create stats for all sensors that have % unit and are measurement (@balloob – #53576) (sensor docs)
  • Enforce strict typing for SimpliSafe (@bachya – #53417) (simplisafe docs)
  • Add Prosegur Alarms (@dgomes – #44679) (prosegur docs) (new-integration)
  • Refactor bme280, add SPI support (@Kuzj – #48775) (bme280 docs) (breaking-change)
  • Rename snapshot -> backup (@ludeeus – #51629) (hassio docs) (breaking-change)
  • Use EntityDescription – ondilo_ico (@cdce8p – #53579) (ondilo_ico docs)
  • Use EntityDescription – dwd_weather_warnings (@cdce8p – #53580) (dwd_weather_warnings docs)
  • Use EntityDescription – climacell (@cdce8p – #53573) (climacell docs)
  • Use EntityDescription – melcloud (@cdce8p – #53572) (melcloud docs)
  • Add DeviceRegistry template functions (@raman325 – #53131)
  • Bump frontend to 20210727.0 (@balloob – #53591) (frontend docs)
  • Add statistics support for SMA energy sensors (@bramkragten – #53589) (sma docs)
  • Add currency to location data (@ludeeus – #53575) (config docs) (ps4 docs)
  • Fix mypy type for timestamp validator (@allenporter – #53598) (stream docs)
  • Use EntityDescription – netatmo (@cdce8p – #53568) (netatmo docs)
  • Use SensorEntityDescription in GIOS integration (@bieniu – #53581) (gios docs)
  • Bump plexapi to 4.7.0 (@jjlawren – #53597) (plex docs)
  • Improve CO2Signal error handling (@balloob – #53602) (co2signal docs)
  • Enforce strict typing for ReCollect Waste (@bachya – #53356) (recollect_waste docs)
  • Add currency core configuration (@frenck – #53541) (api docs) (config docs)
  • Use the new EntityDescription for motionEye switches (@dermotduffy – #53536) (motioneye docs)
  • Add this variable for use by automation and script templates (@r-t-s – #52774) (automation docs) (script docs)
  • Enable strict static type checking for nest integration (@allenporter – #53535) (nest docs)
  • Skip ‘None’ values when restoring climate scenes (@allenporter – #53484) (climate docs)
  • Fix missing encoding with open() (@cdce8p – #53593)
  • Combine some stream test mocks (@allenporter – #53600) (stream docs)
  • Use SensorEntityDescription in AccuWeather integration (@bieniu – #53604) (accuweather docs)
  • Pin pandas to 1.3.0 (@pvizeli – #53607)
  • Xiaomi_Miio Humidifier rework (@jbouwh – #52366) (xiaomi_miio docs) (breaking-change)
  • Remove unnecessary init_integration() call in NAM tests (@bieniu – #53609) (nam docs)
  • Add mixin classes for required keys in EntityDescription (@cdce8p – #53610) (climacell docs) (melcloud docs) (netatmo docs)
  • Remove Rituals DiffuserSwitch extra_state_attributes (@milanmeu – #53611) (rituals_perfume_genie docs) (breaking-change)
  • Clean device initialization log for Xiaomi Miio humidifiers (@bieniu – #53612) (xiaomi_miio docs)
  • Auto reset on value going back to 0 in ESPHome (@jesserockz – #53592) (esphome docs)
  • Add Khadas VIM3 (@agners – #53616)
  • Bump zeroconf to 0.33.2 (@bdraco – #53625) (zeroconf docs)
  • Remove currency from energy, use core config (@bramkragten – #53615) (energy docs)
  • Fix broadlink creating duplicate unique IDs (2) (@felipediel – #53622) (broadlink docs)
  • Add deCONZ support for Legrand Self-e ZGP switches (@fredericseiler – #53008) (deconz docs)
  • Upgrade ns-api to 3.0.5 (@Danielhiversen – #53620) (nederlandse_spoorwegen docs)
  • Remove CONNECTION_CLASS from Yale Smart Alarm ConfigFlow (@milanmeu – #53629) (yale_smart_alarm docs)
  • Test KNX events (@farmio – #53433) (knx docs)
  • Fix Yale Smart Alarm strings (@milanmeu – #53627) (yale_smart_alarm docs)
  • Include advertise_addr in Sonos logs when used (@jjlawren – #53617) (sonos docs)
  • Add climate support to Freedompro (@stefano055415 – #52720) (freedompro docs) (new-integration) (new-platform)
  • Use entity class attributes for cmus (@tkdrob – #53458) (cmus docs)
  • Bump frontend to 20210728.0 (@balloob – #53634) (frontend docs)
  • Only declare powerwall login failure after 5 attempts (@bdraco – #53635) (powerwall docs)
  • Add CameraEntityDescription to camera integration (@janiversen – #53636) (camera docs)
  • Fix missing supported_features when only custom presets for ESPHome (@OttoWinter – #53632) (esphome docs)
  • Tado, setup to return False and not ConfigEntryNotReady on RuntimeError (@milanmeu – #53637) (tado docs)
  • Add renault integration (@epenet – #39605) (renault docs) (new-integration)
  • Add zwave_js.reset_meter service (@raman325 – #53390) (zwave_js docs) (beta fix)
  • Fix invalid homekit state when arming (@bdraco – #53646) (homekit docs) (beta fix)
  • Add last reset to enphase sensors (@balloob – #53653) (enphase_envoy docs) (beta fix)
  • Add last reset to Shelly (@balloob – #53654) (shelly docs) (beta fix)
  • Bump aiolip to 1.1.6 to fix timeout with ident (@bdraco – #53660) (lutron_caseta docs) (beta fix)
  • Add device class energy and last reset to sense (@bdraco – #53667) (sense docs) (beta fix)
  • Allow uploading large snapshots (@sabeechen – #53528) (hassio docs) (beta fix)
  • Move TP-Link power and energy switch attributes to sensors (@mib1185 – #53596) (tplink docs) (breaking-change) (beta fix) (new-platform)
  • Add enabled attribute to zwave_js discovery model (@raman325 – #53645) (zwave_js docs) (beta fix)
  • Prosegur code quality improvements (@dgomes – #53647) (prosegur docs) (beta fix)
  • Fix unhandled exception with Guardian paired sensor coordinators (@bachya – #53663) (guardian docs) (beta fix)
  • Add energy support for zwave_js meter CC entities (@raman325 – #53665) (zwave_js docs) (beta fix)
  • Skip each ssdp listener that fails to bind (@bdraco – #53670) (ssdp docs) (beta fix)
  • pyWeMo version bump (0.6.6) (@esev – #53671) (wemo docs) (beta fix)
  • Bump nest to version 0.3.5 (@allenporter – #53672) (nest docs) (beta fix)
  • Fix last_reset_topic config replaces state_topic for sensor platform (@bieniu – #53677) (mqtt docs) (beta fix)
  • Only disable a device if all associated config entries are disabled (@Kane610 – #53681) (beta fix)
  • Bump bimmer_connected to 0.7.16 to fix parking light issue (@gerard33 – #53687) (bmw_connected_drive docs) (beta fix)
  • Fix problem with telegram_bot (@Andrew55529 – #53690) (telegram_bot docs) (beta fix)
  • Surepetcare, bug fix (@Danielhiversen – #53695) (surepetcare docs) (beta fix)
  • Energy round (@Danielhiversen – #53696) (energy docs) (beta fix)
  • Integration. Add device class, last_reset, state_class (@Danielhiversen – #53698) (integration docs) (beta fix)
  • Revert “Add Automate Pulse Hub v2 support (#39501)” (@MartinHjelmare – #53704) (automate docs) (beta fix)
  • Set state class measurement also for Total Energy for AVM Fritz!Smarthome devices (@mib1185 – #53707) (fritzbox docs) (beta fix)
  • Add last reset to Shelly’s energy entities (@chemelli74 – #53710) (shelly docs) (beta fix)
  • Add state class support to DSMR Reader (@frenck – #53715) (dsmr_reader docs) (beta fix) (new-integration)
  • Fix zwave_js meter sensor state class (@MartinHjelmare – #53716) (zwave_js docs) (beta fix)
  • Bump frontend to 20210729.0 (@balloob – #53717) (frontend docs) (beta fix)
  • Fix SolarEdge statistics; missing device_class (@frenck – #53720) (solaredge docs) (beta fix)
  • Fix DSMR reconnecting loop without timeout (@frenck – #53722) (dsmr docs) (beta fix)
  • Fix zwave_js current and voltage meter sensor device class (@MartinHjelmare – #53723) (zwave_js docs) (beta fix)
  • Fix effect selector of light.turn_on service (@frenck – #53726) (light docs) (beta fix)
  • Revert “Allow uploading large snapshots (#53528)” (@balloob – #53729) (hassio docs) (beta fix)
  • Bump pyatv to 0.8.2 (@ryanjohnsontv – #53659) (beta fix)
  • Extract smartthings switch energy attributes into sensors (@mib1185 – #53719) (smartthings docs) (beta fix)
  • Add energy device class to deCONZ consumption sensors (@Kane610 – #53731) (beta fix)
  • Bump up ZHA dependencies (@Adminiuga – #53732) (zha docs) (beta fix)
  • Fix exception handling in DataUpdateCoordinator in TP-Link (@mib1185 – #53734) (tplink docs) (beta fix)
  • Only allow one Mazda vehicle status request at a time (@bdr99 – #53736) (mazda docs) (beta fix)
  • Apply left suggestions #53596 for TP-Link (@mib1185 – #53737) (tplink docs) (beta fix)
  • Fix Xiaomi humidifier name migration (@jbouwh – #53738) (xiaomi_miio docs) (beta fix)
  • Fix Xiaomi-miio switch platform setup (@jbouwh – #53739) (xiaomi_miio docs) (beta fix)
  • Add energy attributes to Fronius (@balloob – #53741) (fronius docs) (beta fix)
  • Fix non monotonic dts error in stream (@uvjustin – #53712) (stream docs) (beta fix)
  • Cost sensor handle consumption sensor in Wh (@balloob – #53746) (energy docs) (beta fix)
  • Revert “Rename snapshot -> backup” (@ludeeus – #53751) (hassio docs) (zwave_js docs) (beta fix)
  • Bump HAP-python to 3.6.0 (@bdraco – #53754) (homekit docs) (beta fix)
  • Fix Xiaomi Miio humidifier mode change (@bieniu – #53757) (xiaomi_miio docs) (beta fix)
  • Fix Xiaomi-miio humidifier write the state back when turning on or off (@jbouwh – #53771) (xiaomi_miio docs) (beta fix)
  • Fix parsing of non-string values in Slack data (@bachya – #53775) (slack docs) (beta fix)
  • Update frontend to 20210730.0 (@bramkragten – #53778) (frontend docs) (beta fix)
  • Bump Hue and only fire events for button presses (@balloob – #53781) (hue docs) (beta fix)
  • Do not block setup of TP-Link when device unreachable (@mib1185 – #53770) (tplink docs) (beta fix)
  • Fix name migration of the Xiaomi Miio humidifier (@bieniu – #53790) (xiaomi_miio docs) (beta fix)
  • Fix onkyo UnboundLocalError (@andreasbrett – #53793) (onkyo docs) (beta fix)
  • Remove led from Xiaomi Miio humidifier features (@bieniu – #53796) (xiaomi_miio docs) (beta fix)
  • ForecastSolar – power production now w not k w (@B-Hartley – #53797) (forecast_solar docs) (beta fix)
  • Clean Xiaomi Miio humidifier services (@bieniu – #53806) (xiaomi_miio docs) (beta fix)
  • Fix file path error in nfandroidtv (@tkdrob – #53814) (nfandroidtv docs) (beta fix)
  • Update frontend to 20210801.0 (@bramkragten – #53841) (frontend docs) (beta fix)
  • Add energy consumption sensors to smartthings devices (@firstof9 – #53759) (smartthings docs) (beta fix)
  • Fix error in homekit_controller causing some entities to get an incorrect unique id (@Jc2k – #53848) (homekit_controller docs) (breaking-change) (beta fix)
  • Fix Radiothermostat hold value updates (@vinnyfuria – #53656) (radiotherm docs) (beta fix)
  • Fix missing default reconnect interval in dsmr (@Emilv2 – #53760) (dsmr docs) (beta fix)
  • Fix entry setup for Broadlink SP4 sensors (@felipediel – #53765) (broadlink docs) (beta fix)
  • Bump pysma to 0.6.5 (@rklomp – #53792) (sma docs) (beta fix)
  • Fix TP-Link smart strip devices (@mib1185 – #53799) (tplink docs) (beta fix)
  • Add STATE_CLASS_MEASUREMENT to Tibber (@Danielhiversen – #53802) (tibber docs) (beta fix)
  • Fix crash when AVM FRITZ!SmartHome devices are unreachable (@mib1185 – #53809) (fritzbox docs) (beta fix)
  • Add base energy analytics (@ludeeus – #53855) (analytics docs) (beta fix)
  • Allow combinations write_coil/read_coils and write_coils/read_coil for modbus switch (@janiversen – #53856) (modbus docs) (beta fix)
  • Add RPi.GPIO dependency to rpi_rf integration (@frenck – #53858) (rpi_rf docs) (beta fix)
  • Fix cloud accountlinking replacing token data (@frenck – #53865) (cloud docs) (beta fix)
  • Add measurement state class to ZHA power devices (@frenck – #53866) (zha docs) (beta fix)
  • Fix growat server config entry missing URL key (@frenck – #53867) (growatt_server docs) (beta fix)
  • Fix issue when data is None (@ludeeus – #53875) (energy docs) (beta fix)
  • Bump frontend to 20210802.0 (@balloob – #53876) (frontend docs) (beta fix)
  • Fix watts unit for homekit_controller power sensors (@Jc2k#53877) (homekit_controller docs) (breaking-change) (beta fix)
  • ESPHome implement light color modes (@OttoWinter – #53854) (esphome docs) (beta fix)
  • Bump aiohue to 2.6.1 (@balloob – #53887) (hue docs) (beta fix)
  • Handle powerConsumption reports with null value (@firstof9 – #53888) (smartthings docs) (beta fix)
  • Only show a SimpliSafe code entry when one exists (@bachya – #53894) (simplisafe docs) (beta fix)
  • Bump frontend to 20210803.0 (@balloob – #53897) (frontend docs) (beta fix)
  • Add user to homeassistant system health (@ludeeus – #53902) (homeassistant docs) (beta fix)
  • Bump aioesphomeapi to 6.0.1 (@jesserockz – #53905) (esphome docs) (beta fix)
  • Bump pyroon to 0.0.38 (@pavoni – #53906) (roon docs) (beta fix)
  • Use SelectEntityDescription for Xiaomi Miio integration (@bieniu – #53907) (beta fix)
  • Handle scenario where SimpliSafe code is falsey (@bachya – #53912) (simplisafe docs) (beta fix)
  • Enforce maximum length for HomeKit characteristics (@bdraco – #53913) (homekit docs) (beta fix)
  • Handle Shelly get name on uninitialized device (@balloob – #53917) (shelly docs) (beta fix)
  • Limit API usage for Uptime Robot (@ludeeus – #53918) (uptimerobot docs) (beta fix)
  • Limit zwave_js meter sensor last reset (@MartinHjelmare – #53921) (zwave_js docs) (beta fix)
  • Update frontend to 20210803.2 (@bramkragten – #53923) (frontend docs) (beta fix)
  • Address review comments for 53918 (@ludeeus#53927) (uptimerobot docs) (beta fix)

Comments are closed.