diff --git a/_config.yml b/_config.yml index dbd4d2013af..fdf276cd2c0 100644 --- a/_config.yml +++ b/_config.yml @@ -100,9 +100,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 113 -current_patch_version: 3 -date_released: 2020-08-01 +current_minor_version: 114 +current_patch_version: 0 +date_released: 2020-08-12 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2020-08-12-release-114.markdown b/source/_posts/2020-08-12-release-114.markdown new file mode 100644 index 00000000000..518c9652041 --- /dev/null +++ b/source/_posts/2020-08-12-release-114.markdown @@ -0,0 +1,1109 @@ +--- +layout: post +title: "0.114: Beta release notes" +description: "Beta release notes" +date: 2020-08-05 00:00:00 +date_formatted: "August 12, 2020" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2020-08-0.114/social.png +--- + + + +Beta release notes for 0.114.0 + +Please be sure to report issues on our GitHub issue tracker: + +- Issues with core & integrations: +- Issues with the frontend/UI: + +Issues introduced in this beta, are generally picked up with priority. + +## Introduction + +Ooh boy, time flew this release cycle; it is time for 0.114 already! + +Personally, I'm hardly even done implementing all automation features added +in the previous release. 😅 + +Ever since our Lovelace UI started as a beta, back in 2018, one of the most +requested features - arguably - is a dark mode. No wonder, as a dark mode is +added to software everywhere nowadays. + +This release adds dark mode! [@bramkragten] didn't stop there and added +color pickers for the main theme colors as well. I looked forward having it, +an easy way of having a bit of theming, without the need for themes. + +This is by far the most noticeable feature of this release, mainly because it +is immediately apparent after the upgrade. + +Meanwhile, the beta Open Z-Wave integration picks up speed in terms of +contributions, reports, fixes and improvements. I've been using it already, +and I love it. My Z-Wave network has never been better and more stable. +If you haven't tried it yet, I would highly recommend doing so. There is a nice +[community guide](https://community.home-assistant.io/t/how-to-test-the-ozw-beta-without-fully-switching-over/211282) +on how to test it without switching over. + +Besides the listing below, 0.114 may feel a bit "empty", however, it isn't. +It is packed with little things and fixes. The "All changes" section is +definitely worth a look this release. + +Enjoy the release. + +../Frenck + +## Dark mode and theme color pickers + +We now have official support for dark mode. 🎉 + +We detect if your device is in dark mode; if that is the case, our default theme +will go dark. You can override the automatic switching between dark and light +theme in your profile. + +Furthermore, you can now also select the primary and accent color for the +default theme. We calculate all other colors to make sure everything matches +and is readable. + +

+Screenshot of the new dark mode theme settings +Screenshot of the new dark mode and theme settings. +

+ +So if you upgrade to Home Assistant 0.114, you are using the default theme +and your device is set to a dark mode; Please be aware that after upgrading, +you will get a dark theme by default in that case. + +Also, when picking colors, make sure you choose a primary color that is +readable on both a light and dark background. For now, this is just a local +setting and has to be applied to every device. + +For custom themes, there is a new option on the `set_theme` service call, +`mode: 'dark'`; this allows to set a theme that will be used when your device +is in dark mode. + +Lastly, when using the `set_theme` service, the settings are now persistent +across restarts. So if you have an automation that calls `set_theme` on startup, +you don't need it anymore. 😉 + +## Automation & Scripts updates + +In [Home Assistant 0.113](/blog/2020/07/22/release-113/) we added tons of new +features to automations and scripts. This release contains some fixes for issues +discovered and reported, but also adds some smaller new features to extend it +even more. + +First of all, the repeat and choose actions are now available when creating +automations or scripts via the UI. + +

+Screenshot of the new automation features available in the UI +Screenshot of the new automation features available in the UI. +

+ +Sub-second precision has been extended and is now available in all +time-related notations. For example, you can now use `2.5` seconds/hours/minutes +or even use it in full time notations: `23:59:59.999`. + +The `automation.turn_off` service now accepts a `stop_actions` data parameter. +By default, when turning off an automation, any currently running automation +will be stopped. This new option allows you to turn off an automation +and optionally leave any currently active actions running. + +Lastly, a small shortcut has been added to the `time` trigger, which now accepts +multiple time values. + +```yaml +automation: + - alias: Example with multiple time values in a single time trigger + trigger: + - platform: time + at: + - "05:00:00" + - "06:00:00" + - "10:00:00" + action: + choose: + ... +``` + +### Open Z-Wave (beta) + +The Open Z-Wave (beta) integration is coming along nicely and others are +started helping out as well! A shout out to [@firstof9], [@RobBie1221] and +[@tradiuz] for jumping in and helping out this release. + +Some additional information is added to the UI for Open Z-Wave, you can now +see device information right from the device page and shows information like +the Z-Wave Node ID and other information about your Z-Wave device. + + + +Furthermore, RGB color support has been added to lights, and bugs have been +fixed using color temperatures and dimming. 💡 + +Lastly, unnecessary polling of devices has been reduced. + +## Yet another round of performance improvements + +Did we tell you that [@bdraco] is unstoppable in his saga to improve the +performance and stability of Home Assistant? His train just keeps going! + +0.114 is no exception and a lot of smaller performance and stability +improvements are made again. + +A bit technical, maybe, but here is a small overview of the changes: + +- The internal device & entity registries are now indexed, and thus faster. +- Setting up groups at startup is more efficient. +- Reloading YAML configurations or checking your configuration is now quicker. +- A context accompanies every event in Home Assistant (every trigger, + automation, … has a "triggered by what and who"). These contexts are now + created faster, which makes everything faster. +- Tracking time pattern triggers are now scheduled on our event loop, which + is far more efficient. +- Processing of system logs is taken out of the main program loop, so it doesn't + interfere with things Home Assistant does for you. + +Finally, if, for any reason, corruption is detected in the Home Assistant +recorder database (SQLite), the old database is moved and a new, fresh database +is created. This prevents issues during startup. + +Honestly, the above isn't even complete. 😅 Thanks [@bdraco]! + +## Other noteworthy changes + +- You can now move Lovelace cards to a different dashboard and add cards to + other than the main dashboard from the device pages. +- Add support for safe area insets; For example, iPhones with notches now cover + the entire screen while having enough padding for home swipe action + and the notch at the top of your display. +- [HomeKit][homekit docs] has now support for doorbells (thanks [@adrum]) and + [@bdraco] added support for multiple camera streams. +- If you use [light][light docs] profiles, those now support a default + transition value, thanks to [@donkawechico]. +- [@agners] added IPv4 & IPv6 (dual-stack) support to the Home Assistant + [web server][http docs], allowing it to run simultaneously on both. + +## New Integrations + +Six new integrations added this release: + +- [AccuWeather][accuweather docs], added by [@bieniu] +- [Azure DevOps][azure_devops docs], added by [@timmo001] +- [Control4][control4 docs], added by [@lawtancool] +- [Firmata][firmata docs], added by [@DaAwesomeP] +- [OVO Energy][ovo_energy docs], added by [@timmo001] +- [Wolflink][wolflink docs], added by [@adamkrol93] + +## New Platforms + +The following integration got support for a new platform: + +- [Pi-hole][pi_hole docs] now provides a switch to turn on/off the service, added by [@shenxn] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Volumio][volumio docs], done by [@OnFreund] +- [HLK-SW16][hlk_sw16 docs], done by [@jameshilliard] +- [Itho Daalderop Spider][spider docs], done by [@peternijssen] + +## If you need help... + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +Below is a listing of the breaking change for this release, per subject or +integration. Click on one of those to read more about the breaking change +for that specific item. + +
+ Recorder +

