• Sat. Oct 26th, 2024

2023.2: How can I Assist?

Byadmin

May 4, 2023



Home Assistant Core 2023.2! 🎉
This release covers the first month of development of 2023, and it is setting
one heck of a high bar for the rest of the year! 😅
Undoubtedly, the most spectacular features are related to the
first chapter of Year of the Voice. 🎙️
It is hard to sum up all of this in this release blog, so I’m not even going
to try doing it in this introduction, but holy mother of smart homes: this is
exciting stuff! 😮
My personal favorite this release: huge steps into an even tighter integration
with our amazing sister project: ESPHome. Creating
and maintaining your own secure DIY IoT devices just became a lot easier.
And since we are talking about awesomeness, have you noticed the large amount
of logos in the release image above? So many new integrations! 🤩
Enjoy the release!
../Frenck
PS: Just a reminder that valentine’s day is coming up. Be sure to share the love! ❤️

Meet: Assist!
Streaming history
Grouping sensors
Now even tighter integrated with ESPHome
Other noteworthy changes
New Integrations
Integrations now available to set up from the UI
Release 2023.2.1 – February 2
Release 2023.2.2 – February 4
Release 2023.2.3 – February 7
Release 2023.2.4 – February 13
Release 2023.2.5 – February 15
Need help? Join the community!
Breaking Changes
Farewell to the following
All changes

Don’t forget to join our release party live stream on YouTube 1 February 2023, at 12:00 PST / 21:00 CET!

Meet: Assist!
It’s Home Assistant’s Year of the Voice, and
it’s our goal to let users control Home Assistant in their own language.
Together with the Home Assistant community, we have been hard at work building
the foundation for this.
Today we like you to meet:

Assist
allows you to use natural language to control Home Assistant. It is powered by
Hassil and the sentences
(contributed by 112! people) from the
Home Assistant Intents project.
We believe technology is meant to be played with, and projects should be
usable as soon as possible. Together with the community, we can then iterate
and refine. That’s why today, we’re delivering a basic experience supporting
a stunning 22! languages that work with Assist.
Go ahead, it is enabled by default; just tap the new Assist icon

at the top right of your dashboard to start using it.
Oh, and we are also releasing some fun stuff we’ve cooked up along the way!
Read more about Assist and other released voice features in the
Chapter 1: Assist blogpost
and a video presentation (including live demos) on YouTube.

Streaming history
History cards now update live! We now stream the state changes while they are
happening and update the graphs in real-time 😲

These history cards now show live power usage, while I’m brewing a cup of coffee.

But this isn’t just limited to history cards, your
history dashboard is now live too!
As a result of this all, we can now write less frequently to the database in our
recorder. It took years of changes to get us to this point (thanks @bdraco 🙏).
It greatly reduces resource usage and increases storage lifetimes significantly.
The previously introduced live logbook and now the live history were the
last pieces that made this possible.
As a side-effect, it should also resolve the authentication errors some people
experienced re-opening the iOS companion app when using history cards.
Grouping sensors
The group helper now supports sensors too! Sensor groups
can combine entities with a numeric state, like sensors,
number, and number helpers
entities.

This feature is a revised, improved, and more logical version of the
“Min/Max” integration / “Combine the state of several sensors” helper.
It is likely we are going to replace those with this new sensor group
in the future.
Compared to those previously mentioned methods, the sensor groups have the
additional options to hide their member entities and the option to ignore
sensors that currently are not in a numeric state (i.e., currently “unavailable”
or “unknown”).
Now even tighter integrated with ESPHome
ESPHome already works really well with Home Assistant.
Yet, this release makes it even better!
If you are using the ESPHome add-on, we have some great improvements for you.
The add-on and Home Assistant will now communicate with each other, bringing
in many new features.
When you set up a new device in ESPHome and next add it to Home Assistant,
they will be able to exchange encryption keys. Removing the need for you to
find, copy & paste those. Just a single click and the setup is done! 🚀
But that is not all. What is really mind-blowing, is that the ESPHome
integration will now provide update entities when using the add-on!

