2022.8: You can fix it!

Home Assistant Core 2022.8! 🏖

While many of you enjoy a well-deserved vacation around this time, it seems
like it didn’t slow down the development/contributions made to Home Assistant.
What a beautifully packed release this is again!

I’m super stoked about the added Bluetooth support, opening up a whole new
world of devices to Home Assistant. I’m even more excited about the new repairs
and supported brands features. Those are going to help out A LOT 😃.

Do you know what is really great about this release? All the major features and
changes announced in this release are a step forward to our current goal:
Streamlining experiences.

Enjoy the release!

../Frenck

Missed our release party live stream on YouTube? Don’t worry! You can watch
the recording of it right here!

Introducing Repairs: You can fix it!

A completely new feature we hope you are going to love: Repairs! đŸ‘·â€â™‚ïž

The repairs dashboard can be found in the settings menu and is a place where
Home Assistant can notify you of issues that you can (and should) fix!

From detected current issues on your system to future issues, e.g., caused
by the use of a feature that will be removed, and anything in between.
The problems reported by the repair dashboard are actionable and resolvable
by you.

Screenshot showing the repairs dashboard, with some reported and repairable issues

These repairable issues reported can be anything and are specifically tailored
to your Home Assistant instance. Clicking on an issue will show you more
information about it and tell you what you need to do to fix it.

Sometimes, this needs manual intervention by, for example, updating your YAML
configuration; Other times, it will automatically fix an issue for you after it
asks you to confirm it or after asking you to make a choice.

Screenshot showing details shown by a repairable issue, providing information on how to resolve it.

This release can detect about 25 issues now, and additionally, if a
Home Assistant Alert is found that matches your system, it will also show up
in the repairs dashboard.

There are many use cases for the new repairs feature, and you can expect
it to be extended a lot, with more issue detections, in the near future.

First-class Bluetooth support

Today, we proudly announce that Home Assistant now has first-class
Bluetooth support! đŸ„‡

A brand new Bluetooth integration has been added, which provides absolutely
amazing Bluetooth support to Home Assistant, including automatic discovery of
new devices and the ability to push device updates.

Integrations that implement device support can easily be built on top of these
features, meaning we now have a solid base in Home Assistant to unlock
support for many Bluetooth devices out there!

The screenshot below shows that the Bluetooth integration is set up, and it
discovered a new device. In this case, it discovered a Mi Flora Flower
care sensor device.

Screenshot showing the integration page, with an active Bluetooth integration and a Mi Flora plant sensor device being discovered

A good example is the SwitchBot integration. It has been updated to support
the new Bluetooth integration, and because of that, is now a push-based
integration providing a much more stable experience.

This release adds five integrations built on this: SensorPush,
Govee, INKBIRD, Moat, and Xiaomi BLE. The latter also provides
support for the reasonably popular Mi Flora plant sensors.

Suppose you are using the Home Assistant OS on a Raspberry Pi 3 or 4, or are
using a supported Bluetooth adapter. In that case, the Bluetooth integration
will work out of the box for new installations and is automatically discovered
on existing setups.

Shout out to @bdraco for creating this fantastic new addition, @Ernst79 for
providing implementation feedback, and his excellent work on the
ble_monitor custom integration, which was an inspiration for the
Bluetooth integration. Lastly, a shout out to @Jc2k for implementing the
Xiaomi BLE integration that greatly helped with testing. Thanks guys! 🙏

HomeKit Bluetooth support

To continue the story on Bluetooth, the HomeKit Controller now also
supports Bluetooth and leverages the above-mentioned new Bluetooth
integration 🎉

In case you didn’t know, the HomeKit Controller integration allows you
to connect to HomeKit-capable devices and integrate them directly into
Home Assistant. Allowing you to monitor and control these devices,
they support push-based updates and, above all: Are entirely local!

You don’t need to own or have an Apple phone or computer to use this!

Supporting HomeKit Bluetooth-capable devices is fantastic! It makes a lot of
devices out there compatible with Home Assistant that have no other way of
integrating. There are lots of door locks, wall plugs, and other smart devices
that you can use now.

Thanks for the work on this @Jc2k and @bdraco!

Finding the integration supporting your device

Some integrations work with multiple different brands. This can happen because,
for example, those devices share a communication protocol, are white-labeled
and sold under numerous brand names, or may carry different brand names
depending on where in the world they are sold.