+ +The default sqlite database (home-assistant_v2.db) is now validated on startup +and if corruption is detected, the database is renamed to +`home-assistant_v2.db.corrupt.{ISOTIME}` and startup proceeds with a fresh +database. + +([@bdraco] - [#37949]) ([recorder docs]) + +

+
+ +
+ Google Assistant +

+ +A sync will be required for source selection to work after this update. The +keyword to select source will also have changed from "Set mode on TV to.." +to "Set input on TV to.." + +([@elupus] - [#35753]) ([google_assistant docs]) + +

+
+ +
+ Blink +

+ +Due to the new 2FA endpoint, the YAML configuration is no longer supported. + +In addition, due to some API changes, if you are upgrading from a previous +version, you will need to navigate to the integration page at startup and +re-configure Blink. + +Your username and password will be imported, but you need to submit a 2FA token +(emailed to you by Blink) in order to continue setting up the integration. + +([@fronzbot] - [#38027]) ([blink docs]) + +

+
+ +
+ Pi-hole +

+ +A switch has been added to the Pi-hole integration. Because of the switch being +added, the `pi_hole.enable` service is removed. + +The `pi_hole.disable` service remains in order to support disabling the service +for a given amount of time, but now it relies on the switch entity id instead +of the name set by the user, so the `name` field is removed. + +With this change, a switch entity `switch.pi_hole` will be added if you +set up the integration with an API key and default name (Pi-hole). + +Now, you can use `switch.turn_on` and `switch.turn_off` to enable and disable +the Pi-hole service permanently. To disable the service for a given time, +use `pi_hole.disable` with `entity_id: switch.pi_hole` and `duration: 00:00:15`. +To target all Pi-hole services, use `entity_id: all`. + +([@shenxn] - [#35605]) ([pi_hole docs]) + +

+
+ +
+ Volumio +

+ +The Volumio integration is now configured through the UI. If you previously had +it in configuration.yaml, please remove it and configure through the +Integrations panel. + +([@OnFreund] - [#38252]) ([discovery docs]) ([volumio docs]) + +

+
+ +
+ Honeywell Total Connect Comfort (evohome) +

+ +The `hvac_action()` property has been removed from Evohome zones as this data +was inaccurate - the algorithm used to provide this data was not +reliable, and there is no reasonable hope for a satisfactory alternative. + +You will have no indication if a zone is actively calling for heat +(`CURRENT_HVAC_*`), nor if the heat source is currently active. However, +you will continue to have the `hvac_mode()` property, which will indicate if the +heating is enabled, or not (`HVAC_MODE_*`). + +This will be most obvious by the absence of this information in the UI. + +There is no intervention required for this breaking change. + +([@zxdavb] - [#38244]) ([evohome docs]) + +

+
+ +
+ Flume +

+ +The unique id is being updated for existing sensors. You will need to clean up +the stale entity from the entity registry via the GUI. + +([@ChrisMandich] - [#38138]) ([flume docs]) + +

+
+ +
+ Météo-France +

+ +The `meteo_france` integration moved from a web scraping architecture to a +API-based architecture. With this major refactor the following change could +break: + +- The `thunder chance` entity is no longer available (no longer in the API results). +- The `next rain` entity state is now a datetime instead of a delay. +- `next rain` attributes have been simplified. +- `weather_alert:` only one entity created by department. Was by city in the + previous version and could create duplicates. +- `weather alert` attributes have been simplified. +- `weather` platform is showing the current day forecast in the first position of + daily forecast (instead of tomorrow forecast). + +([@oncleben31] - [#37737]) ([meteo_france docs]) + +

+
+
+ Bond +

+ +When you have multiple Bond hubs, each with its own set of devices, those +devices have IDs that the Bond integration uses to generate unique entity IDs +in Home Assistant. Unfortunately, those IDs are only unique within the hub. +So it is possible that unique IDs generated for entities from different hubs +will not be unique and collide. + +This has been fixed by prefixing device ID with a hub ID and the resulting ID +is now truly unique. After restarting you will see each bond entity twice. +One which is live with the new unique ID. The second which is disabled with old +unique ID. + +How to make it work: + +1. Remove the disabled entity (note its friendly ID, e.g., `cover.shades`) +2. Optionally rename the generated friendly ID on the live entity, so that your + automations continue to work. For example, your live entity will have ID + `cover.shades_2`. Rename it to `cover.shades`. + +([@prystupa] - [#38496]) ([bond docs]) + +

+
+ +
+ Hi-Link HLK-SW16 +

+ +The hlk-sw16 entity ids will change upon update and the old entities will need +to be removed manually. + +([@jameshilliard] - [#37190]) ([hlk_sw16 docs]) + +

+
+ +
+ Slack +

+ +The Slack attachments framework was deprecated in 0.108.0 and is now officially +removed. The blocks framework should be used instead. + +([@bachya] - [#38139]) ([slack docs]) + +

+
+ +
+ IQVIA +

+ +Per ADR-0010, IQVIA can no longer be configured via YAML and must be configured +from the UI. Existing IQVIA users have already had their integrations imported +and only need to remove IQVIA-related items from `configuration.yaml`. + +([@bachya] - [#38141]) ([iqvia docs]) + +

+
+ +
+ Shell Command +

+ +Processes spawned from the `shell_command` integration (the command executes) +now timeout after 60 seconds instead of running forever. + +([@bdraco] - [#38491]) ([shell_command docs]) + +

+
+ +
+ Command Line +

+ +The `command_line` cover, notify and switch platforms, now timeout after 15 +seconds (by default) instead of blocking forever. + +([@bdraco] - [#38497]) ([command_line docs]) + +

+
+ +
+ Time pattern listeners +

+ +If time abruptly moves forward or backward, time pattern listeners will only +be adjusted after they were previously scheduled to fire. + +This avoids the need for every time pattern listener to check for this every +second. + +([@bdraco] - [#38021]) + +

+
+ +
+ Logbook +

+ +Support for legacy logbook events created before 0.112 is removed. + +([@bdraco] - [#37822]) ([logbook docs]) + +

+
+ +## All changes + +
+ Click to see all changes! + +- Remove support for legacy logbook events created before 0.112 ([@bdraco] - [#37822]) ([logbook docs]) (breaking-change) +- Refactor bond tests ([@prystupa] - [#37868]) ([bond docs]) +- Feature/izone temperature precision ([@sgryphon] - [#37669]) ([izone docs]) +- Add `ignore_attributes` option to influxdb ([@mdegat01] - [#37747]) ([influxdb docs]) +- Improve bond startup performance ([@prystupa] - [#37900]) ([bond docs]) +- Add Firmata Integration (attempt 2) ([@DaAwesomeP] - [#35591]) ([firmata docs]) (new-integration) +- Add RGB light support to ozw ([@firstof9] - [#37636]) ([ozw docs]) +- Apply feedback on bond integration ([@prystupa] - [#37921]) ([bond docs]) +- Increase test line coverage of homeassistant/helpers/event.py to 100% ([@bdraco] - [#37927]) +- Cleanup logbook tests to prevent failure on race condition ([@bdraco] - [#37928]) ([logbook docs]) +- Improve setup script portability ([@mweinelt] - [#37935]) +- Switch back to create task for Neato ([@dshokouhi] - [#37913]) ([neato docs]) +- prometheus: Reduce loglevel of failed float conversion to debug ([@mweinelt] - [#37936]) ([prometheus docs]) +- Add humidifier intents ([@Shulyaka] - [#37335]) ([humidifier docs]) +- Add humidifier device conditions ([@Shulyaka] - [#36962]) ([humidifier docs]) +- Fix Yandex transport Integration, add signature to requests ([@devbis] - [#37365]) ([yandex_transport docs]) +- Mock out I/O in the default_config test ([@bdraco] - [#37897]) ([default_config docs]) +- Add humidifier device triggers ([@Shulyaka] - [#36887]) ([humidifier docs]) +- Index entity_registry_updated listeners ([@bdraco] - [#37940]) +- Automatically recover when the sqlite3 database is malformed or corrupted ([@bdraco] - [#37949]) ([recorder docs]) (breaking-change) +- Add switch to pi_hole integration ([@shenxn] - [#35605]) ([pi_hole docs]) (breaking-change) (new-platform) +- Bump zeroconf to 0.28.0 ([@bdraco] - [#37951]) ([zeroconf docs]) +- Make sensor and binary_sensor inherit from base class ([@elupus] - [#37946]) ([rfxtrx docs]) +- Add support for InputSelector trait ([@elupus] - [#35753]) ([google_assistant docs]) (breaking-change) +- Adds median to min_max component ([@knudsvik] - [#36686]) ([min_max docs]) +- Add Control4 integration ([@lawtancool] - [#37632]) ([control4 docs]) (new-integration) +- Update comment about parallel updates to match the documentation ([@dmulcahey] - [#37964]) +- Close androidtv ADB socket connection when Home Assistant stops ([@JeffLIrion] - [#37973]) ([androidtv docs]) +- Bumpy pyobihai to make last reboot update as needed ([@dshokouhi] - [#37914]) ([obihai docs]) +- Index the entity registry ([@bdraco] - [#37994]) +- Index the device registry ([@bdraco] - [#37990]) +- Don't advertise switch devices as dimmable lights ([@jyavenard] - [#37978]) ([emulated_hue docs]) +- Disable polling for ozw entities ([@RobBie1221] - [#38005]) ([ozw docs]) +- Force updates for ozw sensors ([@RobBie1221] - [#38003]) ([ozw docs]) +- Add Wolflink integration ([@adamkrol93] - [#34104]) ([wolflink docs]) (new-integration) +- Bump codecov/codecov-action from v1.0.10 to v1.0.11 (dependabot - [#38006]) +- Cleanup async_accept_signal in ZHA ([@dmulcahey] - [#38009]) ([zha docs]) +- Fix ozw color temp ([@tradiuz] - [#38012]) ([ozw docs]) +- Add scrape sensor name to logs ([@rsnodgrass] - [#38020]) ([scrape docs]) +- Use event loop scheduling for tracking time patterns ([@bdraco] - [#38021]) (breaking-change) +- Move data on import in rfxtrx integration into ConfigEntry ([@RobBie1221] - [#38022]) ([rfxtrx docs]) +- Bump actions/setup-python from v2 to v2.1.1 (dependabot - [#38034]) +- Fix wolflink datetime import ([@scop] - [#38028]) ([wolflink docs]) +- Update tests that track time to account for microsecond precision ([@bdraco] - [#38044]) ([automation docs]) +- Implement unload entry for rfxtrx integration ([@RobBie1221] - [#38037]) ([rfxtrx docs]) +- Make sure command entities restore from state ([@elupus] - [#38038]) ([rfxtrx docs]) +- Avoid using implementation internal to trigger events ([@elupus] - [#38041]) ([rfxtrx docs]) +- Ensure we do not start discovered flows until after the started event has fired ([@bdraco] - [#38047]) ([discovery docs]) ([ssdp docs]) ([zeroconf docs]) +- Support default transition in light profiles ([@donkawechico] - [#36747]) ([light docs]) +- Speed up group setup ([@bdraco] - [#38048]) ([group docs]) +- Allow float values in time periods ([@pnbruckner] - [#38023]) +- Update home assistant base image ([@pvizeli] - [#38063]) +- Various type hint improvements ([@scop] - [#37952]) +- Update automation logger to include object_id like scripts ([@pnbruckner] - [#37948]) ([automation docs]) +- Change sky_hub to async and fix exception spamming ([@RogerSelwyn] - [#37129]) ([sky_hub docs]) +- Bump version to 0.114.0dev0 ([@frenck] - [#38071]) +- Upgrade aiohttp to 3.6.2 ([@frenck] - [#38082]) +- Fix ozw light color values check ([@MartinHjelmare] - [#38067]) ([ozw docs]) +- Refactor bond integration to be completely async ([@prystupa] - [#38066]) ([bond docs]) +- Centralize bond update state logic ([@prystupa] - [#38093]) ([bond docs]) +- Avoid generating a Context() object every second ([@bdraco] - [#38085]) +- Use postgresql style uuid generation (uuid_generate_v1mc) for Context uuids ([@bdraco] - [#38089]) +- Clean up fido tests ([@balloob] - [#38098]) ([fido docs]) +- Bump codecov/codecov-action from v1.0.11 to v1.0.12 (dependabot - [#38102]) +- Add 'alarm_event_occurred' property from AlarmDecoder ([@melyux] - [#38055]) ([alarmdecoder docs]) +- Add homematic IPKeyBlindMulti device ([@sMauldaeschle] - [#38059]) ([homematic docs]) +- Add set_central_heating_ovrd service to opentherm_gw ([@mvn23] - [#34425]) ([opentherm_gw docs]) +- Fix state automation trigger (#38014) ([@azogue] - [#38032]) ([automation docs]) +- Fix updates of Rssi for control devices in rfxtrx ([@RobBie1221] - [#38131]) ([rfxtrx docs]) +- Upgrade bond-api to 0.1.7 ([@prystupa] - [#38121]) ([bond docs]) +- Write device_id to ConfigEntry of rfxtrx integration ([@RobBie1221] - [#38064]) ([rfxtrx docs]) +- Add test ([@emontnemery] - [#37890]) ([mqtt docs]) +- Asyncify rfxtrx startup and event handling ([@elupus] - [#38155]) ([rfxtrx docs]) +- Support unavailable state in template fan ([@thomasdelaet] - [#38114]) ([template docs]) +- convert_until isn't returning anything ([@Misiu] - [#38157]) ([evohome docs]) +- Bump python-slugify to 4.0.1 ([@fronzbot] - [#38140]) +- Upgrade coverage to 5.2.1 ([@frenck] - [#38158]) +- Support rfxtrx smoke detectors, motion sensors as binary_sensors ([@elupus] - [#38000]) ([rfxtrx docs]) +- Gracefully handle bond API errors and timeouts through available state ([@prystupa] - [#38137]) ([bond docs]) +- Prevent unnecessary updates of zone component ([@Danielhiversen] - [#38167]) ([zone docs]) +- Prevent unnecessary updates of sun component ([@Danielhiversen] - [#38169]) ([sun docs]) +- Add AccuWeather integration ([@bieniu] - [#37166]) ([accuweather docs]) (new-integration) +- Added 2020 version Aqara double wall switch ([@markuskorbel] - [#38164]) ([deconz docs]) +- Ensure all track time change tests mock a specific start time ([@bdraco] - [#38178]) +- Enable Homekit remote support for devices without play/pause ([@nickw444] - [#37180]) ([homekit docs]) +- Prevent unnecessary updates of met component ([@Danielhiversen] - [#38168]) ([met docs]) +- Support multiple camera streams in HomeKit ([@bdraco] - [#37968]) ([homekit docs]) +- Rfxtrx fixup config entry creation ([@elupus] - [#38185]) ([rfxtrx docs]) +- Removing gogogate2 emulated cover transitional states. ([@vangorra] - [#38199]) ([gogogate2 docs]) +- Volvo on call updates ([@bratanon] - [#38142]) ([volvooncall docs]) +- Make rfxtrx RfyDevices have sun automation switches ([@elupus] - [#38210]) ([rfxtrx docs]) (beta fix) +- Add Azure DevOps Integration ([@timmo001] - [#33765]) ([azure_devops docs]) (new-integration) +- Mark event tests to run as callbacks ([@bdraco] - [#38212]) +- Attempt to fix islamic prayer times tests ([@bdraco] - [#38220]) ([islamic_prayer_times docs]) +- Update logbook to use async_add_executor_job ([@bdraco] - [#38217]) ([logbook docs]) +- Fix libav install in Travis CI ([@scop] - [#38221]) +- Refactor bond unit tests to reduce boilerplate ([@prystupa] - [#38177]) ([bond docs]) +- Add update available binary sensor to Tesla ([@alandtse] - [#37991]) ([tesla docs]) +- fix issue #34559 ([@zxdavb] - [#38241]) ([evohome docs]) +- Implement resilient startup for bond integration with ConfigEntryNotReady support ([@prystupa] - [#38253]) ([bond docs]) +- Add changes from comments after merging AccuWeather ([@bieniu] - [#38227]) ([accuweather docs]) +- Update holidays to 0.10.3 ([@MikeTsenatek] - [#38246]) ([workday docs]) +- Add config flow to Volumio ([@OnFreund] - [#38252]) ([discovery docs]) ([volumio docs]) (breaking-change) +- Change devolo Home Control entity naming ([@2Fake] - [#38275]) ([devolo_home_control docs]) +- Corrected typo ([@jcallaghan] - [#38278]) ([tado docs]) +- Remove evohome hvac_action as it is inaccurate ([@zxdavb] - [#38244]) ([evohome docs]) (breaking-change) +- Prevent harmony from resetting state with multiple turn ons ([@bdraco] - [#38183]) ([harmony docs]) +- Delint recent change to evohome ([@zxdavb] - [#38294]) ([evohome docs]) +- Setup rfxtrx event listener directly ([@elupus] - [#38298]) ([rfxtrx docs]) +- Clean up commands generation for rfxtrx ([@elupus] - [#38236]) ([rfxtrx docs]) +- Restore rfxtrx state to off when delay off is in effect ([@elupus] - [#38239]) ([rfxtrx docs]) +- Bond - Make assumed state conditional ([@marciogranzotto] - [#38209]) ([bond docs]) +- Apply changes from bond code review ([@prystupa] - [#38303]) ([bond docs]) +- Add debug logging for bond ([@prystupa] - [#38304]) ([bond docs]) +- Fix ozw dimming duration ([@firstof9] - [#38254]) ([ozw docs]) +- Update PyFlume version, support for multiple state attributes ([@ChrisMandich] - [#38138]) ([flume docs]) (breaking-change) +- Fix lg_soundbar callback ([@mjg59] - [#38259]) ([lg_soundbar docs]) +- Bump actions/upload-artifact from 2.1.0 to v2.1.1 (dependabot - [#38315]) +- Add myself to xiaomi miio codeowners ([@starkillerOG] - [#38350]) ([xiaomi_miio docs]) +- Upgrade youtube_dl to version 2020.07.28 ([@BKPepe] - [#38328]) ([media_extractor docs]) +- Temporary lock pip to 20.1.1 to avoid build issue ([@frenck] - [#38358]) (beta fix) +- Add wheels job for building core wheels ([@frenck] - [#38359]) +- Add jobs names to Wheels builds ([@frenck] - [#38363]) +- Update run-in-env.sh ([@ehendrix23] - [#36577]) +- Bump aioambient to 1.2.0 ([@bachya] - [#38364]) ([ambient_station docs]) +- Bump simplisafe-python to 9.2.2 ([@bachya] - [#38365]) ([simplisafe docs]) +- Bump ElkM1 library version. ([@gwww] - [#38368]) ([elkm1 docs]) +- Add basic websocket api for OZW ([@cgarwood] - [#38265]) ([ozw docs]) +- Add support for multiple time triggers in automations ([@frenck] - [#37975]) ([automation docs]) +- Add support for dimmable bond lights ([@marciogranzotto] - [#38203]) ([bond docs]) +- Bump wirelesstagpy to 0.4.1 ([@sergeymaysak] - [#38387]) ([wirelesstag docs]) +- Fix bond fans without defined max_speed ([@prystupa] - [#38382]) ([bond docs]) +- Clean up Volumio code ([@OnFreund] - [#38400]) ([volumio docs]) +- Update coordinator improvements ([@scop] - [#38366]) +- Improve tests for Airly integration ([@bieniu] - [#38357]) ([airly docs]) +- Generate bond config entry ID from the hub metadata ([@prystupa] - [#38354]) ([bond docs]) +- Add battery sensor to xiaomi_aqara ([@shenxn] - [#38004]) ([xiaomi_aqara docs]) +- Fix variable error during stream close ([@bdraco] - [#38417]) ([stream docs]) +- Simplify generate_entity_id ([@bdraco] - [#38418]) +- Abort bond hub config flow if hub is already registered ([@prystupa] - [#38416]) ([bond docs]) +- Support 'stop' action for covers in device automation ([@prystupa] - [#38219]) ([cover docs]) +- Add identifiers to device registry api output ([@cgarwood] - [#38427]) ([config docs]) +- Remove unused SmartThings capability subscriptions ([@andrewsayre] - [#38128]) ([smartthings docs]) +- Add support for HomeKit doorbell ([@adrum] - [#38419]) ([homekit docs]) +- Restore the ability to tell when a harmony activity is starting ([@bdraco] - [#38335]) ([harmony docs]) +- Update aioazuredevops to v1.3.5 ([@timmo001] - [#38441]) ([azure_devops docs]) +- Update bond-api to 0.1.8 ([@prystupa] - [#38442]) ([bond docs]) +- Add support to climate devices in Google Assistant Fan Trait ([@marciogranzotto] - [#38337]) ([google_assistant docs]) +- Add unique ids for "buienradar" platforms weather and camera ([@RobBie1221] - [#37761]) ([buienradar docs]) +- Improve logging when a unique id conflict is detected ([@bdraco] - [#38434]) +- Add zeroconf discovery for bond integration ([@prystupa] - [#38448]) ([bond docs]) +- Increase test coverage for rfxtrx integration ([@RobBie1221] - [#38435]) +- Add node neighbors to ozw websocket api ([@firstof9] - [#38447]) ([ozw docs]) +- Refactor Météo-France to use API instead of web scraping ([@oncleben31] - [#37737]) ([meteo_france docs]) (breaking-change) +- Add optional unique_id attribute to the template platforms ([@michaelarnauts] - [#38011]) ([template docs]) +- Allow automation to be turned off without stopping actions ([@pnbruckner] - [#38436]) ([automation docs]) ([script docs]) +- Optimize directv config flow tests. ([@ctalkington] - [#38460]) ([directv docs]) ([directv docs]) +- Update pyskyqhu to 0.1.1 ([@RogerSelwyn] - [#38461]) ([sky_hub docs]) +- Add sensor platform for AccuWeather integration ([@bieniu] - [#38312]) ([accuweather docs]) (new-platform) +- Add bed sensor availability for withings ([@vangorra] - [#37906]) ([withings docs]) +- Add platform tests to yeelight ([@shenxn] - [#37745]) ([yeelight docs]) +- Add homematic IPWKeyBlindMulti device ([@weissm] - [#38345]) ([homematic docs]) +- Avoid shutdown delays when emulated_hue is enabled ([@bdraco] - [#38472]) ([emulated_hue docs]) +- Update numato-gpio to 0.8.0 ([@clssn] - [#38415]) ([numato docs]) +- Optimize ipp tests ([@ctalkington] - [#38485]) ([ipp docs]) +- Ensure bond unique ids are unique across hubs ([@prystupa] - [#38496]) ([bond docs]) (breaking-change) +- Provide a unique entity ID for lgsoundbar ([@mjg59] - [#38494]) ([lg_soundbar docs]) +- Add config flow to HLK-SW16 ([@jameshilliard] - [#37190]) ([hlk_sw16 docs]) (breaking-change) +- Bump actions/upload-artifact from v2.1.1 to v2.1.2 (dependabot - [#38505]) +- Fix lookup by Plex media key when playing on Sonos ([@jjlawren] - [#38119]) ([plex docs]) +- Clean up Plex clip handling ([@jjlawren] - [#38500]) ([plex docs]) +- Fix harmony activity starting initial state ([@bdraco] - [#38439]) ([harmony docs]) +- Bump hass-nabucasa to avoid the performance penalty loading ecdsa ([@bdraco] - [#38056]) +- Fix flapping chained task logging test ([@bdraco] - [#38492]) +- Fix Lutron Caseta devices loading when missing serials ([@ShaneQi] - [#38255]) ([lutron_caseta docs]) +- Update frontend to 20200803.0 ([@bramkragten] - [#38514]) ([frontend docs]) +- Log the version reported by Bond hub upon startup to facilitate troub… ([@prystupa] - [#38508]) ([bond docs]) +- Fix missing .name at entity_id in service example ([@Cooper-Dale] - [#38515]) ([camera docs]) +- Remove deprecated Slack attachments framework ([@bachya] - [#38139]) ([slack docs]) (breaking-change) +- Remove YAML configuration support for IQVIA ([@bachya] - [#38141]) ([iqvia docs]) (breaking-change) +- Fix run-in-env.sh sh options ([@scop] - [#38520]) +- Reduce time to reload yaml and check configuration ([@bdraco] - [#38469]) +- Cache emulated hue states attributes between get and put calls to avoid unexpected alexa errors ([@jyavenard] - [#38451]) ([emulated_hue docs]) +- Bump pyaehw4a1 to 0.3.9 ([@bannhead] - [#38347]) ([hisense_aehw4a1 docs]) +- Update pyhomematic to 0.1.68 ([@danielperna84] - [#38530]) ([homematic docs]) +- Fix Fibaro component failure to load with HC3 ([@pbalogh77] - [#38528]) ([fibaro docs]) +- Support dual stack IP support (IPv4 and IPv6) ([@agners] - [#38046]) ([http docs]) +- Update notify.py ([@dclobato] - [#38526]) ([clickatell docs]) +- Make ozw CCT use device attributes instead of hard coded values ([@tradiuz] - [#38054]) ([ozw docs]) +- Add Netatmo data handler ([@cgtobi] - [#35571]) ([netatmo docs]) +- Move system log processing out of the event loop ([@bdraco] - [#38445]) ([system_log docs]) +- Fix Control4 token refresh ([@lawtancool] - [#38302]) ([control4 docs]) +- Add spider config flow ([@peternijssen] - [#36001]) ([spider docs]) +- Upgrade toonapi to v0.2.0 ([@frenck] - [#38543]) ([toon docs]) +- Update pymetno lib, and start using met api v2 ([@Danielhiversen] - [#38547]) ([met docs]) ([norway_air docs]) +- Add new Water Meter Sensor for Toon ([@tizzen33] - [#37879]) ([toon docs]) +- Fix Mikrotik encoding by setting utf8 ([@Janhouse] - [#38091]) ([mikrotik docs]) +- Allow device class to control icons for tesla ([@ctalkington] - [#37526]) ([tesla docs]) +- Fix upnp error on unload_entry if device does not exist ([@StevenLooman] - [#38230]) ([upnp docs]) +- Add a 60s timeout to shell_command to prevent processes from building up ([@bdraco] - [#38491]) ([shell_command docs]) (breaking-change) +- Add missing timeout to command_line platforms: cover, notify, switch ([@bdraco] - [#38497]) ([command_line docs]) (breaking-change) +- Keep webostv source list when TV is off ([@zhuqf] - [#38250]) ([webostv docs]) +- Use IP Address (host) provided by mDNS on Elgato Key Light ([@PedroLamas] - [#38539]) ([elgato docs]) +- Bump actions/upload-artifact from v2.1.2 to v2.1.3 (dependabot - [#38552]) +- Update pyrainbird to 0.4.2 ([@peternijssen] - [#38542]) ([rainbird docs]) +- Add Xiaomi Aqara wireless and light switches (2020 model) ([@chewbh] - [#37985]) ([xiaomi_aqara docs]) +- Blink auth flow improvement and mini camera support ([@fronzbot] - [#38027]) ([blink docs]) (breaking-change) +- Add device_info to GIOS integration ([@bieniu] - [#38503]) ([gios docs]) +- Add device_info property for AccuWeather integration ([@bieniu] - [#38480]) ([accuweather docs]) +- Add device_info property and simplify generation of unique_id for Airly integration ([@bieniu] - [#38479]) ([airly docs]) +- Bump python-wiffi to 1.0.1 ([@mampfes] - [#38556]) ([wiffi docs]) +- OVO Energy Integration ([@timmo001] - [#36104]) ([ovo_energy docs]) (new-integration) +- Intelligent timeout handler for setup/bootstrap ([@pvizeli] - [#38329]) +- Bump frontend to 20200805.0 ([@ludeeus] - [#38557]) ([frontend docs]) + +
+ +[#33765]: https://github.com/home-assistant/core/pull/33765 +[#34104]: https://github.com/home-assistant/core/pull/34104 +[#34425]: https://github.com/home-assistant/core/pull/34425 +[#35571]: https://github.com/home-assistant/core/pull/35571 +[#35591]: https://github.com/home-assistant/core/pull/35591 +[#35605]: https://github.com/home-assistant/core/pull/35605 +[#35753]: https://github.com/home-assistant/core/pull/35753 +[#36001]: https://github.com/home-assistant/core/pull/36001 +[#36104]: https://github.com/home-assistant/core/pull/36104 +[#36577]: https://github.com/home-assistant/core/pull/36577 +[#36686]: https://github.com/home-assistant/core/pull/36686 +[#36747]: https://github.com/home-assistant/core/pull/36747 +[#36887]: https://github.com/home-assistant/core/pull/36887 +[#36962]: https://github.com/home-assistant/core/pull/36962 +[#37129]: https://github.com/home-assistant/core/pull/37129 +[#37166]: https://github.com/home-assistant/core/pull/37166 +[#37180]: https://github.com/home-assistant/core/pull/37180 +[#37190]: https://github.com/home-assistant/core/pull/37190 +[#37335]: https://github.com/home-assistant/core/pull/37335 +[#37365]: https://github.com/home-assistant/core/pull/37365 +[#37526]: https://github.com/home-assistant/core/pull/37526 +[#37632]: https://github.com/home-assistant/core/pull/37632 +[#37636]: https://github.com/home-assistant/core/pull/37636 +[#37669]: https://github.com/home-assistant/core/pull/37669 +[#37737]: https://github.com/home-assistant/core/pull/37737 +[#37745]: https://github.com/home-assistant/core/pull/37745 +[#37747]: https://github.com/home-assistant/core/pull/37747 +[#37761]: https://github.com/home-assistant/core/pull/37761 +[#37822]: https://github.com/home-assistant/core/pull/37822 +[#37868]: https://github.com/home-assistant/core/pull/37868 +[#37879]: https://github.com/home-assistant/core/pull/37879 +[#37890]: https://github.com/home-assistant/core/pull/37890 +[#37897]: https://github.com/home-assistant/core/pull/37897 +[#37900]: https://github.com/home-assistant/core/pull/37900 +[#37906]: https://github.com/home-assistant/core/pull/37906 +[#37913]: https://github.com/home-assistant/core/pull/37913 +[#37914]: https://github.com/home-assistant/core/pull/37914 +[#37921]: https://github.com/home-assistant/core/pull/37921 +[#37927]: https://github.com/home-assistant/core/pull/37927 +[#37928]: https://github.com/home-assistant/core/pull/37928 +[#37935]: https://github.com/home-assistant/core/pull/37935 +[#37936]: https://github.com/home-assistant/core/pull/37936 +[#37940]: https://github.com/home-assistant/core/pull/37940 +[#37946]: https://github.com/home-assistant/core/pull/37946 +[#37948]: https://github.com/home-assistant/core/pull/37948 +[#37949]: https://github.com/home-assistant/core/pull/37949 +[#37951]: https://github.com/home-assistant/core/pull/37951 +[#37952]: https://github.com/home-assistant/core/pull/37952 +[#37964]: https://github.com/home-assistant/core/pull/37964 +[#37968]: https://github.com/home-assistant/core/pull/37968 +[#37973]: https://github.com/home-assistant/core/pull/37973 +[#37975]: https://github.com/home-assistant/core/pull/37975 +[#37978]: https://github.com/home-assistant/core/pull/37978 +[#37985]: https://github.com/home-assistant/core/pull/37985 +[#37990]: https://github.com/home-assistant/core/pull/37990 +[#37991]: https://github.com/home-assistant/core/pull/37991 +[#37994]: https://github.com/home-assistant/core/pull/37994 +[#38000]: https://github.com/home-assistant/core/pull/38000 +[#38003]: https://github.com/home-assistant/core/pull/38003 +[#38004]: https://github.com/home-assistant/core/pull/38004 +[#38005]: https://github.com/home-assistant/core/pull/38005 +[#38006]: https://github.com/home-assistant/core/pull/38006 +[#38009]: https://github.com/home-assistant/core/pull/38009 +[#38011]: https://github.com/home-assistant/core/pull/38011 +[#38012]: https://github.com/home-assistant/core/pull/38012 +[#38020]: https://github.com/home-assistant/core/pull/38020 +[#38021]: https://github.com/home-assistant/core/pull/38021 +[#38022]: https://github.com/home-assistant/core/pull/38022 +[#38023]: https://github.com/home-assistant/core/pull/38023 +[#38027]: https://github.com/home-assistant/core/pull/38027 +[#38028]: https://github.com/home-assistant/core/pull/38028 +[#38032]: https://github.com/home-assistant/core/pull/38032 +[#38034]: https://github.com/home-assistant/core/pull/38034 +[#38037]: https://github.com/home-assistant/core/pull/38037 +[#38038]: https://github.com/home-assistant/core/pull/38038 +[#38041]: https://github.com/home-assistant/core/pull/38041 +[#38044]: https://github.com/home-assistant/core/pull/38044 +[#38046]: https://github.com/home-assistant/core/pull/38046 +[#38047]: https://github.com/home-assistant/core/pull/38047 +[#38048]: https://github.com/home-assistant/core/pull/38048 +[#38054]: https://github.com/home-assistant/core/pull/38054 +[#38055]: https://github.com/home-assistant/core/pull/38055 +[#38056]: https://github.com/home-assistant/core/pull/38056 +[#38059]: https://github.com/home-assistant/core/pull/38059 +[#38063]: https://github.com/home-assistant/core/pull/38063 +[#38064]: https://github.com/home-assistant/core/pull/38064 +[#38066]: https://github.com/home-assistant/core/pull/38066 +[#38067]: https://github.com/home-assistant/core/pull/38067 +[#38071]: https://github.com/home-assistant/core/pull/38071 +[#38082]: https://github.com/home-assistant/core/pull/38082 +[#38085]: https://github.com/home-assistant/core/pull/38085 +[#38089]: https://github.com/home-assistant/core/pull/38089 +[#38091]: https://github.com/home-assistant/core/pull/38091 +[#38093]: https://github.com/home-assistant/core/pull/38093 +[#38098]: https://github.com/home-assistant/core/pull/38098 +[#38102]: https://github.com/home-assistant/core/pull/38102 +[#38114]: https://github.com/home-assistant/core/pull/38114 +[#38119]: https://github.com/home-assistant/core/pull/38119 +[#38121]: https://github.com/home-assistant/core/pull/38121 +[#38128]: https://github.com/home-assistant/core/pull/38128 +[#38131]: https://github.com/home-assistant/core/pull/38131 +[#38137]: https://github.com/home-assistant/core/pull/38137 +[#38138]: https://github.com/home-assistant/core/pull/38138 +[#38139]: https://github.com/home-assistant/core/pull/38139 +[#38140]: https://github.com/home-assistant/core/pull/38140 +[#38141]: https://github.com/home-assistant/core/pull/38141 +[#38142]: https://github.com/home-assistant/core/pull/38142 +[#38155]: https://github.com/home-assistant/core/pull/38155 +[#38157]: https://github.com/home-assistant/core/pull/38157 +[#38158]: https://github.com/home-assistant/core/pull/38158 +[#38164]: https://github.com/home-assistant/core/pull/38164 +[#38167]: https://github.com/home-assistant/core/pull/38167 +[#38168]: https://github.com/home-assistant/core/pull/38168 +[#38169]: https://github.com/home-assistant/core/pull/38169 +[#38177]: https://github.com/home-assistant/core/pull/38177 +[#38178]: https://github.com/home-assistant/core/pull/38178 +[#38183]: https://github.com/home-assistant/core/pull/38183 +[#38185]: https://github.com/home-assistant/core/pull/38185 +[#38199]: https://github.com/home-assistant/core/pull/38199 +[#38203]: https://github.com/home-assistant/core/pull/38203 +[#38209]: https://github.com/home-assistant/core/pull/38209 +[#38210]: https://github.com/home-assistant/core/pull/38210 +[#38212]: https://github.com/home-assistant/core/pull/38212 +[#38217]: https://github.com/home-assistant/core/pull/38217 +[#38219]: https://github.com/home-assistant/core/pull/38219 +[#38220]: https://github.com/home-assistant/core/pull/38220 +[#38221]: https://github.com/home-assistant/core/pull/38221 +[#38227]: https://github.com/home-assistant/core/pull/38227 +[#38230]: https://github.com/home-assistant/core/pull/38230 +[#38236]: https://github.com/home-assistant/core/pull/38236 +[#38239]: https://github.com/home-assistant/core/pull/38239 +[#38241]: https://github.com/home-assistant/core/pull/38241 +[#38244]: https://github.com/home-assistant/core/pull/38244 +[#38246]: https://github.com/home-assistant/core/pull/38246 +[#38250]: https://github.com/home-assistant/core/pull/38250 +[#38252]: https://github.com/home-assistant/core/pull/38252 +[#38253]: https://github.com/home-assistant/core/pull/38253 +[#38254]: https://github.com/home-assistant/core/pull/38254 +[#38255]: https://github.com/home-assistant/core/pull/38255 +[#38259]: https://github.com/home-assistant/core/pull/38259 +[#38265]: https://github.com/home-assistant/core/pull/38265 +[#38275]: https://github.com/home-assistant/core/pull/38275 +[#38278]: https://github.com/home-assistant/core/pull/38278 +[#38294]: https://github.com/home-assistant/core/pull/38294 +[#38298]: https://github.com/home-assistant/core/pull/38298 +[#38302]: https://github.com/home-assistant/core/pull/38302 +[#38303]: https://github.com/home-assistant/core/pull/38303 +[#38304]: https://github.com/home-assistant/core/pull/38304 +[#38312]: https://github.com/home-assistant/core/pull/38312 +[#38315]: https://github.com/home-assistant/core/pull/38315 +[#38328]: https://github.com/home-assistant/core/pull/38328 +[#38329]: https://github.com/home-assistant/core/pull/38329 +[#38335]: https://github.com/home-assistant/core/pull/38335 +[#38337]: https://github.com/home-assistant/core/pull/38337 +[#38345]: https://github.com/home-assistant/core/pull/38345 +[#38347]: https://github.com/home-assistant/core/pull/38347 +[#38350]: https://github.com/home-assistant/core/pull/38350 +[#38354]: https://github.com/home-assistant/core/pull/38354 +[#38357]: https://github.com/home-assistant/core/pull/38357 +[#38358]: https://github.com/home-assistant/core/pull/38358 +[#38359]: https://github.com/home-assistant/core/pull/38359 +[#38363]: https://github.com/home-assistant/core/pull/38363 +[#38364]: https://github.com/home-assistant/core/pull/38364 +[#38365]: https://github.com/home-assistant/core/pull/38365 +[#38366]: https://github.com/home-assistant/core/pull/38366 +[#38368]: https://github.com/home-assistant/core/pull/38368 +[#38382]: https://github.com/home-assistant/core/pull/38382 +[#38387]: https://github.com/home-assistant/core/pull/38387 +[#38400]: https://github.com/home-assistant/core/pull/38400 +[#38415]: https://github.com/home-assistant/core/pull/38415 +[#38416]: https://github.com/home-assistant/core/pull/38416 +[#38417]: https://github.com/home-assistant/core/pull/38417 +[#38418]: https://github.com/home-assistant/core/pull/38418 +[#38419]: https://github.com/home-assistant/core/pull/38419 +[#38427]: https://github.com/home-assistant/core/pull/38427 +[#38434]: https://github.com/home-assistant/core/pull/38434 +[#38435]: https://github.com/home-assistant/core/pull/38435 +[#38436]: https://github.com/home-assistant/core/pull/38436 +[#38439]: https://github.com/home-assistant/core/pull/38439 +[#38441]: https://github.com/home-assistant/core/pull/38441 +[#38442]: https://github.com/home-assistant/core/pull/38442 +[#38445]: https://github.com/home-assistant/core/pull/38445 +[#38447]: https://github.com/home-assistant/core/pull/38447 +[#38448]: https://github.com/home-assistant/core/pull/38448 +[#38451]: https://github.com/home-assistant/core/pull/38451 +[#38460]: https://github.com/home-assistant/core/pull/38460 +[#38461]: https://github.com/home-assistant/core/pull/38461 +[#38469]: https://github.com/home-assistant/core/pull/38469 +[#38472]: https://github.com/home-assistant/core/pull/38472 +[#38479]: https://github.com/home-assistant/core/pull/38479 +[#38480]: https://github.com/home-assistant/core/pull/38480 +[#38485]: https://github.com/home-assistant/core/pull/38485 +[#38491]: https://github.com/home-assistant/core/pull/38491 +[#38492]: https://github.com/home-assistant/core/pull/38492 +[#38494]: https://github.com/home-assistant/core/pull/38494 +[#38496]: https://github.com/home-assistant/core/pull/38496 +[#38497]: https://github.com/home-assistant/core/pull/38497 +[#38500]: https://github.com/home-assistant/core/pull/38500 +[#38503]: https://github.com/home-assistant/core/pull/38503 +[#38505]: https://github.com/home-assistant/core/pull/38505 +[#38508]: https://github.com/home-assistant/core/pull/38508 +[#38514]: https://github.com/home-assistant/core/pull/38514 +[#38515]: https://github.com/home-assistant/core/pull/38515 +[#38520]: https://github.com/home-assistant/core/pull/38520 +[#38526]: https://github.com/home-assistant/core/pull/38526 +[#38528]: https://github.com/home-assistant/core/pull/38528 +[#38530]: https://github.com/home-assistant/core/pull/38530 +[#38539]: https://github.com/home-assistant/core/pull/38539 +[#38542]: https://github.com/home-assistant/core/pull/38542 +[#38543]: https://github.com/home-assistant/core/pull/38543 +[#38547]: https://github.com/home-assistant/core/pull/38547 +[#38552]: https://github.com/home-assistant/core/pull/38552 +[#38556]: https://github.com/home-assistant/core/pull/38556 +[#38557]: https://github.com/home-assistant/core/pull/38557 +[@2Fake]: https://github.com/2Fake +[@BKPepe]: https://github.com/BKPepe +[@ChrisMandich]: https://github.com/ChrisMandich +[@Cooper-Dale]: https://github.com/Cooper-Dale +[@DaAwesomeP]: https://github.com/DaAwesomeP +[@Danielhiversen]: https://github.com/Danielhiversen +[@Janhouse]: https://github.com/Janhouse +[@JeffLIrion]: https://github.com/JeffLIrion +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MikeTsenatek]: https://github.com/MikeTsenatek +[@Misiu]: https://github.com/Misiu +[@OnFreund]: https://github.com/OnFreund +[@PedroLamas]: https://github.com/PedroLamas +[@RobBie1221]: https://github.com/RobBie1221 +[@RogerSelwyn]: https://github.com/RogerSelwyn +[@ShaneQi]: https://github.com/ShaneQi +[@Shulyaka]: https://github.com/Shulyaka +[@StevenLooman]: https://github.com/StevenLooman +[@adamkrol93]: https://github.com/adamkrol93 +[@adrum]: https://github.com/adrum +[@agners]: https://github.com/agners +[@alandtse]: https://github.com/alandtse +[@andrewsayre]: https://github.com/andrewsayre +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bannhead]: https://github.com/bannhead +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@bramkragten]: https://github.com/bramkragten +[@bratanon]: https://github.com/bratanon +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chewbh]: https://github.com/chewbh +[@clssn]: https://github.com/clssn +[@ctalkington]: https://github.com/ctalkington +[@danielperna84]: https://github.com/danielperna84 +[@dclobato]: https://github.com/dclobato +[@devbis]: https://github.com/devbis +[@dmulcahey]: https://github.com/dmulcahey +[@donkawechico]: https://github.com/donkawechico +[@dshokouhi]: https://github.com/dshokouhi +[@ehendrix23]: https://github.com/ehendrix23 +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@firstof9]: https://github.com/firstof9 +[@frenck]: https://github.com/frenck +[@fronzbot]: https://github.com/fronzbot +[@gwww]: https://github.com/gwww +[@jameshilliard]: https://github.com/jameshilliard +[@jcallaghan]: https://github.com/jcallaghan +[@jjlawren]: https://github.com/jjlawren +[@jyavenard]: https://github.com/jyavenard +[@knudsvik]: https://github.com/knudsvik +[@lawtancool]: https://github.com/lawtancool +[@ludeeus]: https://github.com/ludeeus +[@mampfes]: https://github.com/mampfes +[@marciogranzotto]: https://github.com/marciogranzotto +[@markuskorbel]: https://github.com/markuskorbel +[@mdegat01]: https://github.com/mdegat01 +[@melyux]: https://github.com/melyux +[@michaelarnauts]: https://github.com/michaelarnauts +[@mjg59]: https://github.com/mjg59 +[@mvn23]: https://github.com/mvn23 +[@mweinelt]: https://github.com/mweinelt +[@nickw444]: https://github.com/nickw444 +[@oncleben31]: https://github.com/oncleben31 +[@pbalogh77]: https://github.com/pbalogh77 +[@peternijssen]: https://github.com/peternijssen +[@pnbruckner]: https://github.com/pnbruckner +[@prystupa]: https://github.com/prystupa +[@pvizeli]: https://github.com/pvizeli +[@rsnodgrass]: https://github.com/rsnodgrass +[@sMauldaeschle]: https://github.com/sMauldaeschle +[@scop]: https://github.com/scop +[@sergeymaysak]: https://github.com/sergeymaysak +[@sgryphon]: https://github.com/sgryphon +[@shenxn]: https://github.com/shenxn +[@starkillerOG]: https://github.com/starkillerOG +[@thomasdelaet]: https://github.com/thomasdelaet +[@timmo001]: https://github.com/timmo001 +[@tizzen33]: https://github.com/tizzen33 +[@tradiuz]: https://github.com/tradiuz +[@vangorra]: https://github.com/vangorra +[@weissm]: https://github.com/weissm +[@zhuqf]: https://github.com/zhuqf +[@zxdavb]: https://github.com/zxdavb +[accuweather docs]: /integrations/accuweather/ +[airly docs]: /integrations/airly/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[ambient_station docs]: /integrations/ambient_station/ +[androidtv docs]: /integrations/androidtv/ +[automation docs]: /integrations/automation/ +[azure_devops docs]: /integrations/azure_devops/ +[blink docs]: /integrations/blink/ +[bond docs]: /integrations/bond/ +[buienradar docs]: /integrations/buienradar/ +[camera docs]: /integrations/camera/ +[clickatell docs]: /integrations/clickatell/ +[command_line docs]: /integrations/command_line/ +[config docs]: /integrations/config/ +[control4 docs]: /integrations/control4/ +[cover docs]: /integrations/cover/ +[deconz docs]: /integrations/deconz/ +[default_config docs]: /integrations/default_config/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[directv docs]: /integrations/directv/ +[discovery docs]: /integrations/discovery/ +[elgato docs]: /integrations/elgato/ +[elkm1 docs]: /integrations/elkm1/ +[emulated_hue docs]: /integrations/emulated_hue/ +[evohome docs]: /integrations/evohome/ +[fibaro docs]: /integrations/fibaro/ +[fido docs]: /integrations/fido/ +[firmata docs]: /integrations/firmata/ +[flume docs]: /integrations/flume/ +[frontend docs]: /integrations/frontend/ +[gios docs]: /integrations/gios/ +[gogogate2 docs]: /integrations/gogogate2/ +[google_assistant docs]: /integrations/google_assistant/ +[group docs]: /integrations/group/ +[harmony docs]: /integrations/harmony/ +[hisense_aehw4a1 docs]: /integrations/hisense_aehw4a1/ +[hlk_sw16 docs]: /integrations/hlk_sw16/ +[homekit docs]: /integrations/homekit/ +[homematic docs]: /integrations/homematic/ +[http docs]: /integrations/http/ +[humidifier docs]: /integrations/humidifier/ +[influxdb docs]: /integrations/influxdb/ +[ipp docs]: /integrations/ipp/ +[iqvia docs]: /integrations/iqvia/ +[islamic_prayer_times docs]: /integrations/islamic_prayer_times/ +[izone docs]: /integrations/izone/ +[lg_soundbar docs]: /integrations/lg_soundbar/ +[light docs]: /integrations/light/ +[logbook docs]: /integrations/logbook/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[media_extractor docs]: /integrations/media_extractor/ +[met docs]: /integrations/met/ +[meteo_france docs]: /integrations/meteo_france/ +[mikrotik docs]: /integrations/mikrotik/ +[min_max docs]: /integrations/min_max/ +[mqtt docs]: /integrations/mqtt/ +[neato docs]: /integrations/neato/ +[netatmo docs]: /integrations/netatmo/ +[norway_air docs]: /integrations/norway_air/ +[numato docs]: /integrations/numato/ +[obihai docs]: /integrations/obihai/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[ovo_energy docs]: /integrations/ovo_energy/ +[ozw docs]: /integrations/ozw/ +[pi_hole docs]: /integrations/pi_hole/ +[plex docs]: /integrations/plex/ +[prometheus docs]: /integrations/prometheus/ +[rainbird docs]: /integrations/rainbird/ +[recorder docs]: /integrations/recorder/ +[rfxtrx docs]: /integrations/rfxtrx/ +[scrape docs]: /integrations/scrape/ +[script docs]: /integrations/script/ +[shell_command docs]: /integrations/shell_command/ +[simplisafe docs]: /integrations/simplisafe/ +[sky_hub docs]: /integrations/sky_hub/ +[slack docs]: /integrations/slack/ +[smartthings docs]: /integrations/smartthings/ +[spider docs]: /integrations/spider/ +[ssdp docs]: /integrations/ssdp/ +[stream docs]: /integrations/stream/ +[sun docs]: /integrations/sun/ +[system_log docs]: /integrations/system_log/ +[tado docs]: /integrations/tado/ +[template docs]: /integrations/template/ +[tesla docs]: /integrations/tesla/ +[toon docs]: /integrations/toon/ +[upnp docs]: /integrations/upnp/ +[volumio docs]: /integrations/volumio/ +[volvooncall docs]: /integrations/volvooncall/ +[webostv docs]: /integrations/webostv/ +[wiffi docs]: /integrations/wiffi/ +[wirelesstag docs]: /integrations/wirelesstag/ +[withings docs]: /integrations/withings/ +[wolflink docs]: /integrations/wolflink/ +[workday docs]: /integrations/workday/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yandex_transport docs]: /integrations/yandex_transport/ +[yeelight docs]: /integrations/yeelight/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[zone docs]: /integrations/zone/ diff --git a/source/images/blog/2020-08-0.114/dark-mode.png b/source/images/blog/2020-08-0.114/dark-mode.png new file mode 100644 index 00000000000..9c7ad5a1775 Binary files /dev/null and b/source/images/blog/2020-08-0.114/dark-mode.png differ diff --git a/source/images/blog/2020-08-0.114/repeat-ui.png b/source/images/blog/2020-08-0.114/repeat-ui.png new file mode 100644 index 00000000000..3c963f1ae49 Binary files /dev/null and b/source/images/blog/2020-08-0.114/repeat-ui.png differ