Right now, the update entities will only indicate if a device needs updating.
However, when the next major release of ESPHome (2023.2) becomes available,
it will support updating them too! Yes, at that point, you can update your
ESPHome devices directly from Home Assistant and even automate it!
Also, ESPHome is deprecating the old password-based authentication for its
API in favor of the more secure encryption key. If one of your ESPHome devices
is still using a plain password, Home Assistant will notify you by creating
an issue in your Repairs dashboard.

We’ve also prepared for the next release of ESPHome (2023.2), in which you can
add a friendly, more human name to your ESPHome devices. Home Assistant will
pick those up, making your ESPHome devices look better out-of-the-box!
Other noteworthy changes
There is much more juice in this release; here are some of the other
noteworthy changes this release:

You can now add aliases to your areas too! Our new Assist feature
leverages this.
Got an energy sensor in Wh, but you’d like it to be kWh? You can now
change the units of energy sensors in the entity settings.
Each entity in the frontend has its own color, which is based on the current
entity state. We now have officially added support
for themes to customize these.
The most awesome integration of all, got even better. @Lash-L added support
for the battery state of your Oral-B toothbrush!
The automations & scripts UI now support selecting other entities for
above/below in the numeric state conditions & triggers. Thanks, @karwosts!
The Reolink integration now supports FLV streams, cameras can be discovered
on the network, but more importantly: binary sensors! For things
like motion, person, vehicle detection, and… Doorbell presses!
Thanks, @starkillerOG!
There is now a service that allows for the creation of calendar events. So,
you can now automate events to be added to your calendars! Amazing, @allenporter!
When selecting multiple entities from a list in the UI, it will now exclude
already added entities. No more accidentally added duplicates! Thanks, @piitaya!
@Kane610 added PoE power sensors to the UniFi Network integrations, nice!
The Tile card now has a vertical option! Great, @TheZoker!
Jellyfin now works with TV shows in the media browser. Thanks, @j-stienstra!
We have bumped the CHIP/Matter SDK version used by our Matter implementation
to 1.0.0.2, which contains many fixes.
From the Month of “What the heck?”: Old-style groups can now remove entities
from the group using the group.set service. Thanks, @gjohansson-ST!
You might have noticed a Thread and an Open Thread Border Router integration
being added to this release. These are currently not for active use but for
initial early development.
The experimental multi-pan feature has been enabled again. Allowing to run
both Zigbee and Thread using the single radio found in both Home Assistant
Yellow and Home Assistant SkyConnect.
The following integrations now reached a Platinum level on the
integration quality scale:

Renault excellent job @epenet!
HomeWizard Energy awesome work @DCSBL!

New Integrations
We welcome the following new integrations in this release:

EnergyZero, added by @klaasnicolaas
Retrieves dynamic (hourly) energy & gas prices from the Dutch utility company
EnergyZero.

EufyLife, added by @bdr99
Integrate Eufy smart scales over Bluetooth.

Everything but the Kitchen Sink, added by @emontnemery
This is a test integration, which provides various odd and obscure entities.
It can be helpful for development purposes, but generally no use otherwise.

Google Mail, added by @tkdrob
Provides services to manage your Google Mail auto-response and provides
a notification service to send (or draft) emails.

LD2410 BLE, added by @930913
Integrates a $4 LD2410 Bluetooth mmWave sensor, which works with our
Bluetooth proxies!

Mopeka, added by @bdraco
Works with your Mopeka BLE propane tank monitors.

OpenAI Conversation, added by @balloob
OpenAI integration that uses GPT-3 to showcase replacing the Home Assistant
conversation agent. Note: It cannot control anything in your home.

Read Your Meter Pro, added by @OnFreund
Pull in your water usage/meter readings from your Read Your Meter Pro account.

Ruuvi Gateway, added by @akx
Integrates the Ruuvi Gateway that reads your Ruuvi sensors.