For example, if you have a Luxaflex cover, you can actually use it using the
Hunter Douglas PowerView integration. And this is not the only example;
there are many more! The problem is, how would one know that?

To make setting up things in Home Assistant easier, integrations can now
support multiple brands! So, if you now add an integration in Home Assistant
and search for Luxaflex, you will find one!

Screenshot demonstrating the supported brands; it is now possible to search for a brand that is supported by another integration

When you add a new integration that is supported by another integration,
Home Assistant will tell you which integration provides the support and
guide you to set up that integration.

Better map colors

Maps shown in Home Assistant have had a slight makeover and now use a new color
palette. These new colors provide much greater contrast and significantly
improve their readability.

Especially if you are using the dark mode in the user interface of
Home Assistant, you will notice a big difference.

Screenshot demonstrating the new map colors in both light and dark mode

Thanks to @KTibow for getting the ball rolling on this one, @matthiasdebaat
for providing UX feedback, and @bramkragten for making this change.

Other noteworthy changes

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

  • “Z-Wave JS” is now shown and known as “Z-Wave” in Home Assistant.
  • The “System Health” setting menu item, has been moved to the “Repairs”
    dashboard, in the overflow menu (three dots in the top right).
  • In the background, a project has been started to standardize the names of entities and
    devices. This work is in progress and will take a long time to complete,
    as each possible entity has to be adjusted. But it will streamline experiences!
  • You can now change the shown unit of measurement of number entities that
    provide a temperature. Thanks, @emontnemery!
  • @frenck updated the events developer tools to use YAML instead of JSON
    and added syntax highlighting.
  • The LIFX integration got a significant overhaul, making it much more
    reliable. Thanks for the work on this in the past releases
    @bdraco and @Djelibeybi!
  • The UniFi Network now has update entities, allowing you to update the
    firmware of UniFi devices directly from Home Assistant. Great addition @J3173!
  • The Material Design Icons have been updated to v7.0.96, giving you
    100 brand new icons
    to use đŸ€© Thanks, @goyney!
  • SwitchBot now supports Hygrometers (thanks @murtas) and door/contact
    sensors (thanks @bdraco)!
  • @Noltari added update entities to the QNAP QSW integration! Nice!
  • @frenck added multifactor authentication support for Verisure. So now you
    can add more security to your Verisure alarm system.
  • HomeWizard Energy added support for Watermeters! Thanks, @DCSBL!
  • Yolink now supports garage doors, nice @matrixd2!
  • @simeon-simsoft for bidirectional Wallbox chargers, thank you!
  • You can now view your current network connection details in the
    Network settings screen. Thanks, @zsarnett!
  • Lutron CasĂ©ta now supports the Lutron RA3 Sunnata Keypads. Thanks, @danaues!
  • @mkmer added a battery level sensor to Aladdin Connect, thank you!
  • The Sensibo integration now supports the AirQ sensor. Thanks, @gjohansson-ST!

New Integrations

We welcome the following new integrations in this release:

Integrations now available to set up from the UI

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

