diff --git a/source/_posts/2021-09-01-release-20219.markdown b/source/_posts/2021-09-01-release-20219.markdown index e913b003985..98e61fad6ab 100644 --- a/source/_posts/2021-09-01-release-20219.markdown +++ b/source/_posts/2021-09-01-release-20219.markdown @@ -14,9 +14,11 @@ og_image: /images/blog/2021-09/social.png feedback: true --- - - - + + + + + These are the beta release notes for Home Assistant Core 2021.9 (and is thus a work in progress). @@ -37,183 +39,310 @@ description (not title), so we can classify your issue correctly. Issues introduced in the beta are processed with priority. -- [Energy now supports batteries and gas!](#energy-now-supports-batteries-and-gas) + + +- [Home Energy Management updates](#home-energy-management-updates) + - [View energy usage over a period of time](#view-energy-usage-over-a-period-of-time) + - [Keeping track of your gas usage](#keeping-track-of-your-gas-usage) + - [Support for home batteries](#support-for-home-batteries) + - [Added support for many more integrations](#added-support-for-many-more-integrations) - [Long term statistics unlocked for all sensors](#long-term-statistics-unlocked-for-all-sensors) - [USB Discovery](#usb-discovery) -- [New template entities: Select and Number](#new-template-entities-select-and-number) +- [Z-Wave JS Updates](#z-wave-js-updates) +- [New template entities: Number and Select](#new-template-entities-number-and-select) - [New template functions for area's](#new-template-functions-for-areas) -- [Z-Wave JS Updates](#zwave-js-updates) - [Other noteworthy changes](#other-noteworthy-changes) - [New Integrations](#new-integrations) -- [New Platforms](#new-platforms) - [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [All changes](#all-changes) -## Energy now supports batteries and gas! +## Home Energy Management updates - +Last release, we [introduced the new Home Energy management features][energy] +into Home Assistant and we are happy to see you like it! -We have now added support for using your Home batteries with the energy -dashboard. If you are heating your home with Gas, than you are in luck too! -The Home Assistant energy management can now also monitor your gas usage. +We have seen quite a few people sharing their Energy dashboards on socials like +[Facebook][facebook] and [Twitter][twitter], which is really awesome. +Share a screenshot of your dashboard and your story too! - - +In this release, the story continues! Here is what we have in store for you: -Additionally, a LOT of energy related integrations have been been updated -this release to support all this new energy greatness! So, if you where -unlucky your integration didn't show up on the dashboard yet, as of this -release changes are they will. +[energy]: /blog/2021/08/04/home-energy-management/ +[facebook]: https://www.facebook.com/groups/HomeAssistant +[twitter]: https://twitter.com/home_assistant + +### View energy usage over a period of time + +The first iteration of the Energy Dashboard showed a single day at the time. +Great! But what if you want to see how you did this week? Or month? Heck, a +year even?! + +Well, now you can! In the top right of the dashboard, you can now select the +grouping period you want to see: Day, Week, Month or Year. + +

+Screenshot of the new Energy Dashboard period selection +Screenshot of the new Energy Dashboard period selection. +

+ +The arrow buttons allow you to browse through those periods. For example, when +selecting a period of a month to display, the arrow buttons will take +you a whole month back/forward in the view. + +### Keeping track of your gas usage + +In some countries, homes are connected to gas. The gas is being used to heat +water, cook and for heating the house. If you have a home that is connected to +gas, we have some great news for you! + +Maybe you noticed it already in the previous screenshot, as of this release, +we have added support for monitoring your gas usage. + +

+Screenshot of the new Energy Dashboard monitoring gas usage +Screenshot of the new Energy Dashboard monitoring gas usage. +

+ +In certain countries, the gas meters have a standardized way of reading +out the gas usage locally or provide this information via the electricity +meter. For example, in the Netherlands, Belgium and Luxembourg you could +use the [SlimmeLezer](https://www.zuidwijk.com/product/slimmelezer/) +to obtain your gas usage. + +### Support for home batteries + +Having solar panels is a great way to generate electricity to power your home. +However, where do you store energy generated by your solar panels that you +don't need right now? + +Well, for many, the solution resides in a, high capacity, home battery to store +electricity for use when the sun can't provide it (e.g., during the night). + +Numerous have requested this feature, and therefore we now have added support +for home batteries to the Home Assistant energy management. + +

+Screenshot of a home battery as part of the energy distribution +Screenshot of a home battery as part of the energy distribution. +

+ +### Added support for many more integrations + +When releasing a feature such as the Home Energy management, we understand you +want to use and play with it right away. And while we had prepared and updated +a lot of integrations to be ready when we first launched, there were still +many in need of an update. + +As a result, we have been flooded by requests to add support to virtually all +integrations that didn't had it yet... :) Many of those requests have been +fulfilled in this release. + +For example, the [Kostal Plenticore Solar Inverter](/integrations/kostal_plenticore), +[PVOutput](/integrations/pvoutput), [Fronius](/integrations/fronius), +[SolaX Power](/integrations/solax), [Growatt](/integrations/growatt_server), +[Solar-Log](/integrations/solar_log), [YouLess](/integrations/youless), +[Emoncms](/integrations/emoncms), [Modbus](/integrations/modbus), +and many more have added support for all the energy goodness. + +If you are a custom integration developer who wants to add support, be sure to +check out our [developer blog](https://developers.home-assistant.io/blog/2021/08/16/state_class_total/) +to catch up with the latest changes. ## Long term statistics unlocked for all sensors -In the previous release, we introduced long term statistics for sensors and -introduce a nice Lovelace card that goes with it. However, in the previous -release we only unlocked this feature for temperature, humidity, power and -energy related sensors. - - - +In the previous release, we [introduced long term statistics][statistics] +for sensors, including a beautiful Lovelace card that goes with it. However, +in the previous release we've limited this feature to temperature, +humidity, power and energy related sensors. As of this release, we unleashed the long term statistics for all sensors! -An integration still do need to provide Home Assistant with information -about the type of value it provides, and a lot of integrations have done that -at this point. - -For example, SpeedTest.net sensors can now be used with these. +

+Screenshot of a statistics graph showing the luminosity in the garden versus the front of my house +Screenshot of a statistics graph showing the luminosity in the garden versus the front of my house. +

+ +Long term statistics applies to all integrations that indicate their sensors +support those. Luckily a lot have already done so. + +[statistics]: /blog/2021/08/04/release-20218/#long-term-statistics ## USB Discovery -Thanks to [@bdraco], Home Assistant now can discover USB device and provide -integrations for those devices with configuration automatically. +Thanks to [@bdraco], Home Assistant can now discover USB devices and the +integrations that work that device. This makes setting up +things like Z-Wave or Zigbee with Home Assistant an actual breeze now! -For example, if you plug in your new Aeotec Z-Wave USB stick into your -machine running Home Assistant, it will discover it and Home Assistant will -notify you about it. With a single click you can than configure the Z-Wave JS -integration. +For example, if you plug in your new Nortek HubZ USB stick into the +machine running Home Assistant, it will discover and notify you about it. - - +

+Screenshot of a discovered USB device compatible with Z-Wave JS +Screenshot of a discovered USB device compatible with Z-Wave JS. +

-This works similar as with other integration that discover devices on, for -example, your network but now based on physical hardware plugged into the -USB port of your Home Assistant device. +Now it is just a single click on the "Configure" button to set up the Z-Wave JS +integration and done! Super nice! -Super cool! Thanks [@bdraco]! +Support for USB discovery has currently been added to the +[Z-Wave JS](/integrations/zwave_js) and [ZHA](/integrations/zha) integrations. -Added to ZHA, Z-Wave JS +## Z-Wave JS Updates -## New template entities: Select and Number +If you are a Z-Wave siren/doorbell owner, you probably know how frustrating it +was to wait for Home Assistant to add entity support for the Sound Switch CC +(Command Class). This is caused by the blazing fast speed the upstream Z-Wave JS +project is moving forward at; Often much faster than Home Assistant is able +to keep up with. -This is cool, this release we weclome two new platforms to the template -integrations: `select` and `number`. -Thanks to [@raman325] you can create your own! +It also might be that Home Assistant cannot (or is likely not to) support the +specific command class you care about; Nevertheless, that shouldn't stop you +from being able to create automations for those devices! - +In this release, we have introduced the new `zwave_js.value_updated` automation +trigger type which will allow you to trigger an automation off of any +Command Class value that Z-Wave JS supports! + +In order to leverage this trigger type in the UI, you will have to +use [device automations](/integrations/zwave_js#device-automations), +but if you are writing your automations in YAML, you can +[use the trigger directly](/integrations/zwave_js#zwave_jsvalue_updated-trigger). + +That's not all for Z-Wave JS integration, we have more to share! + +- Tired of your child flipping that switch that's fully automated? Use the new + `select` entity for the Protection Command Class to disable local access. +- Don't want to specify the tone and volume every time you activate your siren? + Now you have access to the default volume via a `number` entity and the + default tone via a `select` entity. +- We've made `zwave_js.*` services more flexible: They now support area IDs + and `group` entities as inputs! +- We've made basic CC values directly controllable by moving them from using + `sensor` entities to become `number` entities instead. + +## New template entities: Number and Select + +Yes! We have new platforms you can utilize using the template integration! + +Thanks to [@raman325] you can now template your own `select` and `number` +entities! This unlocks quite quite the potential for creating some advanced +user interfaces :) + +As an example says more than a thousand words, here are two examples that both +are based on a WLED LED strip. It can be used to extract features from +the WLED strip into their own entities. + +{% raw %} + +```yaml +# Example number entity that represents the effect speed on a WLED LED strip +# between 0 and 100%, translating it from an 0 to 255 scale. +template: + number: + - name: "Example number: WLED effect speed" + state: "{{ (( state_attr("light.wled", "Speed") / 255) * 100) | round }}" + min: 0 + max: 100 + set_value: + service: wled.effect + target: + entity_id: light.wled + data: + speed: "{{ (255 / 100) * value }}" +``` + +```yaml +# Example select entity that extracts effects from a light. +# When you change the selected option, the effect of the light changes. +template: + select: + - name: "Example select: WLED effect" + state: "{{ state_attr("light.wled", "effect") }}" + options: "{{ state_attr("light.wled", "effect_list") }}" + select_option: + service: light.turn_on + target: + entity_id: light.wled + data: + effect: "{{ option }}" +``` + +{% endraw %} + +Oh! And they can also be used with the new trigger templates! Check out +[the documentation](/integrations/template) for all options available. ## New template functions for area's -Two new template function have been added, that make working with area's -in YAML when using template a little bit easier. +Two new template functions have been added, making working with area's +in YAML (when using templating) a little bit easier. -- `area_id("value")` returns the area ID for a given value. The `value` van be +- `area_id("value")` returns the area ID for a given value. The `value` can be a device ID, entity ID, or area name. This function can also be used as a filter. - +{% raw %} + + ```yaml + example: "{{ area_id("light.living_room_tv") }}" + example: "{{ area_id("Garden Shed") }}" + example: "{{ trigger.entity_id | area_id }}" + ``` + +{% endraw %} - `area_name("value")` returns the area name for a given value. The `value` can be a device ID, entity ID, or area ID. This function can also be used as a filter. - +{% raw %} -## Z-Wave JS Updates + ```yaml + service: notify.frenck + data: + title: "Motion detected!" + message: >- + Motion has been detected in the {{ area_name(trigger.entity_id) }} area. + ``` -Some siren/doorbell owners will remember how frustrating it was to wait for Home -Assistant to add entity support for the Sound Switch CC. The `zwave-js` project will -likely move much faster than the Home Assistant integration at times, and we may not -ever add support for a Command Class you care about, but that shouldn't stop you from -being able to create automations for those devices. +{% endraw %} -In this release, we have introduced the new `zwave_js.value_updated` automation trigger -type which will allow you to trigger an automation off of any Command Class value that -`zwave-js` supports! In order to leverage this trigger type in the UI, you will have to -use [device automations](/integrations/zwave_js#device-automations), but if you are -writing your automations in YAML, you can -[use the trigger directly](/integrations/zwave_js#zwave_jsvalue_updated-trigger). - -Additional `zwave_js` changes in this release: -- Tired of your child flipping that switch that's fully automated? Use the new `select` -entity for the Protection Command Class to disable local access -- Don't want to specify the tone and volume every time you activate your siren? Now you -have access to the default volume via a `number` entity and the default tone via a -`select` entity -- We made `zwave_js` services more flexible: they now support area ID's and `group` -entities as inputs -- We made Basic CC values controllable by moving them from the `sensor` platform to the -`number` platform. +Thanks [@raman325]! ## Other noteworthy changes There is much more juice in this release; here are some of the other noteworthy changes this release: - - - -- Camera image scaling by [@bdraco]? -- System Bridge v2.3.0+ - Data from WebSocket ([@timmo001] - [#53443]) ([system_bridge docs]) -- Add light transition for Shelly integration ([@bieniu] - [#54327]) ([shelly docs]) -- Yeelight local push updates ([@starkillerOG] - [#51160]) ([yeelight docs]) -- Add support for Swedish smart electricity meters to DSMR ([@emontnemery] - [#54630]) ([dsmr docs]) -- Yamaha Musiccast Media Browser feature ([@micha91] - [#54864]) ([yamaha_musiccast docs]) -- Add Rainforest Eagle tests and price ([@balloob] - [#54887]) ([rainforest_eagle docs]) -- Compile missing statistics ([@emontnemery] - [#54690]) ([recorder docs]) -- Add support for area ID in zwave_js service calls ([@raman325] - [#54940]) ([zwave_js docs]) -- Add support for Google Assistant's LocatorTrait for vacuum cleaners ([@giannello] - [#55015]) ([google_assistant docs]) -- Add service to clear completed shoppinglist items ([@GrumpyMeow] - [#55032]) ([shopping_list docs]) -- Support device triggers in HomeKit ([@bdraco] - [#53869]) ([homekit docs]) -- Sonos add bass & treble EQ option ([@Tigger2014] - [#53978]) ([sonos docs]) -- Add "cron patterns" to define utility_meter cycles ([@dgomes] - [#46795]) ([utility_meter docs]) -- Add services to bond to start and stop increase/decrease brightness ([@bdraco] - [#55006]) ([bond docs]) - -A bunch of integration that now support long term / energy. Some of these need -to be mentioned in the first paragraph about the energy changes or in the -paragraph about the unlocked long term statistics for sensors. - -- Add state class measurement to all suitable sensors on Speedtest.net ([@mib1185] - [#53693]) ([speedtestdotnet docs]) -- Add support for jammed status to SimpliSafe locks ([@bachya] - [#54006]) ([simplisafe docs]) (breaking-change) -- Add statistics support for the PVOutput sensor ([@zoeisnowooze] - [#54149]) ([pvoutput docs]) -- Add state class and last reset in kostal_plenticore ([@gianklug] - [#54084]) ([kostal_plenticore docs]) -- OVO Energy Long-term Statistics ([@timmo001] - [#54157]) ([ovo_energy docs]) -- Refactor Fronius sensor device class and long term statistics ([@nielstron] - [#54185]) ([fronius docs]) -- Add state_class attribute to keba integration ([@carstenschroeder] - [#54271]) ([keba docs]) -- Use state class total increasing for TPLink smart plugs ([@mib1185] - [#54723]) ([tplink docs]) -- Update deCONZ to use new state classes ([@frenck] - [#54729]) ([deconz docs]) -- Add state classes to Vallox sensors ([@andre-richter] - [#54297]) ([vallox docs]) -- Energy support for Solax inverters ([@ppetru] - [#54654]) ([solax docs]) -- Rfxtrx,STATE_CLASS_TOTAL_INCREASING ([@Danielhiversen] - [#54776]) ([rfxtrx docs]) -- Add Gas device class to DSMR Reader ([@frenck] - [#54748]) ([dsmr_reader docs]) -- Add energy management support to Growatt server integration ([@maschel] - [#54174]) ([growatt_server docs]) -- Add growatt total state_class for storage ([@JasperPlant] - [#54913]) ([growatt_server docs]) -- Extract smappee switch energy attributes into sensors ([@bsmappee] - [#54329]) ([smappee docs]) (breaking-change) -- Add state_class to relevant sensors in Danfoss Air ([@JonasPed] - [#54847]) ([danfoss_air docs]) -- Add state_class and device_class to Solarlog platform ([@Ernst79] - [#53946]) ([solarlog docs]) -- Update YouLess integration for long time measurements ([@gjong] - [#54767]) ([youless docs]) -- SMA: Add statistics support for power sensors ([@andre-richter] - [#54422]) ([sma docs]) -- Add statistics for emoncms power and energy feeds ([@lukewaite] - [#55109]) ([emoncms docs]) -- Add configurable `state_class` to Modbus sensors ([@farmio] - [#54103]) ([modbus docs]) +- [@balloob] added a lot more configuration validation to the energy + configuratioN UI and added more warning/error messages. [@ludeeus] made + them look good by adding a beautiful new styling for these kind of messages. +- Home Assistant offline and missed generating its energy/long statistics? + Not anymore! Home Assistant will now catch up on start, thanks [@emontnemery]! +- Thanks to [@bdraco], camera images can now be scaled to a resolution that + fits the device/screen you are looking at; Additionally, they only update + when visible. This makes cameras usable in any bandwidth situation. +- The Shelly integration now supports transitions for lights! Thanks [@bieniu]! +- Yeelight now supports local push (instead of polling), awesome [@starkillerOG]! +- [@emontnemery] upgraded DSMR to support Swedish smart energy meters! Nice! +- For Yamaha MusicCast, [@micha91] has unlocked the Media Browser features! +- The Rainforest Eagle will now provide pricing data if that is available, + thanks [@balloob]! +- [@giannello] added the ability to ask your Google Home where your vacuum + cleaner is :) +- If you use the shopping list feature of Home Assistant, you can now remove + all completed items at once using a service call. Thanks, [@GrumpyMeow]! +- [@bdraco] Added a new advanced feature for HomeKit, allowing to forward device + events to HomeKit, unlocking the ability to trigger HomeKit automations or + scenes. +- Thanks to [@ludeeus], we can now use different brand images in the UI when + it is in dark mode. +- If you have a Sonos speaker, you can now modify the bass & treble level + using a service call, thanks [@Tigger2014]! +- Utility Meter cycles can are now super flexible with the new cron patterns + option, nice [@dgomes]! +- Bond now provides new service to start/stop increasing/decreasing the + brightness of a light. Thanks [@bdraco]! ## New Integrations @@ -225,18 +354,6 @@ We welcome the following new integrations this release: - [Tractive][tractive docs], added by [@zhulik] - [USB Discovery][usb docs], added by [@bdraco] -## New Platforms - -The following integration got support for a new platform: - - - -- Add `binary_sensor` platform for Xiaomi Miio integration ([@bieniu] - [#54096]) ([xiaomi_miio docs]) (new-platform) -- Add light platform to MyQ ([@ehendrix23] - [#54611]) ([myq docs]) (new-platform) -- Add binary sensor platform to Renault integration ([@epenet] - [#54750]) ([renault docs]) (new-platform) -- Add select platform to template integration ([@raman325] - [#54835]) ([template docs]) (new-platform) -- Add number platform to template integration ([@raman325] - [#54789]) ([template docs]) (new-platform) - ## Integrations now available to set up from the UI The following integrations are now available via the Home Assistant UI: @@ -260,6 +377,102 @@ 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. +{% details "1-Wire" %} + +The previously deprecated YAML configuration of the 1-Wire integration has been removed. + +1-Wire 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. + +([@epenet] - [#53728]) ([onewire docs]) + +{% enddetails %} + +{% details "AVM FRITZ!Box Tools" %} + +The attributes of the switches provided by AVM FRITZ!Box Tools have been adjusted +to match the naming rules and schema of Home Assistant. + +If you relied on one of these attributes in your automation or scripts, you'll +need to adopt to this change. + +([@AaronDavidSchneider] - [#54842]) ([fritz docs]) + +{% enddetails %} + +{% details "DSMR" %} + +The unit of measurement of gas sensors for DSMR has changed from `m3` to `m³`. + +([@bramkragten] - [#54110]) ([dsmr docs]) + +{% enddetails %} + +{% details "Epson" %} + +The previously deprecated YAML configuration of the Epson integration has been removed. + +Epson 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. + +([@pszafer] - [#55045]) ([epson docs]) + +{% enddetails %} + +{% details "Growatt" %} + +The previously deprecated YAML configuration of the Growatt integration has been removed. + +Growatt 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] - [#54325]) ([growatt_server docs]) + +{% enddetails %} + +{% details "HomeKit" %} + +The underlying HomeKit protocol version has changed from version 1.0 to version 1.1. + +Cameras with motion sensors and some other accessories may need to be reset using +the `homekit.reset_accessory` service or unpaired and paired again. + +If after unpairing with your iOS the QR code does not show, the pairings can +manually be removed with the `homekit.unpair` service using the Developer Tools. + +([@bdraco] - [#53780]) ([homekit docs]) + +{% enddetails %} + +{% details "HomeKit Controller" %} + +A future release (currently scheduled for 2021.12.0) will remove the (deprecated) +air quality platfrom from the HomeKit Controller integration. + +Starting from this release the air quality values have been broken out as their +own sensors, making them easier to incorporate in your dashboard widgets, +graphs and automations. + +If you relied on an air quality entity (provided by the HomeKit Controller +integration) in your automation or scripts, you'll need to adopt to this change. + +([@Jc2k] - [#54673]) ([homekit_controller docs]) + +{% enddetails %} + +{% details "IKEA TRÅDFRI" %} + +The legacy code, which imported hosts from a JSON file have been removed. +If you relied on that, please follow the instructions to setup the hosts +(can be detected automatically). + +To avoid this first upgrade to 2021.8.x first which will (which will +automatically import) and then upgrade to latest release. + +([@janiversen] - [#54452]) ([tradfri docs]) + +{% enddetails %} + {% details "Lutron" %} If (and only if) you currently attempt to make use of the (previously ambiguous) @@ -271,14 +484,131 @@ they are not very useful. {% enddetails %} -{% details "1-Wire" %} +{% details "MQTT" %} -The previously deprecated YAML configuration of the 1-Wire integration has been removed. +MQTT fan no longer supports Support for legacy speeds (OFF, LOW, MEDIUM, HIGH). +With release 2021.3 the support for legacy speeds was announced to be removed +after a quater (2021.7). -1-Wire 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. +With removing the legacy speeds support, integrations that rely on MQTT fan +platform that still use legacy speeds would break because they can not be +setup if deprecated attributes are used. This includes the MQTT auto discovery. -([@epenet] - [#53728]) ([onewire docs]) +To prevent that these integration will fail to setup, the deprecated attributes +listed here are still allowed in the config: + +- `payload_high_speed` +- `payload_low_speed` +- `payload_medium_speed` +- `speed_command_topic` +- `speeds` +- `speed_state_topic` +- `speed_value_template` + +([@jbouwh] - [#54768]) ([mqtt docs]) + +{% enddetails %} + +{% details "MySensors" %} + +MySensors lights no longer supports deprecated `white_value`, use `rgbw_color` +instead. + +([@emontnemery] - [#52068]) ([mysensors docs]) + +{% enddetails %} + +{% details "Nanoleaf" %} + +The Nanoleaf integration migrated to configuration via the UI. Configuring +Nanoleaf 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. + +If you have configured Nanoleaf with the discovery integration: You can remove +`discovery:` from your YAML configuration if you only used it for Nanoleaf. +The `.nanoleaf.conf` file in your configuration folder is no longer used, +you can delete it after upgrading. + +([@milanmeu] - [#52199]) ([nanoleaf docs]) + +{% enddetails %} + +{% details "Nmap Tracker" %} + +The Nmap Tracker integration migrated to configuration via the UI. Configuring +Nmap Tracker 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. + +To disable creation of new entities, use the the system option to disable new +entities for the config entry, and manually enable entities as needed. + +([@bdraco] - [#54715]) ([nmap_tracker docs]) + +{% enddetails %} + +{% details "OVO Energy" %} + +These attributes have been removed and replaced with full sensors for both +gas and electricity: + +- `start_time` +- `end_time` + +If you relied on one of these attributes in your automation or scripts, you'll +need to adopt to this change. + +([@timmo001] - [#54952]) ([ovo_energy docs]) + +{% enddetails %} + +{% details "Rainforest Eagle-200" %} + +The Rainforest Eagle-200 integration migrated to configuration via the UI. +Configuring Rainforest Eagle-200 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. + +([@balloob] - [#54846]) ([rainforest_eagle docs]) + +{% enddetails %} + +{% details "SimpliSafe" %} + +SimpliSafe locks no longer have a `jammed` attribute; instead, when jammed, +they will show a `jammed` state. + +If you are currently using the `jammed` attribute in your automation or scripts, +you'll need to adopt to this change. + +([@bachya] - [#54006]) ([simplisafe docs]) + +{% enddetails %} + +{% details "Smappee" %} + +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. + +([@bsmappee] - [#54329]) ([smappee docs]) + +{% enddetails %} + +{% details "Solar-Log" %} + +The `Watt-peak` unit of measurement has changed to `Watt`. + +([@Ernst79] - [#55110]) ([solarlog docs]) {% enddetails %} @@ -342,17 +672,34 @@ data: {% enddetails %} -{% details "HomeKit" %} +{% details "Tesla Powerwall" %} -The underlying HomeKit protocol version has changed from version 1.0 to version 1.1. +The Tesla Powerwall attributes for `energy_exported_(in_kW)` and +`energy_imported_(in_kW)` have been converted to their own energy sensors. -Cameras with motion sensors and some other accessories may need to be reset using -the `homekit.reset_accessory` service or unpaired and paired again. +If you relied on those attributes in your automation or scripts, you'll need +to adopt to this change. -If after unpairing with your iOS the QR code does not show, the pairings can -manually be removed with the `homekit.unpair` service using the Developer Tools. +([@bdraco] - [#54018]) ([powerwall docs]) -([@bdraco] - [#53780]) ([homekit docs]) +{% enddetails %} + +{% details "Toon" %} + +The unit of measurement of gas and water sensors for Toon has changed from `m3` to `m³`. + +([@bramkragten] - [#54110]) ([toon docs]) + +{% enddetails %} + +{% details "UpCloud" %} + +The previously deprecated YAML configuration of the UpCloud integration has been removed. + +UpCloud 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. + +([@scop] - [#54516]) ([upcloud docs]) {% enddetails %} @@ -369,135 +716,6 @@ and thus can be safely removed from your YAML configuration after upgrading. {% enddetails %} -{% details "SimpliSafe" %} - -SimpliSafe locks no longer have a `jammed` attribute; instead, when jammed, -they will show a `jammed` state. - -If you are currently using the `jammed` attribute in your automation or scripts, -you'll need to adopt to this change. - -([@bachya] - [#54006]) ([simplisafe docs]) - -{% enddetails %} - -{% details "Growatt" %} - -The previously deprecated YAML configuration of the Growatt integration has been removed. - -Growatt 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] - [#54325]) ([growatt_server docs]) - -{% enddetails %} - -{% details "Tesla Powerwall" %} - -The Tesla Powerwall attributes for `energy_exported_(in_kW)` and -`energy_imported_(in_kW)` have been converted to their own energy sensors. - -If you relied on those attributes in your automation or scripts, you'll need -to adopt to this change. - -([@bdraco] - [#54018]) ([powerwall docs]) - -{% enddetails %} - -{% details "Custom integrations: Cameras" %} - -This breaking change is only relevant to custom integration authors! - -The function signature for `async_camera_image` and `camera_image` has changed -to include a width and height. - -```py - async def async_camera_image( - self, width: int | None = None, height: int | None = None - ) -> bytes | None: -``` - -The goal of the change is to reduce the overhead of sending large images that -will only be displayed as small images as this can quickly consume hundred of -megabytes of bandwidth / mobile data allocation. - -Scaling should be done on a best effort basis and is not a strict requirement -as the existing behavior of falling back to scaling at the display layer is -preserved. - -- Integrations should pass on the width and height if the underlying - camera is capable of scaling the image. - -- Integrations may choose to ignore the height parameter in order to - preserve aspect ratio - -- If the integration cannot scale the image and returns a jpeg image, it will - automatically be scaled by the camera integration when requested. - -([@bdraco] - [#53835]) - -{% enddetails %} - -{% details "Custom integrations: Sensors" %} - -This breaking change is only relevant to custom integration authors! - -Although not a breaking change from a user's perspective, this is a significant -change from a developer's perspective. - -Temperature conversions are moving from the `Entity` base class to the -`SensorEntity` base class. - -Additionally, we have two new properties, `native_value` (which replaces `state`) -and `native_unit_of_measurement` which replaces `unit_of_measurement`. - -Read all about it in the developer blog: - - - -([@emontnemery] - [#48261]) ([abode docs]) ([sensor docs]) - ----- - -Additionally, a new sensor state class has been introduced: `total_increasing`. - -This releases the `measurement` that was used in conjunction with the -`last_reset` attribute. For more information about his can be found in the -developer blog about it: - - - -{% enddetails %} - -{% details "IKEA TRÅDFRI" %} - -The legacy code, which imported hosts from a JSON file have been removed. -If you relied on that, please follow the instructions to setup the hosts -(can be detected automatically). - -To avoid this first upgrade to 2021.8.x first which will (which will -automatically import) and then upgrade to latest release. - -([@janiversen] - [#54452]) ([tradfri docs]) - -{% enddetails %} - -{% details "Toon" %} - -The unit of measurement of gas and water sensors for Toon has changed from `m3` to `m³`. - -([@bramkragten] - [#54110]) ([toon docs]) - -{% enddetails %} - -{% details "DSMR" %} - -The unit of measurement of gas sensors for DSMR has changed from `m3` to `m³`. - -([@bramkragten] - [#54110]) ([dsmr docs]) - -{% enddetails %} - {% details "Wink" %} The Wink integration has been deprecated and is pending removal in @@ -511,17 +729,6 @@ can be obtained. This makes it impossible to use this integration. {% enddetails %} -{% details "UpCloud" %} - -The previously deprecated YAML configuration of the UpCloud integration has been removed. - -UpCloud 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. - -([@scop] - [#54516]) ([upcloud docs]) - -{% enddetails %} - {% details "Xiaomi Miio" %} The following fan entity attributes `temperature`, `humidity`, `aqi`, @@ -614,144 +821,67 @@ you were trying to use for your condition. {% enddetails %} -{% details "Nmap Tracker" %} +{% details "Custom integrations: Cameras" %} -The Nmap Tracker integration migrated to configuration via the UI. Configuring -Nmap Tracker via YAML configuration has been deprecated and will be removed in a -future Home Assistant release. +This breaking change is only relevant to custom integration authors! -Your existing YAML configuration is automatically imported on upgrade to this release; -and thus can be safely removed from your YAML configuration after upgrading. +The function signature for `async_camera_image` and `camera_image` has changed +to include a width and height. -To disable creation of new entities, use the the system option to disable new -entities for the config entry, and manually enable entities as needed. +```py + async def async_camera_image( + self, width: int | None = None, height: int | None = None + ) -> bytes | None: +``` -([@bdraco] - [#54715]) ([nmap_tracker docs]) +The goal of the change is to reduce the overhead of sending large images that +will only be displayed as small images as this can quickly consume hundred of +megabytes of bandwidth / mobile data allocation. +Scaling should be done on a best effort basis and is not a strict requirement +as the existing behavior of falling back to scaling at the display layer is +preserved. + +- Integrations should pass on the width and height if the underlying + camera is capable of scaling the image. + +- Integrations may choose to ignore the height parameter in order to + preserve aspect ratio + +- If the integration cannot scale the image and returns a jpeg image, it will + automatically be scaled by the camera integration when requested. + +([@bdraco] - [#53835]) {% enddetails %} -{% details "HomeKit Controller" %} +{% details "Custom integrations: Sensors" %} -A future release (currently scheduled for 2021.12.0) will remove the (deprecated) -air quality platfrom from the HomeKit Controller integration. +This breaking change is only relevant to custom integration authors! -Starting from this release the air quality values have been broken out as their -own sensors, making them easier to incorporate in your dashboard widgets, -graphs and automations. +Although not a breaking change from a user's perspective, this is a significant +change from a developer's perspective. -If you relied on an air quality entity (provided by the HomeKit Controller -integration) in your automation or scripts, you'll need to adopt to this change. +Temperature conversions are moving from the `Entity` base class to the +`SensorEntity` base class. -([@Jc2k] - [#54673]) ([homekit_controller docs]) +Additionally, we have two new properties, `native_value` (which replaces `state`) +and `native_unit_of_measurement` which replaces `unit_of_measurement`. -{% enddetails %} +Read all about it in the developer blog: -{% details "Smappee" %} + -The power and energy attributes from switch entities have been removed and -replaced by sensors. +([@emontnemery] - [#48261]) ([abode docs]) ([sensor docs]) -If you relied on these attributes in your automations, scripts or Lovelace -dashboards, you'll need to update your configuration to match this change. +---- -([@bsmappee] - [#54329]) ([smappee docs]) +Additionally, a new sensor state class has been introduced: `total_increasing`. -{% enddetails %} +This releases the `measurement` that was used in conjunction with the +`last_reset` attribute. For more information about his can be found in the +developer blog about it: -{% details "Epson" %} - -The previously deprecated YAML configuration of the Epson integration has been removed. - -Epson 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. - -([@pszafer] - [#55045]) ([epson docs]) -{% enddetails %} - -{% details "Solar-Log" %} - -The `Watt-peak` unit of measurement has changed to `Watt`. - -([@Ernst79] - [#55110]) ([solarlog docs]) - -{% enddetails %} - -{% details "MQTT" %} - -MQTT fan no longer supports Support for legacy speeds (OFF, LOW, MEDIUM, HIGH). -With release 2021.3 the support for legacy speeds was announced to be removed -after a quater (2021.7). - -With removing the legacy speeds support, integrations that rely on MQTT fan -platform that still use legacy speeds would break because they can not be -setup if deprecated attributes are used. This includes the MQTT auto discovery. - -To prevent that these integration will fail to setup, the deprecated attributes -listed here are still allowed in the config: - -- `payload_high_speed` -- `payload_low_speed` -- `payload_medium_speed` -- `speed_command_topic` -- `speeds` -- `speed_state_topic` -- `speed_value_template` - -([@jbouwh] - [#54768]) ([mqtt docs]) - -{% enddetails %} - -{% details "OVO Energy" %} - -These attributes have been removed and replaced with full sensors for both -gas and electricity: - -- `start_time` -- `end_time` - -If you relied on one of these attributes in your automation or scripts, you'll -need to adopt to this change. - -([@timmo001] - [#54952]) ([ovo_energy docs]) - -{% enddetails %} - -{% details "AVM FRITZ!Box Tools" %} - -The attributes of the switches provided by AVM FRITZ!Box Tools have been adjusted -to match the naming rules and schema of Home Assistant. - -If you relied on one of these attributes in your automation or scripts, you'll -need to adopt to this change. - -([@AaronDavidSchneider] - [#54842]) ([fritz docs]) - -{% enddetails %} - -{% details "Lorem" %} - -The Nanoleaf integration migrated to configuration via the UI. Configuring -Nanoleaf 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. - -If you have configured Nanoleaf with the discovery integration: You can remove -`discovery:` from your YAML configuration if you only used it for Nanoleaf. -The `.nanoleaf.conf` file in your configuration folder is no longer used, -you can delete it after upgrading. - -([@milanmeu] - [#52199]) ([nanoleaf docs]) - -{% enddetails %} - -{% details "MySensors" %} - -MySensors lights no longer supports deprecated `white_value`, use `rgbw_color` -instead. - -([@emontnemery] - [#52068]) ([mysensors docs]) + {% enddetails %} @@ -1102,7 +1232,7 @@ instead. - Add support for Swedish smart electricity meters to DSMR ([@emontnemery] - [#54630]) ([dsmr docs]) - Minor cleanup of SensorEntity ([@emontnemery] - [#54624]) ([sensor docs]) - Add missing id to yeelights that were setup manually ([@bdraco] - [#54855]) ([yeelight docs]) -- Add config flow to Rainforest EAGLE-200 ([@balloob] - [#54846]) ([rainforest_eagle docs]) +- Add config flow to Rainforest EAGLE-200 ([@balloob] - [#54846]) ([rainforest_eagle docs]) (breaking-change) - Yamaha Musiccast Media Browser feature ([@micha91] - [#54864]) ([yamaha_musiccast docs]) - Add Rainforest Eagle tests and price ([@balloob] - [#54887]) ([rainforest_eagle docs]) - Improve device action type hinting ([@scop] - [#54850]) @@ -1373,6 +1503,19 @@ instead. - Add Nanoleaf reauth flow ([@milanmeu] - [#55217]) ([nanoleaf docs]) - Convert color temperature to visible color in lights ([@bdraco] - [#55219]) ([light docs]) - Add services to bond to start and stop increase/decrease brightness ([@bdraco] - [#55006]) ([bond docs]) +- Set up polling task with subscriptions in Sonos ([@jjlawren] - [#54355]) ([sonos docs]) (beta fix) +- Remove temperature conversion - tado ([@cdce8p] - [#55231]) ([tado docs]) (beta fix) +- Limit USB discovery to specific manufacturer/description/serial_number matches ([@bdraco] - [#55236]) ([zha docs]) ([usb docs]) (beta fix) +- Only warn once per entity when the async_camera_image signature needs to be updated ([@bdraco] - [#55238]) ([camera docs]) (beta fix) +- Defer zha auto configure probe until after clicking configure ([@bdraco] - [#55239]) ([zha docs]) (beta fix) +- Bump up ZHA dependencies ([@Adminiuga] - [#55242]) ([zha docs]) (beta fix) +- Abort zha usb discovery if deconz is setup ([@bdraco] - [#55245]) ([zha docs]) (beta fix) +- Only postfix image name for container ([@ludeeus] - [#55248]) ([version docs]) (beta fix) +- Fix double precision float for postgresql ([@emontnemery] - [#55249]) ([recorder docs]) (beta fix) +- Fix MQTT add-on discovery to be ignorable ([@frenck] - [#55250]) ([mqtt docs]) (beta fix) +- Warn if a sensor with state_class_total has a decreasing value twice ([@emontnemery] - [#55251]) ([sensor docs]) (beta fix) +- Don't create DSL sensor for devices that don't support DSL ([@TheZoker] - [#55269]) ([fritz docs]) (beta fix) +- Fix AttributeError for non-MIOT Xiaomi Miio purifiers ([@bieniu] - [#55271]) ([xiaomi_miio docs]) (beta fix) {% enddetails %} @@ -1563,6 +1706,7 @@ instead. [#54329]: https://github.com/home-assistant/core/pull/54329 [#54336]: https://github.com/home-assistant/core/pull/54336 [#54343]: https://github.com/home-assistant/core/pull/54343 +[#54355]: https://github.com/home-assistant/core/pull/54355 [#54359]: https://github.com/home-assistant/core/pull/54359 [#54360]: https://github.com/home-assistant/core/pull/54360 [#54362]: https://github.com/home-assistant/core/pull/54362 @@ -1990,6 +2134,18 @@ instead. [#55217]: https://github.com/home-assistant/core/pull/55217 [#55219]: https://github.com/home-assistant/core/pull/55219 [#55221]: https://github.com/home-assistant/core/pull/55221 +[#55231]: https://github.com/home-assistant/core/pull/55231 +[#55236]: https://github.com/home-assistant/core/pull/55236 +[#55238]: https://github.com/home-assistant/core/pull/55238 +[#55239]: https://github.com/home-assistant/core/pull/55239 +[#55242]: https://github.com/home-assistant/core/pull/55242 +[#55245]: https://github.com/home-assistant/core/pull/55245 +[#55248]: https://github.com/home-assistant/core/pull/55248 +[#55249]: https://github.com/home-assistant/core/pull/55249 +[#55250]: https://github.com/home-assistant/core/pull/55250 +[#55251]: https://github.com/home-assistant/core/pull/55251 +[#55269]: https://github.com/home-assistant/core/pull/55269 +[#55271]: https://github.com/home-assistant/core/pull/55271 [@AaronDavidSchneider]: https://github.com/AaronDavidSchneider [@Adminiuga]: https://github.com/Adminiuga [@Bert-R]: https://github.com/Bert-R @@ -2015,6 +2171,7 @@ instead. [@StevenLooman]: https://github.com/StevenLooman [@TastyPi]: https://github.com/TastyPi [@TheJulianJES]: https://github.com/TheJulianJES +[@TheZoker]: https://github.com/TheZoker [@Tigger2014]: https://github.com/Tigger2014 [@TomBrien]: https://github.com/TomBrien [@ViViDboarder]: https://github.com/ViViDboarder diff --git a/source/images/blog/2021-09/energy-battery.gif b/source/images/blog/2021-09/energy-battery.gif new file mode 100644 index 00000000000..789b766e7c7 Binary files /dev/null and b/source/images/blog/2021-09/energy-battery.gif differ diff --git a/source/images/blog/2021-09/energy-gas.png b/source/images/blog/2021-09/energy-gas.png new file mode 100644 index 00000000000..ea98cce03dd Binary files /dev/null and b/source/images/blog/2021-09/energy-gas.png differ diff --git a/source/images/blog/2021-09/energy-month.png b/source/images/blog/2021-09/energy-month.png new file mode 100644 index 00000000000..63dfff2e2d2 Binary files /dev/null and b/source/images/blog/2021-09/energy-month.png differ diff --git a/source/images/blog/2021-09/social.png b/source/images/blog/2021-09/social.png new file mode 100644 index 00000000000..88bc55e9c2e Binary files /dev/null and b/source/images/blog/2021-09/social.png differ diff --git a/source/images/blog/2021-09/statistics-for-all.png b/source/images/blog/2021-09/statistics-for-all.png new file mode 100644 index 00000000000..3a5a29d9d09 Binary files /dev/null and b/source/images/blog/2021-09/statistics-for-all.png differ diff --git a/source/images/blog/2021-09/usb-zwavejs.png b/source/images/blog/2021-09/usb-zwavejs.png new file mode 100644 index 00000000000..a1464a0be3e Binary files /dev/null and b/source/images/blog/2021-09/usb-zwavejs.png differ