SFR Box, added by @epenet
Offers integration with the SFR broadband routers.

Starlink, added by @boswelja
Starlink is a satellite internet constellation operated by SpaceX.
Integrate your Starlink dish with Home Assistant.

Stookwijzer, added by @fwestenberg
Stookwijzer advises wether to burn pallets or wood, or to
use the barbecue. This can prevent health problems for people in the area
(NL only).

Zeversolar, added by @kvanzuijlen
Get power and energy information from your Zeversolar solar inverter locally.

This release also has some new virtual integrations. Virtual integrations
are stubs that are handled by other (existing) integrations to help with
findability. These are new:

ANWB Energie provided by EnergyZero, added by @klaasnicolaas
Energie VanOns provided by EnergyZero, added by @klaasnicolaas
Mijndomein Energie provided by EnergyZero, added by @klaasnicolaas
Fire TV provided by Android TV, added by @jrieger

Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:

Rain Bird, done by @allenporter
IMAP, done by @engrbm87
D-Link, done by @tkdrob

Release 2023.2.1 – February 2

Support ISY994 Z-Wave motorized blinds as cover (@shbatm – #87102) (isy994 docs)
Bump reolink_aio to 0.3.1 (@starkillerOG – #87118) (reolink docs)
Bump reolink-aio to 0.3.2 (@starkillerOG – #87121) (reolink docs)
Fix invalid state class in renault (@epenet – #87135) (renault docs)
Add missing converters to recorder statistics (@epenet – #87137) (recorder docs)
Add missing supported features to Z-Wave.Me siren (@lawfulchaos – #87141) (zwave_me docs)
Reolink unsubscribe webhook when first refresh fails (@starkillerOG – #87147) (reolink docs)
Fix statistics graphs not loading with data_rate, electric_current, voltage, information, and unitless units (@bdraco – #87202) (recorder docs)
Add Reauth config flow to honeywell (@mkmer – #86170) (honeywell docs)
Bump AIOSomecomfort to 0.0.6 (@mkmer – #87203) (honeywell docs)
Update frontend to 20230202.0 (@bramkragten – #87208) (frontend docs)
Bump py-synologydsm-api to 2.1.1 (@mib1185 – #87211) (synology_dsm docs)
Fix disabled condition within an automation action (@karliemeads – #87213) (breaking-change)

Release 2023.2.2 – February 4

Add missing mopeka translations (@bdraco – #87421) (mopeka docs)
Fix call values in Aussie Broadband (@Bre77 – #87229) (aussie_broadband docs)
Handle failed Sonos subscriptions better (@jjlawren – #87240) (sonos docs)
Filesize timestamp remove state class (@gjohansson-ST – #87247) (filesize docs)
Bump reolink-aio to 0.3.4 (@starkillerOG – #87272) (reolink docs)
Fix volume state class in renault (@epenet – #87280) (renault docs)
Bump sfrbox-api to 0.0.6 (@epenet – #87281) (sfr_box docs)
Extend state class sensor warnings with expected values (@frenck – #87294) (sensor docs)
Fix incorrect description in sensor group config flow (@frenck – #87298) (group docs)
Don’t override icon in sensor group when device class is set (@frenck – #87304) (group docs)
Fix Bravia TV refreshing zero volume level (@Drafteed – #87318) (braviatv docs)
Fixed parser for zeversolar hardware version M10 (@kvanzuijlen – #87319) (zeversolar docs)
Fix code format issue in Yale Smart Alarm (@gjohansson-ST – #87323) (yale_smart_alarm docs)
Bump py-synologydsm-api to 2.1.2 (@mib1185 – #87324) (synology_dsm docs)
Bump oralb-ble to 0.17.2 (@Lash-L – #87355) (oralb docs)
Update pylutron-caseta to 0.18.1 (@mdonoughe – #87361) (lutron_caseta docs)
Fix exception when trying to poll a HomeKit device over Thread with no active encryption context (@Jc2k – #87379) (homekit_controller docs)
Fix Ruuvi Gateway data being ignored when system is not using UTC time (@akx – #87384) (ruuvi_gateway docs)
Fix state class in Enphase Envoy (@vpathuis – #87397) (enphase_envoy docs)
Ignore invalid zeroconf names from devices with broken firmwares (@bdraco – #87414) (zeroconf docs)
Disable mopeka accelerometer sensors by default (@bdraco – #87420) (mopeka docs)
Bump aiohomekit to 2.4.6 (@bdraco – #87427) (homekit_controller docs)
Update black to 23.1.0 (@frenck – #87188)

Release 2023.2.3 – February 7

Speed up purge time with newer MariaDB versions (@bdraco – #87409) (recorder docs)
Add missing name field to emulated_hue config (@gregoryhaynes – #87456) (emulated_hue docs)
Bump lupupy to 0.2.7 (@majuss – #87469) (lupusec docs)
Bump py-synologydsm-api to 2.1.4 (@mib1185 – #87471) (synology_dsm docs)
Disable uptime sensor by default in Unifi (@tkdrob – #87484) (unifi docs)
Add the correct loggers to velbus manifest.json (@Cereal2nd – #87488) (velbus docs)
Fix recorder run history during schema migration and startup (@bdraco – #87492) (recorder docs)
Bump xiaomi-ble to 0.16.1 (@Ernst79 – #87496) (xiaomi_ble docs)
Bump jaraco.abode to 3.3.0 (@zim514 – #87498) (abode docs)
Bump bimmer_connected to 0.12.1 (@rikroe – #87506) (bmw_connected_drive docs)
Add LD2410BLE support for new firmware version (@bencorrado – #87507) (ld2410_ble docs)
Bump env_canada to 0.5.28 (@michaeldavie – #87509) (environment_canada docs)
Optimize history.get_last_state_changes query (@bdraco – #87554) (recorder docs)
OpenAI: Ignore devices without a name (@balloob – #87558) (openai_conversation docs)
Bump oralb-ble to 0.17.4 (@Lash-L – #87570) (oralb docs)
Fix matter remove config entry device (@MartinHjelmare – #87571) (matter docs)
Fix indent on slow_range_in_select for MySQL/MariaDB (@bdraco – #87581) (recorder docs)
Fix LD2410 BLE detection with passive scans (@bdraco – #87584) (ld2410_ble docs)
Bump inkbird-ble to 0.5.6 (@bdraco – #87590) (inkbird docs)
Bump sensorpro-ble to 0.5.3 (@bdraco – #87591) (sensorpro docs)
Bump thermopro-ble to 0.4.5 (@bdraco – #87592) (thermopro docs)
Bump bluemaestro-ble to 0.2.3 (@bdraco – #87594) (bluemaestro docs)
Bump sensorpush-ble to 1.5.5 (@bdraco – #87595) (sensorpush docs)
Improve rainbird device reliability by sending requests serially (@allenporter – #87603) (rainbird docs)
Do not return cached values for entity states in emulated_hue (@Tho85 – #87642) (emulated_hue docs)
Bump pyrainbird to 2.0.0 (@allenporter – #86851) (rainbird docs)
Bump PyISY to 3.1.13, check portal for network buttons (@shbatm – #87650) (isy994 docs)

Release 2023.2.4 – February 13

Netgear ssdp discovery abort if no serial (@starkillerOG – #87532) (netgear docs)
Reolink unregistered webhook on unexpected error (@starkillerOG – #87538) (reolink docs)
Correct sensor restore entity in modbus (@janiversen – #87563) (modbus docs)
Upgrading volvooncall to 0.10.2 (@Gollam – #87572) (volvooncall docs)
Keep sleepy xiaomi-ble devices that don’t broadcast regularly available (@Ernst79 – #87654) (xiaomi_ble docs)
Bump oralb-ble to 0.17.5 (@Lash-L – #87657) (oralb docs)
Bump cryptography to 39.0.1 for CVE-2023-23931 (@bdraco – #87658)
Bump yalexs_ble to 1.12.12 to fix reconnect when services fail to resolve (@bdraco – #87664) (august docs) (yalexs_ble docs)
Fix bad battery sense in ambient_station (@jpettitt – #87668) (ambient_station docs)
Bump reolink-aio to 0.4.0 (@starkillerOG – #87733) (reolink docs)
Bump aiolifx to 0.8.9 (@Djelibeybi – #87790) (lifx docs)
Ensure recorder still shuts down if the final commit fails (@bdraco – #87799) (recorder docs)
Bump pyipma to 3.0.6 (@dgomes – #87867) (ipma docs)
Fix unbound variable in Group sensor (@gjohansson-ST – #87878) (group docs)
Retrigger Bluetooth discovery when calling async_rediscover_address (@bdraco – #87884) (bluetooth docs)
Fix iaqualink exception handling after switch to httpx (@flz – #87898) (iaqualink docs)
Bump aioesphomeapi to 13.3.1 (@bdraco – #87969) (esphome docs)

Release 2023.2.5 – February 15

Update tibber lib 0.26.13 (@Danielhiversen – #88018) (tibber docs)
Bump pyopenuv to 2023.02.0 (@bachya – #88039) (openuv docs)
Honeywell disable detergent level by default (@mkmer – #88040) (whirlpool docs)
Bump AIOAladdinConnect 0.1.56 (@mkmer – #88041) (aladdin_connect docs)
Handle device reg fields not being valid data in openai conversion (@balloob – #88047) (openai_conversation docs)
Bump pyoctoprintapi to 0.1.11 (@rfleming71 – #88052) (octoprint docs)
Fixed float number validation in sensor component (@gertjanstulp – #88074) (sensor docs)
Statistics component fix device_class for incremental source sensors (@ThomDietrich – #88096) (statistics docs)
Update orjson to resolve segmentation fault during JSON serialisation (@mgjbroadbent – #88119)
Blebox fix thermobox reporting wrong state (@riokuu – #88169) (blebox docs)
Bump reolink-aio to 0.4.2 (@starkillerOG – #88175) (reolink docs)
Bump python-matter-server to 2.1.0 (@marcelveldt – #88192) (matter 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

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

Python 3.9 support has been removed

Python 3.9 support has previously been deprecated and has now been removed.
Home Assistant now requires Python 3.10 to run.
If you are using Home Assistant OS, Home Assistant Container, or Home Assistant
Supervised installation method, you don’t have to do anything. In those cases,
we handle this all for you.
Your system has been using Python 3.10 for quite some time already.
(@frenck – #85456)

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

MariaDB

If you are using MariaDB with Home Assistant recorder, please make sure
you run 10.5.17 , 10.6.9, 10.7.5, 10.8.4 (depending on which major
release you are using). If you are using the MariaDB core add-on,
make sure to update it to the latest version: 2.5.2.
Older versions of MariaDB suffer from a significant performance regression
when retrieving history data or purging the database.
(@bdraco – #87040)

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

Automations & Scripts

A disabled condition, for example, in an automation or script, will no longer
always be a pass/True within an OR condition. Instead, in those
cases, the condition will now have no effect when disabled.
(@karliemeads – #79718) (documentation)

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

AccuWeather

For the precipitation entity, the unit was changed from mm to mm/h
(in to in/h), resulting in the need to fix the unit for long-term
statistics. You can do that in Developer Tools -> Stats.
(@bieniu – #86088) (documentation)

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

Airly

If the language in the Home Assistant settings is set to Polish, the language
of the advice and description attributes of the CAQI entity will change
from English to Polish.
If you are using these in your automations or scripts, you might need to adjust
them to match this change.
(@bieniu – #85655) (documentation)

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

Fitbit

The state values of the Fitbit sensor entities will change to remove any
thousands delimiters. For example, 1,500 will become 1500.
If you’re using the state of these entities in automations or scripts,
you need to update them to handle the new state format.
(@sw-carlos-cristobal – #85251) (documentation)

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

Flume

The scan/update interval for water values has been restored to match the Flume
app.
To stay under Flume’s API limits, the device connection is now checked hourly,
and notifications are checked every 5 minutes.
(@bdraco – #86354) (documentation)

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

History

The use_include_order YAML configuration option has been removed.
This option was used to sort the history on the original history panel which,
is no longer used. As it no longer has a function and only serves to
slow down the response, it has been removed.
(@bdraco – #86365) (documentation)

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

IoTaWatt

The IoTAWatt integration no longer provides sensors with the “Accumulated”
suffix. The accumulated sensors have been introduced to support net energy
export/import metering.
Newer versions of IoTaWatt provide “Integrators”, which allow achieving the
same more efficiently and with higher accuracy.
You should configure Integrators
to calculate the net energy export and import.
(@agners – #86611) (documentation)

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

Matter

The Matter integration now requires running Matter Server version 2.0.0.
If you’re using the Matter Server add-on to run the Matter Server,
you will need version 3.0.0 of the add-on.
We had to change our vendor ID in the add-on; as a result, all devices
need to be recommissioned.
(@MartinHjelmare – #86470) (documentation)

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

Nettigo Air Monitor

The states of air quality sensors have been standardized to match Home Assistant
core rules. This affects two states of the sensors that NAM can provide:

very low, which now became very_low
very high, which now became very_high

If you used those states directly in your automations, scripts, or templates;
you would need to adjust those to match these changes.
(@frenck – #85245) (documentation)

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

Pentair ScreenLogic

The Pentair ScreenLogic integration now correctly categorizes all known lights.
Removing any lights that were previously incorrectly created as switch entities
may be necessary.
(@dieselrabbit – #86608) (documentation)

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

Pi-hole

The previously deprecated YAML configuration of the Pi-hole
integration has been removed.
Pi-hole 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 – #84803) (documentation)

The extra state attribute “Domains blocked” has been removed from all sensors.
It is already exposed as its own dedicated sensor.
If you used the state attribute in your automations or scripts, you would
need to adjust them to use the dedicated sensor instead.
(@mib1185 – #85424) (documentation)

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

Rain Bird

Rainbird is now configured via the UI, and configuration from YAML has been
imported automatically.
However, there are a few notable changes:

Custom per zone overrides for irrigation time are no longer supported.
The Rain delay binary_sensor that duplicates the Rain delay time sensor
has been removed. You should move all uses to the sensor value and check
for a non-zero value to get equivalent behavior.
The Rain sensor that duplicates the Rain binary_sensor has been removed.
You may check the binary_sensor state to get equivalent behavior.

Also, the way the “Rain Delay” is managed has changed. The Rain Delay, which
pauses irrigation for a specified number of days, is now managed with a number
entity which can be controlled directly from the UI.
The existing service call rainbird.set_rain_delay and the Raindelay sensor
have been deprecated. Any existing automations or scripts that make service
calls to rainbird.set_rain_delay will need to be replaced with a call
to number.set_value. Additionally, the existing service call was updated to
require an integration entry configuration since it previously had undefined
behavior, so it is recommended to move directly to the new number service call.
(@allenporter – #85271 #86208) (documentation)

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

Recorder

The recorder’s default commit interval has been increased to 5 seconds to
reduce disk I/O and increase storage longevity.
As the history and logbook integrations both support live streaming, which
avoids the need to read the database after the initial sync, there is no
remaining core functionality that needs a lower commit interval.
The commit_interval can be adjusted
to a lower value in the event an integration has not been updated to watch for
events instead of reading the database and needs to read the database sooner.
(@bdraco – #86115) (documentation)

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

Renault

The previously deprecated renault.charge_start service has been removed.
Please use the dedicated start charge button entity to start the charge instead.
(@epenet – #86070) (documentation)

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

Sony Bravia TV

Sony Bravia TV media players no longer have fake (assumed) playing or paused
states, and those are replaced with the on state.
If you have automations or scripts that use the playing or paused state,
please update them to be compatible with this change.
(@Drafteed – #84885) (documentation)

The source_list no longer contains a list of applications and TV channels.
Apps and channels have been separated from the input list and moved
to the Media Browser.
If you have automations or scripts that use media_player.select_source to
switch apps or channels on the Bravia TV, the automations need to be
updated to use media_player.play_media service instead.
The options flow has been removed from the integration, as the only
configurable setting ignored_sources was no longer relevant
and incompatible with this change.
(@Drafteed – #85288) (documentation)

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

Spain electricity hourly pricing (PVPC)

The previously deprecated YAML configuration of the Spain electricity hourly
pricing (PVPC) integration has been removed.
Spain electricity hourly pricing (PVPC) 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.
(@azogue – #85614) (documentation)

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

Tado

The swing modes of Tado have changed. This is to standardize with other
integrations, and so it can support translations.

ON became the lowercase on
OFF became the lowercase off

If you used these swing modes in your automations or scripts, you might
need to adjust those to this change.
(@emontnemery – #84278) (documentation)

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

Twinkly

All extra state attributes from Twinkly light entities have been removed.
They mostly added information about the device,
not the actual light state itself.
(@frenck – #84986) (documentation)

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

Universal Devices ISY/IoX

ISY/IoX Variables have been moved from sensor entities to number entities;
the existing sensor entities are deprecated and will be removed in a future
release.
The isy994.set_variable service has been deprecated in favor of using
the number entities to directly set the variable values.
Please update any dashboards, scripts, and automations that may be using these
entities or service.
(@shbatm – #85511) (documentation)

Entities for INSTEON Aux Properties and Device Communication Errors have been
removed for nodes that are not the main (load) node.
On Level and Ramp Rate sensors have been removed for non-dimmable (non-light.)
devices. Only load devices receive communication error updates and only
dimmable devices support OL and RR commands.
The other entities were previously added but did not receive valid states from
the ISY or end-devices. These sensors were disabled by default.
(@shbatm – #85744) (documentation)

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

Uptime

The previously deprecated YAML configuration of the Uptime
integration has been removed.
Uptime 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 – #86292) (documentation)

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

Yamaha Network Receivers

When there is a connection error with the receiver, the device will now
go into an unavailable state until the connection has been restored.
(@sredna – #85018) (documentation)

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

Yamaha MusicCast

The raw state/option values of the Yamaha MusicCast zone sleep select entities
have been standardized to match Home Assistant core rules.
The following states/options have been changed

120 min, which now became 120_min
90 min, which now became 90_min
60 min, which now became 60_min
30 min, which now became 30_min

If you used those states/options directly in your automations, scripts,
or templates; you will need to adjust those to match these changes.
(@frenck – #85292) (documentation)

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

Zentralanstalt für Meteorologie und Geodynamik (ZAMG)

The previously deprecated YAML configuration of the Zentralanstalt für
Meteorologie und Geodynamik (ZAMG) integration has been removed.
Zentralanstalt für Meteorologie und Geodynamik (ZAMG) 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.
(@killer0071234 – #86113) (documentation)

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

Zigbee Home Automation

The AnalogInput sensor entities for certain Xiaomi plugs have been removed
from ZHA.
Properly working “Active power” and “Summation delivered” sensors are available
to replace the older entities. These newer sensor entities can also be used in
Home Assistant Energy dashboard.
(@TheJulianJES – #86261) (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:

Bluetooth updates for 2023.2 and later
Cover intents deprecated
Database schema v32 updates
Future proofing the Conversation integration
Sensor entity can now do rounding of numerical values

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

Almond has been removed. It is in a non-working state, and the services
have been shut down.
OpenALPR Local was previously deprecated and has now been removed. It
doesn’t work correctly and has no usage, according to our public analytics.

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 2023.2



Source link