Release 2022.8.1 – August 4

  • Fix zwave_js addon info (@MartinHjelmare – #76044) (hassio docs) (zwave_js docs)
  • Bump bleak to 0.15.1 (@bdraco – #76136) (bluetooth docs)
  • Allow climate operation mode fan_only as custom mode in Alexa (@jbouwh – #76148) (alexa docs)
  • Remove icon attribute if device class is set (@dgomes – #76161) (integration docs)
  • Fix flux_led ignored entries not being respected (@bdraco – #76173) (flux_led docs)
  • Fix race in bluetooth async_process_advertisements (@bdraco – #76176) (bluetooth docs)
  • Add repair item to remove no-longer-functioning Flu Near You integration (@bachya – #76177) (flunearyou docs) (deprecation)
  • Fix arm away in Risco (@OnFreund – #76188) (risco docs)
  • Fix nullable ip_address in mikrotik (@engrbm87 – #76197) (mikrotik docs)
  • Mark RPI Power binary sensor as diagnostic (@frenck – #76198) (rpi_power docs)
  • BLE pairing reliablity fixes for HomeKit Controller (@bdraco – #76199) (homekit_controller docs) (dependency)
  • Bump NextDNS library (@bieniu – #76207) (nextdns docs)
  • Bump AIOAladdin Connect to 0.1.41 (@mkmer – #76217) (aladdin_connect docs) (dependency)
  • Fix spelling of OpenWrt in luci integration manifest (@frenck – #76219) (luci docs)
  • Fix Life360 recovery from server errors (@pnbruckner – #76231) (life360 docs)
  • More explicitly call out special cases with SimpliSafe authorization code (@bachya – #76232) (simplisafe docs)
  • Enable strict typing for HomeKit Controller config flow module (@Jc2k – #76233) (homekit_controller docs)
  • Fix some homekit_controller pylint warnings and (local only) test failures (@Jc2k#76122) (homekit_controller docs)

Release 2022.8.2 – August 7

  • Update gree to use the network component to set discovery interfaces (@Jc2k – #75812) (gree docs)
  • Use stored philips_js system data on start (@elupus – #75981) (philips_js docs)
  • Ensure bluetooth recovers if Dbus gets restarted (@bdraco – #76249) (bluetooth docs)
  • Fix default sensor names in NextDNS integration (@bieniu – #76264) (nextdns docs)
  • Bump ZHA dependencies (@puddly – #76275) (zha docs)
  • Bump pydeconz to v102 (@Kane610 – #76287) (deconz docs)
  • Fix ZHA light color temp support (@dmulcahey – #76305) (zha docs)
  • Bump pySwitchbot to 0.18.4 (@bdraco – #76322) (switchbot docs)
  • Bump aiobafi6 to 0.7.2 to unblock #76328 (@jfroy – #76330) (baf docs)
  • Postpone broadlink platform switch until config entry is ready (@elupus#76371) (broadlink docs)

Release 2022.8.3 – August 9

  • Add debug logging for unknown Notion errors (@bachya – #76395) (notion docs)
  • Automatically enable common RainMachine restriction entities (@bachya – #76405) (rainmachine docs)
  • Fix bug where RainMachine entity states don’t populate on startup (@bachya – #76412) (rainmachine docs)
  • Fix Govee 5185 Meat Thermometers with older firmware not being discovered (@bdraco – #76414) (govee_ble docs)
  • Fix iCloud listeners (@epenet – #76437) (icloud docs)
  • Bump version of pyunifiprotect to 4.0.12 (@AngellusMortis – #76465) (unifiprotect docs)
  • Bump aiohomekit to 1.2.6 (@bdraco – #76488) (homekit_controller docs)
  • Fix inkbird ibbq2s that identify with xbbq (@bdraco – #76492) (inkbird docs)
  • Bump govee-ble to 0.14.0 to fix H5052 sensors (@bdraco – #76497) (govee_ble docs)
  • Fix pairing with HK accessories that do not provide format for vendor chars (@bdraco – #76502) (homekit_controller docs)
  • Fix #76283 (@ocalvo – #76531) (sms docs)
  • Bump aiohomekit to 1.2.8 (@bdraco – #76532) (homekit_controller docs)

Release 2022.8.4 – August 12

  • Bump ZHA dependencies (@puddly – #76565) (zha docs)
  • Replaces aiohttp.hdrs CONTENT_TYPE with plain string for the Swisscom integration (@DeeVeX – #76568) (swisscom docs)
  • Fix homekit_controller not noticing ip and port changes that zeroconf has found (@Jc2k – #76570) (homekit_controller docs)
  • Fix Spotify deviding None value in current progress (@frenck – #76581) (spotify docs)
  • Improve code quality in huawei_lte (@a-p-z – #76583) (huawei_lte docs)
  • Fix Govee 5181 with old firmware (@bdraco – #76600) (govee_ble docs)
  • Fix evohome preset modes (@MartinHjelmare – #76606) (evohome docs)
  • Add missing _abort_if_unique_id_configured to ble integrations (@bdraco – #76624) (govee_ble docs) (sensorpush docs) (inkbird docs) (xiaomi_ble docs) (moat docs)
  • Fix non-awaited coroutine in BMW notify (@rikroe#76664) (bmw_connected_drive docs)

Release 2022.8.5 – August 15

  • Update systembridgeconnector to 3.4.4 (@timmo001 – #75362) (system_bridge docs)
  • 🐛 Fix “The request content was malformed” error in home_connect (@hansgoed – #76411) (home_connect docs)
  • Bump pySwitchbot to 0.18.5 (@bdraco – #76640) (switchbot docs)
  • Bump pySwitchbot to 0.18.6 to fix disconnect race (@bdraco – #76656) (switchbot docs)
  • Bump pySwitchbot to 0.18.10 to handle empty data and disconnects (@bdraco – #76684) (switchbot docs)
  • Fix google calendar disabled entity handling (@allenporter – #76699) (google docs)
  • Motion Blinds fix OperationNotAllowed (@starkillerOG – #76712) (motion_blinds docs)
  • Update xknx to 1.0.0 🎉 (@marvin-w – #76734) (knx docs)
  • Bump aiohomekit to 1.2.10 (@bdraco – #76738) (homekit_controller docs)
  • Fix bad data with inkbird bbq sensors (@bdraco – #76739) (inkbird docs)
  • Bump bimmer_connected to 0.10.2 (@rikroe – #76751) (bmw_connected_drive docs)
  • Bump aiohue to 4.5.0 (@marcelveldt – #76757) (hue docs)
  • Fix stale data with SensorPush sensors (@bdraco – #76771) (sensorpush docs)
  • Bump homeconnect to 0.7.2 (@BraveChicken1 – #76773) (home_connect docs)
  • Bump aiohomekit to 1.2.11 (@bdraco – #76784) (homekit_controller docs)
  • Fix bluetooth callback registration not surviving a reload (@bdraco – #76817) (bluetooth docs)
  • Correct referenced entities and devices for event triggers (@emontnemery – #76818) (automation docs)
  • Fix lifx homekit discoveries not being ignorable or updating the IP (@bdraco#76825) (lifx docs)

Release 2022.8.6 – August 17

  • Fix displayed units for BMW Connected Drive (@rikroe – #76613) (bmw_connected_drive docs)
  • Fix Overkiz startup order to prevent unnamed device showing up (@iMicknl – #76695) (overkiz docs)
  • Bump pynetgear to 0.10.7 (@starkillerOG – #76754) (netgear docs)
  • Correct restoring of mobile_app sensors (@emontnemery – #76886) (mobile_app docs)
  • Fix acmeda set cover tilt position (@epenet – #76927) (acmeda docs)
  • Fix race in notify setup (@bdraco – #76954) (notify docs)
  • Pass the real config for Discord (@tkdrob – #76959) (discord docs)
  • Pass the real config for Slack (@tkdrob#76960) (slack docs)

Release 2022.8.7 – August 25

  • Add edl21 sensor unit mapping for Hz (@StephanU – #76783) (edl21 docs)
  • Change growatt server URL (@coffeedave – #76824) (growatt_server docs)
  • Bump pySwitchbot to 0.18.12 (@bdraco – #77040) (switchbot docs)
  • Bump pySwitchbot to 0.18.14 (@bdraco – #77090) (switchbot docs)
  • Protect against an exception in Shelly climate platform (@bieniu – #77102) (shelly docs)
  • Bump ZHA dependencies (@puddly – #77125) (zha docs)
  • Minor deCONZ clean up (@Kane610 – #76323) (deconz docs)
  • Fix level controllable output controls in deCONZ (@Kane610 – #77223) (deconz docs)
  • Fix Aladdin connect multiple doors on one device (@mkmer – #77226) (aladdin_connect docs)
  • Fix met_eireann default wind speed unit (@donoghdb – #77229) (met_eireann docs)
  • Update xknx to 1.0.1 (@farmio – #77244) (knx docs)
  • Fix grid_export_limit unit for DT inverters (@mletenay – #77290) (goodwe docs)
  • Add BLE sensor to Aladdin_connect (@mkmer#76221) (aladdin_connect docs)

Need help? Join the community!

Home Assistant has a great community of users who are all more than willing
to help each other out. So, join us!

Our very active Discord chat server is an excellent place to be
at, and don’t forget to join our amazing forums.

Found a bug or issue? Please report it in our issue tracker,
to get it fixed! Or, check our help page for guidance for more
places you can go.

Are you more into email? Sign-up for our Building the Open Home Newsletter
to get the latest news about features, things happening in our community and
other news about building an Open Home; straight into your inbox.

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;
}

Advantage Air

Each AC will have its own device, different from the one previously created.
Any automations or scripts that target the device will need to be corrected.

(@Bre77#75395) (documentation)


The previsouly deprecated service advantage_air.set_myzone has been removed.
Use the available MyZone select entity instead.

(@Bre77#75160) (documentation)

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;
}

Calendar

Calendar description attributes are no longer written into the recorder database.

(@allenporter#75375) (documentation)

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;
}

HERE Travel Time

The single HERE Travel Time sensor with attributes is split up into separate
sensors for Duration, Duration in Traffic, Route, Distance, Origin, Destination.

If you used the entity attributes in your automation or scripts, you will need
to adapt them to this change.

(@eifinger#72405) (documentation)

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

The ecobee Fan mode number entity has been removed as HomeKit Controller
now implements fan mode
on the climate entity which replaces this functionality.

(@bdraco#74440) (documentation)

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;
}

LIFX

Each LIFX device now has its own integration entry. The existing entry will be
migrated to separate entries automatically as each device is discovered,
and will automatically be removed once all devices are found.

Migrating to an integration entry per device allows Home Assistant to
take care of discovery IP updates and retries, dramatically improving the
integration’s reliability.

LIFX can now be configured manually by IP address. DHCP, HomeKit,
and native discovery are supported for updating IP addresses to
ensure we never lose track of a device.

Advanced YAML configuration is deprecated and will be removed
in a future release. Advanced YAML configuration is no longer necessary as the
integration now fully utilizes Network Configuration,
and can also function without working discovery.

(@bdraco#74316) (documentation)

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;
}

Logger

Timestamps in the Home Assistant log file now include millisecond-level
resolution.

Scripts or external log system that rely on this will need to be updated
to handle the extra decimal places.

(@puddly#74518) (documentation)

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;
}

Material Design Icons

In the latest Material Design Icons update,
several icons have been renamed or removed.
Removed and renamed icons will continue to work for the next two releases.

Please make sure you update any use of the following MDI icons:

Removed:

  • mdi:android-messages – Use mdi:message-text instead.
  • mdi:book-variant-multiple – Use mdi:bookmark-box-multiple instead.
  • mdi:desktop-mac – Use mdi:monitor instead.
  • mdi:desktop-mac-dashboard – Use mdi:monitor-dashboard instead.
  • mdi:discord
  • mdi:google-home
  • tablet-android – Use mdi:tablet instead.

Renamed:

  • mdi:diving-scuba to mdi:diving-scuba-mask
  • mdi:email-send to mdi:email-arrow-right
  • mdi:email-send-outline to mdi:email-arrow-right-outline
  • mdi:email-receive to mdi:email-arrow-left
  • mdi:email-receive-outline to mdi:email-arrow-left-outline
  • mdi:format-textdirection-r-to-l to mdi:format-pilcrow-arrow-left
  • mdi:format-textdirection-l-to-r to mdi:format-pilcrow-arrow-right
  • mdi:globe-light to mdi:globe-light-outline
  • mdi:google-controller to mdi:controller
  • mdi:google-controller-off to mdi:controller-off
  • mdi:lecturn to mdi:lectern
  • mdi:mosque to mdi:mosque-outline
  • mdi:receipt to mdi:receipt-text
  • mdi:receipt-outline to mdi:receipt-text-outline
  • mdi:silo to mdi:silo-outline
  • mdi:text-to-speech to mdi:microphone-message
  • mdi:text-to-speech-off to mdi:microphone-message-off
  • mdi:timeline-help to mdi:timeline-question
  • mdi:timeline-help-outline to mdi:timeline-question-outline
  • mdi:vector-point to mdi:vector-point-select

(@goyney#13175)

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;
}

Sonos

The previously deprecated sonos.join and sonos.unjoin services have been
removed in favor of the standard media_player.join and media_player.unjoin
services.

(@jjlawren#74476) (documentation)

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;
}

SwitchBot

The Bluetooth integration must be enabled before
switchbot can be used. Bluetooth is automatically discovered in most cases,
but can be manually added from the integrations page
if it is not.

The Time between updates (seconds) and How long to scan for advertisement data
options have been removed as they are no longer needed since the integration
is now push instead of polling.

(@bdraco#75645) (documentation)

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

Carbon Monoxide binary sensors have changed their device class from
gas to co.

(@EnochPrime#75649) (documentation)

If you are a custom integration developer and want to learn about breaking
changes and new features available for your integration: Be sure to follow our
developer blog. The following are the most notable for this release:

Farewell to the following

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

  • XBee
  • SoChain
  • Google Play Music Desktop Player (GPMDP)

All three were previously disabled due to incompatibilities and have now been
removed.

All changes

Of course, there is a lot more in this release. You can find a list of
all changes made here: Full changelog for Home Assistant Core 2022.8

Scroll to Top