From 626de54f3221c24d39108ae4d85e7ef834faaef6 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 24 Feb 2021 22:17:37 +0100 Subject: [PATCH 01/27] Add initial beta release notes for 2021.3.0 --- _config.yml | 8 +- .../_posts/2021-02-03-release-20213.markdown | 2325 +++++++++++++++++ 2 files changed, 2328 insertions(+), 5 deletions(-) create mode 100644 source/_posts/2021-02-03-release-20213.markdown diff --git a/_config.yml b/_config.yml index 4f0f0f933bb..8291b7336ed 100644 --- a/_config.yml +++ b/_config.yml @@ -105,9 +105,9 @@ social: # Home Assistant release details current_major_version: 2021 -current_minor_version: 2 -current_patch_version: 3 -date_released: 2021-02-11 +current_minor_version: 3 +current_patch_version: 0 +date_released: 2021-03-03 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. @@ -162,7 +162,6 @@ defaults: values: toc: true - # Support for files Jekyll will normally exclude include: - "_headers" @@ -175,7 +174,6 @@ toc: min_level: 2 # default: 1 max_level: 3 # default: 6 - # Configuration for installation pages installation: versions: diff --git a/source/_posts/2021-02-03-release-20213.markdown b/source/_posts/2021-02-03-release-20213.markdown new file mode 100644 index 00000000000..2d9ae6c3da1 --- /dev/null +++ b/source/_posts/2021-02-03-release-20213.markdown @@ -0,0 +1,2325 @@ +--- +layout: post +title: "2021.3: Beta release notes" +description: "Beta release notes for the 2021.3 release." +date: 2021-02-24 00:00:00 +date_formatted: "March 3, 2021" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2021-03/social.png +feedback: true +--- + + + +These are the beta release notes for Home Assistant Core 2021.3 (and is thus a +work in progress). + +If you encounter any issues with the beta release, please report them on GitHub: + +- Issues with integrations, automations and such (Core related):
+ +- Issues with the frontend/Lovelace:
+ +- Issues with the Supervisor:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +description (not in the title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +- [My Home Assistant](#my-home-assistant) +- [New UI for doing service calls](#new-ui-for-doing-service-calls) +- [Fan integration](#fan-integration) +- [Suggested areas](#suggested-areas) +- [Z-Wave JS update](#z-wave-js-update) +- [MQTT trigger templating](#mqtt-trigger-templating) +- [Help us improving the documentation](#help-us-improving-the-documentation) +- [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) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +## My Home Assistant + + + +Today we present you My Home Assistant. + +To be more helpful, we often want to link you to a specific page in your +Home Assistant instance. However, each Home Assistant instance is hosted at a +different URL. Yours might be `http://homeassistant.local:8123`, or something +completely different. + +My Home Assistant allows the documentation, forums or any other website, to +link you to specific pages in your Home Assistant instance, without knowing +the URL of your instance. + +My Home Assistant allows you to store the URL of your instance so that websites +can link to your instance directly. + + + +All the data is stored locally in your browser. At no point will any data leave +your network. Also, My Home Assistant only redirects you to pages that provide +you with information about your instance or help you start an action. + +Following a link from My Home Assistant will never make any changes to your +instance and only a predefined, safe set, of URLs are allowed. + +Long story short! We can do a lot of helpful things with this, for example the +following buttons will bring your places on your instance: + +{% my integration badge %} {% my info badge %} {% my supervisor badge %} {% my automations badge %} + +But we can make buttons or links to a lot of screen, and even help you start +a configuration for an integration, import a Blueprint, link to an add-on page, +and a lot more. + +Additionally, we have added a link/badge generator, so you can create your +own links, for e.g., adding to a Blueprint on the Blueprint Exchange. + + + +## New UI for doing service calls + + + +This release adds a new UI for doing service calls. These can be found +in multiple places, that all have adjusted with a shiny new UI; + +- The {% my developer_services title="services" %} tab in the {% my developer_services title="Developer Tools" %}. +- Doing service calls in the {% my automations title="automation" %} UI editor. +- Doing service calls in the {% my scripts title="script" %} UI editor. + + + +The UI may look familiar, as it uses the same UI parts as used by the recently +introduced Blueprints. + +Not all service calls will show this slick new UI yet, as the integrations +service descriptions need to be adjusted to with this. + +## Fan integration + + +Got a big overhaul! Now works with speed percentages instead of the previous +low, mid, high, off. + +## Suggested areas + + + +Integrations can now suggest areas to devices. For example, the Hue integration +can now suggest an area based on the Hue group it is in. + +- Implement suggested_area in the device registry ([@bdraco] - [#45940]) +- Add suggested area support to nuheat ([@bdraco] - [#46801]) ([nuheat docs]) +- Implement suggested area for netatmo ([@bdraco] - [#46802]) ([netatmo docs]) +- Add suggested area to nexia ([@bdraco] - [#46776]) ([nexia docs]) +- Implement suggested area in lutron_caseta ([@bdraco] - [#45941]) ([lutron_caseta docs]) +- Add suggested area to hunterdouglas_powerview ([@bdraco] - [#46774]) ([hunterdouglas_powerview docs]) +- Implement suggested areas in bond ([@bdraco] - [#45942]) ([bond docs]) +- Implement suggested area in roku ([@ctalkington] - [#46819]) ([roku docs]) +- Add suggested area support to Sonos ([@bdraco] - [#46794]) ([sonos docs]) +- Add suggested area to tado ([@bdraco] - [#46932]) ([tado docs]) +- Add suggested area support to isy994 ([@bdraco] - [#46927]) ([isy994 docs]) + + +## Z-Wave JS update + + + +- Enhance platform discovery for zwave_js ([@marcelveldt] - [#46355]) ([zwave_js docs]) +- Discover HRT4-ZW / SRT321 SetPoint in zwave_js ([@gsemet] - [#46625]) ([zwave_js docs]) +- Add zwave_js thermostat fan mode and fan state support ([@raman325] - [#46793]) ([zwave_js docs]) +- add name and target filter to zwave_js lock services.yaml ([@raman325] - [#46914]) ([zwave_js docs]) +- Test zwave_js GE 12730 fan controller device-specific discovery ([@kpine] - [#46840]) ([zwave_js docs]) +- Add zwave_js/get_log_config and zwave_js/update_log_config WS API commands ([@raman325] - [#46601]) ([zwave_js docs]) +- Add zwave_js set_config_parameter WS API command ([@raman325] - [#46910]) ([zwave_js docs]) +- Add zwave_js constant for add-on slug ([@MartinHjelmare] - [#46950]) ([zwave_js docs]) +- Return states list from zwave_js get_config_parameters websocket if available ([@cgarwood] - [#46954]) ([zwave_js docs]) +- Catch more zwave_js errors ([@MartinHjelmare] - [#46957]) ([zwave_js docs]) +- Add zwave_js.set_config_parameter service ([@raman325] - [#46673]) ([zwave_js docs]) +- Improve zwave_js config flow ([@MartinHjelmare] - [#46906]) ([zwave_js docs]) +- Add zwave_js.refresh_value service ([@raman325] - [#46944]) ([zwave_js docs]) +- deep copy zwave_js state in test fixtures so tests are more isolated ([@raman325] - [#46976]) ([zwave_js docs]) +- Extend zwave_js discovery scheme for lights ([@marcelveldt] - [#46907]) ([zwave_js docs]) +- Add barrier covers to zwave_js integration ([@kpine] - [#46379]) ([zwave_js docs]) + +## MQTT trigger templating + +Added support for templating MQTT triggers. This allows for, e.g., making +blueprints for MQTT Blueprints (e.g., use a MQTT topic or payload as an input). + + + +- Support templating MQTT triggers ([@emontnemery] - [#45614]) ([automation docs]) ([mqtt docs]) + +## Help us improving the documentation + + + +We have recently added a feedback menu to the bottom of each page in our +documentation. Help us out! + +Go to the page of one of your favorite integrations, and see what can be +improved. Maybe you can suggest an edit, or add feedback to the page. + +This way we can all contribute in improving our documentation! + +## Other noteworthy changes + + + +- Support blocking trusted network from new ip ([@elupus] - [#44630]) ([auth docs]) ([http docs]) ([websocket_api docs]) +- Add vicare heat pump sensors ([@crazyfx1] - [#41413]) ([vicare docs]) +- Add transitiontime to hue scene service ([@Nixon506E] - [#45785]) ([hue docs]) +- Add support for Shelly battery operated devices ([@thecode] - [#45406]) ([shelly docs]) +- Add new features to Apple TV media player ([@postlund] - [#45828]) ([apple_tv docs]) +- Add select selector for blueprints ([@EPMatt] - [#45803]) +- Support templates in event triggers ([@emontnemery] - [#46207]) ([homeassistant docs]) +- Enhance MQTT cover platform ([@thecode] - [#46059]) ([mqtt docs]) (breaking-change) +- Add hive hub 360 sensors ([@KJonline] - [#46320]) ([hive docs]) +- Add additional supported feature support to universal media player ([@raman325] - [#44711]) ([universal docs]) +- Allow users to set device class for universal media player ([@raman325] - [#46550]) ([universal docs]) +- Add Home Assistant color ([@frenck] - [#46751]) ([light docs]) +- Add rtsp transport options to generic camera ([@uvjustin] - [#46623]) ([generic docs]) +- Add support for "alias" in script steps device, device_condition, and conditions ([@emontnemery] - [#46647]) +- Add support for disabling config entries ([@emontnemery] - [#46779]) ([config docs]) + +- Show flows in progress when picking a handler (#8368) @bramkragten +- Fix excessive rerendering of history charts (#8340) @larena1 +- Add clipboard button (#8411) @KTibow +- Add additional weblink attributes (#8295) @cdce8p +- Allow to disable config entry (#8442) @bramkragten +- Add add-on selector/picker (#8422) @ludeeus +- Support binary sensor batteries (#8367) @Noltari +- Migrate to codemirror 6 (#8382) @bramkragten + + +## New Integrations + +We welcome the following new integrations this release: + +- [AEMET OpenData][aemet docs], added by [@Noltari] +- [ClimaCell][climacell docs], added by [@raman325] +- [FAA Delays][faadelays docs], added by [@ntilley905] +- [Honeywell Lyric][lyric docs], added by [@timmo001] +- [KMTronic][kmtronic docs], added by [@dgomes] +- [Litter-Robot][litterrobot docs], added by [@natekspencer] +- [Mazda Connected Services][mazda docs], added by [@bdr99] +- [Mullvad VPN][mullvad docs], added by [@meichthys] +- [My Home Assistant][my docs], add by [@bramkragten] +- [Rituals Perfume Genie][rituals_perfume_genie docs], added by [@milanmeu] +- [SmartTub][smarttub docs], added by [@mdz] +- [Subaru][subaru docs], adde by [@G-Two] + +## New Platforms + +The following integration got support for a new platform: + +- [Aurora][aurora docs] has now support for sensors, added by [@djtimca] +- [KNX][knx docs] added support for fans, added by [@crazyfx1] +- [Templates][template docs] can now be used to create weather entities, added by [@dgomes] +- [VeSync][vesync docs] now support their dimmer switches, added by [@decompil3d] +- [WiLight][wilight docs] support covers now, added by [@leofig-rj] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [ASUSWRT][asuswrt docs], done by [@ollo69] +- [Keenetic NDMS2 Routers][keenetic_ndms2 docs], done by [@foxel] +- [LiteJet][litejet docs], done by [@joncar] +- [MySensors][mysensors docs], done by [@functionpointer] +- [Nuki][nuki docs], done by [@pree] +- [Philips TV][philips_js docs], done by [@elupus] +- [Xiaomi Miio][xiaomi_miio docs] (partially), done by [@starkillerOG] + +## 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. + +{% details "Custom integrations: Version warning" %} + +Custom integrations now require a `version` key in their manifest file, this +also means that all custom integrations now require a manifest file. + +If you are using a legacy custom integration like `custom_components/awesome.py` +this now needs to move to `custom_components/awesome/__init__.py` so you can +add `custom_components/awesome/manifest.json` to it. + +For more information about integration, manifests have a look here: + + +**For now, this will create a warning on startup.** But this will eventually be +blocked from loading if it's missing a version in the manifest. + +**If you see these warnings, please report the issue with the author +of that custom integration.** + +([@ludeeus] - [#45919]) + +{% enddetails %} + +{% details "Fan" %} + +The fan entity model has changed to split named speeds into percentages in the range +from 0 (off)-100 and preset modes. + +**Why change?** + +This change allowed us to expand the number of supported speeds to accommodate additional +fan models in Home Assistant. + +We had 3 fan speeds and that worked great as long as the fan had no more than 3 speeds. + +Over time we received a number of requests to add fans with 4, 5, or even more +speeds and preset modes. This put us in the difficult position of having to +reject this support because the underlying fan model didn’t support it. + +Percentages were chosen because they can represent up to 100 speeds which should +accommodate all fans. Additionally, it’s a lot easier to ask your voice +assistant to set the fan to 20% then remember that medium-low is actually +low-medium or have to learn and remember how to say the speeds for every +fan model you want to control. + +**What to change?** + +Calls in automations and scripts to `fan.set_speed` should be replaced: + +- Calls that set a speed should use `fan.set_percentage`. +- Calls that set a preset mode should use `fan.set_preset_mode`. + +The following speeds existed in core integration and will now be automatically +identified as preset modes: `auto`, `smart`, `interval`, `idle`, and `favorite`. + +Both of the new calls are backward compatible. + +Calls in automations and scripts to `fan.turn_on` that use the `speed` attribute +should be switched to use the `percentage` or `preset_mode` attribute once the +underlying integration has been updated to support it. + +All core fans have been updated to ensure that calls to the `fan.turn_on` +service map `percentage` or `preset_mode` to `speed` for backwards compatibility. + +([@bdraco] - [#45407]) ([fan docs]) + +{% enddetails %} + +{% details "Template: Fan" %} + +Template fans have been updated for the new entity model that uses a percentage +for the speed. + +The following configuration options have been deprecated: `speed_template`, `set_speed`, and `speeds`. + +The replacement options are `percentage_template` and `set_percentage`. There +is no replacement for `speeds` since the percentage is always from 1-100 along +with 0 for off. + +([@bdraco] - [#45478]) ([template docs]) + +{% enddetails %} + +{% details "Hyperion" %} + +Hyperion has fully transitioned to configuration via UI. YAML configuration has +been removed. Existing YAML configuration has already been imported +automatically in the previous releases and can now safely be removed from your +configuration files. + +([@dermotduffy] - [#45690]) ([hyperion docs]) + +{% enddetails %} + +{% details "Nuki" %} + +The Nuki integration is now configurable via the UI. The YAML configuration +is now deprecated. + +You existing YAML configuration will be automatically imported on upgrade and +can be safely removed from your YAML configuration after upgrading. + +([@pree] - [#45664]) ([nuki docs]) + +{% enddetails %} + +{% details "CalDAV" %} + +For CalDAV custom calendars, now only matching events are shown in the calendar +frontend, instead of all events for this calendar. + +Although, this is technically a bugfix, if you didn't notice it before, it might +now surprise you. + +([@inytar] - [#45701]) ([caldav docs]) + +{% enddetails %} + +{% details "Synology DSM" %} + +All CPU-related sensors were named with "Load" which is not correct because +there is a difference between CPU load *average* and CPU utilization. + +Units have been corrected. + +Any automation that consumes this data may need to be updated. + +([@mib1185] - [#45500]) + +{% enddetails %} + +{% details "LG Soundbar" %} + +If `discovery` is used the entity will get a new `entity_id` derived from the +hostname of the soundbar. This means the `entity_id` can not be changed anymore +since there is currently no way to get a `unique_id` from the device. + +([@bernimoses] - [#42044]) ([lg_soundbar docs]) + +{% enddetails %} + +{% details "MySensors" %} + +MySensors has fully transitioned to configuration via UI. Existing YAML +configuration is automatically migrated and imported, and can now safely be +removed from your configuration files after upgrading. + +No changes to YAML are applied after the migration has happened. +If you need to change anything, use the frontend. + +([@functionpointer] - [#45421]) ([mysensors docs]) + +{% enddetails %} + +{% details "MQTT: Covers" %} + +MQTT cover `value_template` is deprecated to use for extracting position, +support will be removed in Home Assistant Core 2021.6. + +Instead of using `value_template`, `position_template` should be used. + +MQTT cover `tilt_invert_state` is deprecated, instead `tilt_min` and `tilt_max` +should be used. Support for `tilt_invert_state` will be removed in Home +Assistant Core 2021.6. + +([@thecode] - [#46059]) ([mqtt docs]) + +{% enddetails %} + +{% details "Cameras and Streams" %} + +Removes the internal `stream` components `record` service. + +This service is meant to be used internally only by `camera` so this is not +expected to be a problem in practice as you should be using `camera.record` +instead. + +([@allenporter] - [#45431]) ([camera docs]) ([generic docs]) ([nest docs]) ([stream docs]) + +{% enddetails %} + +{% details "HTTP: base_url" %} + +The HTTP `base_url` URL setting was marked deprecated in Home Assistant Core +0.110 and replaced by the new internal & external URL settings that are +available in the UI. + +This release removes the fallback logic to the old `base_url` setting. If you +still have an `base_url` configured in the HTTP section of your YAML +configuration, please remove it. + +([@frenck] - [#46316]) + +{% enddetails %} + +{% details "MQTT: Lights" %} + +The MQTT light with template schema will now send a `float` instead of an `int` +with the transition key. + +Lights that require an `int` instead of a `float` can restore the original +functionality by using the following in the template for specifying the +transition: + +```txt +{{ transition|int }} +``` + +([@kangaroomadman] - [#46385]) ([mqtt docs]) + +{% enddetails %} + +{% details "Philips TV"%} + +Configuration via YAML is now deprecated and you existing YAML configuration +will be automatically imported into the UI on first run. If your TV is not +running on first start, you will need to complete the configuration from +integration screen once your TV us online. + +The previous `turn_on_action` will not be imported, and must be re-created as a +device trigger automation. + +([@elupus] - [#45784]) ([philips_js docs]) + +{% enddetails %} + +{% details "ASUSWRT" %} + +The legacy device tracker `DeviceScanner` was replaced with the new device +tracker implementation `ScannerEntity`. + +You should remove references to platform `asuswrt` in `device_tracker` section +in your YAML configuration and update person device tracker with the new entity. + +The YAML key `dnsmasq`, `interface` and `require_ip` now are managed as +integration options. The values present in YAML are imported in the options +the first time that the integration is loaded. + +All sensors are initially created as disabled and can be enabled from ASUSWRT +device configuration instead of using YAML configuration. + +([@ollo69] - [#46468]) ([asuswrt docs]) + +{% enddetails %} + +{% details "Keenetic NDMS2 Routers" %} + +Keenetic NDMS2 Routers are now configured and managed from the UI. Existing +YAML configuration will be automatically imported and can be safely removed +after upgrading. + +The upgraded platform also adds: + +- Entities and devices manageable from UI. +- Binary sensors for router connection status. +- Support for monitoring multiple interfaces. + +([@foxel] - [#38353]) ([keenetic_ndms2 docs]) + +{% enddetails %} + +{% details "Automations" %} + +If an automation trigger template already renders as `true` on Home Assistant +Core startup, it will no longer trigger at startup. This bug fix prevents +unintended triggers of automations as startup, but might cause a different +behavior than before. + +([@amelchio] - [#46423]) ([template docs]) + +Scripts and automations are now more careful about reporting problems with +conditions. For example, a `state` condition that references an unavailable +entity will log a message warning about the problem. Depending on the +circumstances when such errors happen, the flow of the automation +(i.e., stop/continue) might end up different from before. + +([@amelchio] - [#46838]) ([automation docs]) ([homeassistant docs]) + +{% enddetails %} + +{% details "Xiaomi Miio" %} + +Xiaomi Miio Switch, and Vacuum platforms should now be set up using the UI, +please remove the old YAML configuration from your configuration file. + +They are now automatically discovered, if not, click Configuration in the +sidebar, then click Integrations and then click the + icon in the lower right +and find Xiaomi Miio. + +Or click: {% my config_flow_start title="Add Integration" domain="xiaomi_miio" badge %} + +Select the option “Connect to a Xiaomi Miio Device” and click submit, +follow the setup instructions. + +([@starkillerOG] - [#46179] [#46669]) ([xiaomi_miio docs]) + +{% enddetails %} + +{% details "HomeKit" %} + +HomeKit pairings and accessory IDs from Home Assistant Core version 0.109 and +earlier are no longer migrated on upgrade. + +Users upgrading directly to 2021.3 from 0.109 and older should upgrade to +2021.2 first if they wish to preserve HomeKit configuration and avoid re-pairing +the bridge. + +This change does not affect upgrades from 0.110 and later. + +([@bdraco] - [#46616]) ([homekit docs]) + +{% enddetails %} + +{% details "Google Assistant" %} + +Requests for closing/opening covers fully from Google Assistant will now use +`close`/`open` service instead of `set_postion` service. This a a revert of an +unexpected breaking change. + +([@elupus] - [#46602]) ([google_assistant docs]) + +{% enddetails %} + +{% details "Habitica" %} + +Habitica has fully transitioned to configuration via UI. Existing YAML +configuration is automatically migrated and imported, and can now safely be +removed from your configuration files after upgrading. + +([@leikoilja] - [#38910]) ([habitica docs]) + +{% enddetails %} + +{% details "SSDP" %} + +SSDP searches now binds to `0.0.0.0` instead of each interface separately. +Everything was still discovered in testing on a server with multiple interfaces. + +([@bdraco] - [#46554]) ([ssdp docs]) + +{% enddetails %} + +{% details "Z-Wave JS" %} + +Minimum required zwave-js-server version is now 1.0.0. +You need to run this server version at mimimum for the integration to work. + +([@marcelveldt] - [#46983]) ([zwave_js docs]) + +{% enddetails %} + +{% details "Bond" %} + +Support for bond devices with up and down lights has been added. Previously, +if the device had two lights, only a single light entity would be created that +would not function properly. The functional light entity will need to be +manually removed. + +([@bdraco] - [#46233]) ([bond docs]) + +{% enddetails %} + +{% details "KNX" %} + +Weather entity: Renamed `expose_sensors` to `create_sensors` to prevent +confusion with the KNX `expose_sensor` function. + +([@farmio] - [#46809]) ([knx docs]) + +{% enddetails %} + +{% details "Honeywell Total Connect Alarm" %} + +To support user equipment that requires the entry of a usercode in addition to +username and password, now all users must configure a usercode. + +This can be done by updating the integration in the User Interface via +{% my integrations title="Configuration > Integrations" %}. + +The use of YAML configuration is no longer supported. + +([@austinmroczek] - [#39199]) ([totalconnect docs]) + +{% enddetails %} + +{% details "Tado" %} + +Polling interval of 15 seconds causes high load on Tado servers and does not +provide enough value to warrant it. Tado plans to introduce a rate limit to +prevent such misuse of the API, therefore the polling interval needs to be +increased to make sure the integration works well in the future. + +([@macrosak] - [#46915]) ([tado docs]) + +{% enddetails %} + +{% details "LiteJet" %} + +LiteJet is now configured via the UI. Existing YAML configurations will +automatically be imported and can be removed after completing the upgrade. + +LiteJet's `include_switches` YAML option has been removed. Switches can be +enabled via the integration's entity list in the UI. + +LiteJet's `exclude_names` YAML option has been removed. Undesired entities can +be disabled via the integration's entity list in the UI. + +([@joncar] - [#44409]) ([litejet docs]) + +{% enddetails %} + +{% details "Nest" %} + +The nest `FAN_ON` mode now sets the device timer to use the max duration of +12 hours, rather than the default of 15 minutes. If you would like the fan to +turn off sooner may use an automation with `timer` to set `FAN_OFF` sooner. + +([@allenporter] - [#46489]) ([nest docs]) + +{% enddetails %} + +## Farewell to the following + +The following integrations are no longer available as of this release: + +- **CoinMarketCap** has been removed, the used API has been out of service + for a long time already. ([@frenck] - [#46615]) +- **Crime Reports** has been removed, as the API is no longer available. + ([@frenck] - [#46312]) +- **Nuimo** was in a non working state for a long time now. + ([@rngtng] - [#45600]) +- **Synology** has been removed, the Synology DSM integration provides a full + replacement. ([@thecode] - [#46482]) +- **xFinity** Was previously marked deprecated. It relies on web scraping to + function, which is no longer allowed. + ([@thecode] - [#46484]) + + +## All changes + +{% details "Click to see all changes!" %} + +- Bump version to 2021.3.0dev0 ([@frenck] - [#45617]) +- Clean tcp tests ([@oxygen0211] - [#41673]) ([tcp docs]) +- Separate fan speeds into percentages and presets modes ([@bdraco] - [#45407]) ([fan docs]) (breaking-change) +- Update ozw to use new fan entity model ([@bdraco] - [#45577]) ([ozw docs]) +- Update lutron_caseta manufacturer string ([@bdraco] - [#45637]) ([lutron_caseta docs]) +- Update wemo to use new fan entity model ([@bdraco] - [#45582]) ([wemo docs]) +- Update smartthings to use new fan entity model ([@bdraco] - [#45592]) ([smartthings docs]) +- Update zwave_js to use new fan entity model ([@bdraco] - [#45543]) ([zwave_js docs]) +- Update bond to use new fan entity model ([@bdraco] - [#45534]) ([bond docs]) +- Update isy994 to use new fan entity model ([@bdraco] - [#45536]) ([isy994 docs]) +- Update zwave to use new fan entity model ([@bdraco] - [#45541]) ([zwave docs]) +- Add support for percentage speeds and preset modes to template fan ([@bdraco] - [#45478]) ([template docs]) (breaking-change) +- Update homekit_controller to use new fan entity model ([@bdraco] - [#45547]) ([homekit_controller docs]) +- Support blocking trusted network from new ip ([@elupus] - [#44630]) ([auth docs]) ([http docs]) ([websocket_api docs]) +- Upgrade beautifulsoup4 to 4.9.3 ([@fabaff] - [#45619]) ([scrape docs]) +- Update homekit to use new fan entity model ([@bdraco] - [#45549]) ([homekit docs]) +- Bump gios library ([@bieniu] - [#45639]) ([gios docs]) +- Update lutron_caseta to use new fan entity model ([@bdraco] - [#45540]) ([lutron_caseta docs]) +- Unregister webhook if it can't be established successfully ([@cgtobi] - [#42791]) ([netatmo docs]) +- Update vesync to use new fan entity model ([@bdraco] - [#45585]) ([vesync docs]) +- Add first set of tests to devolo Home Control integration ([@Shutgun] - [#42527]) ([devolo_home_control docs]) +- Update comfoconnect to use new fan entity model ([@bdraco] - [#45593]) ([comfoconnect docs]) +- Update esphome to use new fan entity model ([@bdraco] - [#45590]) ([esphome docs]) +- Add reauthentication flow to fritzbox integration ([@jloehr] - [#45587]) ([fritzbox docs]) +- Replace strange "dict logic" in AirVisual pollutant level sensors (2 of 2) ([@bachya] - [#44903]) ([airvisual docs]) +- Add last_lost_timestamp attribute to Tile ([@bachya] - [#45681]) ([tile docs]) +- Use new fixtures in devolo Home Control tests ([@Shutgun] - [#45669]) ([devolo_home_control docs]) +- Add vicare heat pump sensors ([@crazyfx1] - [#41413]) ([vicare docs]) +- Stop Tile setup on invalid auth ([@bachya] - [#45683]) ([tile docs]) +- Remove YAML support from Hyperion integration ([@dermotduffy] - [#45690]) ([hyperion docs]) (breaking-change) +- Fix formatting IntEnum as hex in 3.8.x ([@teharris1] - [#45686]) ([insteon docs]) +- Update bootstrap script ([@balloob] - [#45692]) +- Use pure rgb and allow to set only brightness for fibaro ([@aizerin] - [#45673]) ([fibaro docs]) +- Refactoring upnp component ([@StevenLooman] - [#43646]) ([upnp docs]) +- Bump crpytography to 3.3.1 ([@balloob] - [#45691]) +- Add config flow for nuki ([@pree] - [#45664]) ([nuki docs]) (breaking-change) +- Address late review comments for upnp ([@StevenLooman] - [#45696]) ([upnp docs]) +- Add override duration for genius hub switches ([@GeoffAtHome] - [#45558]) ([geniushub docs]) +- Only show matching caldav events in calendar ([@inytar] - [#45701]) ([caldav docs]) (breaking-change) +- Add patch method to rest switch component ([@o-l-o] - [#45663]) ([rest docs]) +- Improve HomeKit Accessory Mode UX ([@bdraco] - [#45402]) ([homekit docs]) +- Updates to dev container ([@balloob] - [#45706]) +- Use a fully mocked credential ([@elupus] - [#45707]) +- Allow new UniFi flows to update existing entries if host and site match ([@Kane610] - [#45668]) ([unifi docs]) +- Add unit of measurement and icon for sleep score ([@KTibow] - [#45705]) ([withings docs]) +- During tests we can run with lowest rounds ([@elupus] - [#45710]) +- Added Romanian voice to Google Cloud TTS ([@cristian-vescan] - [#45704]) ([google_cloud docs]) +- Add reboot_gateway service to Velux ([@pawlizio] - [#43198]) ([velux docs]) +- Fix ozw init tests ([@MartinHjelmare] - [#45718]) ([ozw docs]) +- Set default position value for cover action ([@spacegaier] - [#45670]) ([cover docs]) +- Remove ggravlingen from codeowners ([@ggravlingen] - [#45723]) +- Advanced testing for Nuki config flow ([@pree] - [#45721]) ([nuki docs]) +- Upgrade youtube_dl to version 2021.01.24.1 ([@chpego] - [#45724]) ([media_extractor docs]) +- Do not cache frontend files during dev ([@balloob] - [#45698]) ([frontend docs]) +- Fix feedback from UVC ([@rfleming71] - [#45630]) ([uvc docs]) +- Implement person significant change ([@ntilley905] - [#45713]) ([person docs]) +- Add significant change support to lock ([@bachya] - [#45726]) ([lock docs]) +- Add significant change support to binary_sensor ([@bachya] - [#45677]) ([binary_sensor docs]) +- Use DataUpdateCoordinator for solaredge ([@bdraco] - [#45734]) ([solaredge docs]) +- IHC service functions support for multiple IHC controllers ([@dingusdk] - [#44626]) ([ihc docs]) +- Upgrade pysonos to 0.0.40 ([@amelchio] - [#45743]) ([sonos docs]) +- Use fixed due date only for comparison in todoist ([@Guliver] - [#43300]) ([todoist docs]) +- Add initial GitHub Issue Form ([@frenck] - [#45752]) +- Upgrade mypy to 0.800 ([@scop] - [#45485]) +- Update dyson for the new fan entity model ([@bdraco] - [#45762]) ([dyson docs]) +- Bump ROVA package requirement ([@kochen] - [#45755]) ([rova docs]) +- Update insteon to use new fan entity model ([@bdraco] - [#45767]) ([insteon docs]) +- Honeywell Lyric Integration ([@timmo001] - [#39695]) ([lyric docs]) (new-integration) +- Add WLED unload entry result correctly ([@frenck] - [#45783]) ([wled docs]) +- Upgrade pre-commit to 2.10.0 ([@frenck] - [#45777]) +- Fix polling and update of camera state for synology_dsm ([@mib1185] - [#43683]) ([synology_dsm docs]) +- Resolve homekit cover adjustment slowness ([@bdraco] - [#45730]) ([homekit docs]) +- Update homekit for new async library changes ([@bdraco] - [#45731]) ([homekit docs]) +- Move homekit accessory creation to async ([@bdraco] - [#45788]) ([homekit docs]) +- Change via_hub to via_device ([@iMicknl] - [#45804]) ([roon docs]) ([somfy docs]) +- Remove misleading "for" from custom integration warning message ([@scop] - [#45811]) +- Add izone control zone ([@sgryphon] - [#43984]) ([izone docs]) +- Remove Nuimo integration ([@rngtng] - [#45600]) ([nuimo_controller docs]) (breaking-change) +- Increase test coverage for stream worker ([@allenporter] - [#44161]) ([stream docs]) +- Code quality improvements to UniFi integration ([@Kane610] - [#45794]) ([unifi docs]) +- Add support for Keg and Airlock to Plaato using polling API ([@JohNan] - [#34760]) ([plaato docs]) +- Correct synology_dsm CPU sensor's naming and measurement unit ([@mib1185] - [#45500]) (breaking-change) +- Bump brother library to version 0.2.0 ([@bieniu] - [#45832]) ([brother docs]) +- Add ability to configure AirVisual with city/state/country in UI ([@bachya] - [#44116]) ([airvisual docs]) +- Allow Influxdb CA path in verify_ssl ([@alexpilotti] - [#45270]) ([influxdb docs]) +- Upgrade colorlog to 4.7.2 ([@fabaff] - [#45840]) +- Upgrade TwitterAPI to 2.6.5 ([@fabaff] - [#45842]) ([twitter docs]) +- Lyric Code Improvements ([@timmo001] - [#45819]) ([lyric docs]) +- Add sensors to Lyric integration ([@timmo001] - [#45791]) ([lyric docs]) (new-platform) +- Upgrade sqlalchemy to 1.3.23 ([@fabaff] - [#45845]) ([recorder docs]) ([sql docs]) +- Fix environment_canada high/low temperature display in evenings. ([@michaeldavie] - [#45855]) ([environment_canada docs]) +- Add Insteon entities in event loop ([@teharris1] - [#45829]) ([insteon docs]) +- Ensure homekit never picks a port that another config entry uses ([@bdraco] - [#45433]) ([homekit docs]) +- Update alexa/const.py to reflect docs ([@kriansa] - [#45806]) ([alexa docs]) +- Add fan speed percentage support to google assistant ([@bdraco] - [#45835]) ([google_assistant docs]) +- Upgrade jinja2 to >=2.11.3 ([@fabaff] - [#45843]) +- Upgrade pytz to >=2021.1 ([@fabaff] - [#45839]) +- Upgrade watchdog to 1.0.2 ([@fabaff] - [#45848]) ([folder_watcher docs]) +- Upgrade emoji to 1.2.0 ([@fabaff] - [#45847]) ([mobile_app docs]) +- Bump Freebox to 0.0.9 ([@Quentame] - [#45837]) ([freebox docs]) +- Add transitiontime to hue scene service ([@Nixon506E] - [#45785]) ([hue docs]) +- Add support for Shelly battery operated devices ([@thecode] - [#45406]) ([shelly docs]) +- Homeconnect remote states ([@badguy99] - [#45610]) ([home_connect docs]) +- Fix duplicate lg_soundbar entities and disable polling ([@bernimoses] - [#42044]) ([lg_soundbar docs]) (breaking-change) +- Add Mazda Connected Services integration ([@bdr99] - [#45768]) ([mazda docs]) (new-integration) +- add api to refresh topology ([@dmulcahey] - [#44840]) ([zha docs]) +- Use core constants for command_line auth provider ([@tkdrob] - [#45907]) +- Fix typo in Roomba strings ([@spacegaier] - [#45928]) ([roomba docs]) +- Consistent spelling of IT abbreviations / protocol / format names ([@spacegaier] - [#45913]) +- Enable emulated_hue setting XY color and transition time by client ([@denes44] - [#45844]) ([emulated_hue docs]) +- Fix onvif ConnectionResetError ([@olijouve] - [#45899]) ([onvif docs]) +- Add warning to custom integrations without version ([@ludeeus] - [#45919]) (breaking-change) +- Use bootstrap in devcontainer ([@ludeeus] - [#45968]) +- Fix exception in Shelly sleeping device that switches to polling ([@thecode] - [#45930]) ([shelly docs]) +- Allow manual configuration of ignored singleton config entries ([@emontnemery] - [#45161]) +- Update yarnpkg GPG key ([@ludeeus] - [#45973]) +- Use core constants for alert ([@tkdrob] - [#45935]) ([alert docs]) +- Use core constants for alexa ([@tkdrob] - [#45937]) ([alexa docs]) +- Use core constants for amazon polly ([@tkdrob] - [#45938]) ([amazon_polly docs]) +- Throw error in hassfest when integration is missing version ([@ludeeus] - [#45976]) +- Use core constants for asuswrt ([@tkdrob] - [#46015]) ([asuswrt docs]) +- Use core constants for aws ([@tkdrob] - [#46017]) ([aws docs]) +- Upgrade slixmpp to 1.7.0 ([@fabaff] - [#46019]) ([xmpp docs]) +- Upgrade praw to 7.1.2 ([@fabaff] - [#46012]) ([reddit docs]) +- Fix homekit options not being prefilled ([@bdraco] - [#45926]) ([homekit docs]) +- Use core constants for automation ([@tkdrob] - [#46016]) ([automation docs]) +- Use core constants for delijn ([@tkdrob] - [#46027]) ([delijn docs]) +- User core constants for deutsche_bahn ([@tkdrob] - [#46028]) ([deutsche_bahn docs]) +- Standardize AirVisual helper method in config flow ([@bachya] - [#45999]) ([airvisual docs]) +- Use core constants for doods ([@tkdrob] - [#46043]) ([doods docs]) +- Centralize some Airly constants ([@yuvalabou] - [#45985]) ([airly docs]) +- Force Vera refresh after starting subscription ([@pavoni] - [#46001]) ([vera docs]) +- Use core constants for bmw_connected_drive ([@tkdrob] - [#46042]) ([bmw_connected_drive docs]) +- Use core constants for bluetooth_tracker ([@tkdrob] - [#46041]) ([bluetooth_tracker docs]) +- Fix demo number entity ([@kukulich] - [#45991]) ([demo docs]) +- Improve UniFi tests ([@Kane610] - [#45871]) ([unifi docs]) +- Address Plaato post merge review ([@JohNan] - [#46024]) ([plaato docs]) +- Add unique id to UniFi config entries using the unique id of the site it is controlling ([@Kane610] - [#45737]) ([unifi docs]) +- MySensors config flow ([@functionpointer] - [#45421]) ([mysensors docs]) (breaking-change) +- Activate manual ZHA config flow when no comports detected ([@frenck] - [#46077]) ([zha docs]) +- Add sensor platform for Aurora integration ([@djtimca] - [#43148]) ([aurora docs]) (new-platform) +- Fix race in script wait for trigger step ([@emontnemery] - [#46055]) +- Bump aioharmony from 0.2.6 to 0.2.7 ([@ehendrix23] - [#46075]) ([harmony docs]) +- Use better names for zwave_js platforms that are self describing ([@raman325] - [#46083]) ([zwave_js docs]) +- Exclude disabled rfxtrx entities from async_entries_for_device ([@emontnemery] - [#46102]) ([rfxtrx docs]) +- Fix backwards compatiblity with fan update to new model ([@bdraco] - [#45951]) ([fan docs]) +- Don't defer formatting of log messages ([@emontnemery] - [#44873]) ([logger docs]) +- Convert old deCONZ groups unique ids ([@Kane610] - [#46093]) ([deconz docs]) +- Add new features to Apple TV media player ([@postlund] - [#45828]) ([apple_tv docs]) +- Simplify UniFi entry configuration data ([@Kane610] - [#45759]) ([unifi docs]) +- xknx 0.16.3 ([@farmio] - [#46128]) ([knx docs]) +- Use core constants for envisalink ([@tkdrob] - [#46136]) ([envisalink docs]) +- Use core constants for ffmpeg_motion ([@tkdrob] - [#46137]) ([ffmpeg_motion docs]) +- Use core constants for emulated_hue ([@tkdrob] - [#46092]) ([emulated_hue docs]) +- Remove unused config_flows ([@tkdrob] - [#46188]) ([aws docs]) ([daikin docs]) ([mqtt docs]) ([tellduslive docs]) ([tradfri docs]) ([zwave docs]) +- Use core constants for fixer ([@tkdrob] - [#46173]) ([fixer docs]) +- Use core constants for file integration ([@tkdrob] - [#46171]) ([file docs]) +- Upgrade praw to 7.1.3 ([@fabaff] - [#46073]) ([reddit docs]) +- Add media_player device triggers ([@emontnemery] - [#45430]) ([media_player docs]) +- Increase skybell scan time to reduce timeouts ([@adamoutler] - [#46169]) ([skybell docs]) +- Use core constants for efergy ([@tkdrob] - [#46090]) ([efergy docs]) +- Bump actions/cache from v2 to v2.1.4 (@dependabot - [#46197]) +- Bump actions/stale from v3.0.15 to v3.0.16 (@dependabot - [#46196]) +- Fix dyson service name in services.yaml ([@boralyl] - [#46176]) ([dyson docs]) +- Mark entities as unavailable when they are removed but are still registered ([@balloob] - [#45528]) +- Raise ConditionError for numeric_state errors ([@amelchio] - [#45923]) ([automation docs]) ([bayesian docs]) ([homeassistant docs]) +- Support templating MQTT triggers ([@emontnemery] - [#45614]) ([automation docs]) ([mqtt docs]) +- Bump python-verisure to version 1.7.2 ([@persandstrom] - [#46177]) ([verisure docs]) +- Remove unneeded from_state from device triggers ([@emontnemery] - [#45152]) +- Use core constants for flux ([@tkdrob] - [#46201]) ([flux docs]) +- Use core constants for frontend component ([@tkdrob] - [#46203]) ([frontend docs]) +- Use core constants for google_assistant ([@tkdrob] - [#46204]) ([google_assistant docs]) +- Upgrade praw to 7.1.4 ([@fabaff] - [#46202]) ([reddit docs]) +- Use core constants for fleetgo ([@tkdrob] - [#46200]) ([fleetgo docs]) +- Various type hint improvements ([@scop] - [#46144]) +- Use core constants for google ([@tkdrob] - [#46210]) ([google docs]) +- Pass variables to numeric state trigger templates ([@emontnemery] - [#46209]) ([homeassistant docs]) +- Pass variables to state trigger templates ([@emontnemery] - [#46208]) ([homeassistant docs]) +- Add select selector for blueprints ([@EPMatt] - [#45803]) +- Support templates in event triggers ([@emontnemery] - [#46207]) ([homeassistant docs]) +- Use caplog fixture for log capturing ([@amelchio] - [#46214]) ([automation docs]) ([homeassistant docs]) +- Add my component ([@bramkragten] - [#46058]) ([default_config docs]) ([my docs]) (new-integration) +- Fix sync oath2 scaffold template ([@MartinHjelmare] - [#46219]) +- Upgrade pre-commit to 2.10.1 ([@frenck] - [#46211]) +- Add entity specific force_update for DSMR ([@yurnih] - [#46111]) ([dsmr docs]) +- Fix BT Smarthub device tracker ([@hencoappel] - [#44813]) ([bt_smarthub docs]) +- Add unavailable to Vera ([@pavoni] - [#46064]) ([vera docs]) +- Enhance MQTT cover platform ([@thecode] - [#46059]) ([mqtt docs]) (breaking-change) +- Call setup during devcontainer create ([@balloob] - [#46224]) +- Centralize keepalive logic in Stream class ([@allenporter] - [#45850]) ([stream docs]) +- Update frontend to 20210208.0 ([@bramkragten] - [#46225]) ([frontend docs]) +- Add noltari to Tado code owners ([@Noltari] - [#46216]) +- Allow discovery info accessible from CORS enabled domains ([@balloob] - [#46226]) ([api docs]) +- Downgrade and improve lutron caseta LIP error message ([@bdraco] - [#46236]) ([lutron_caseta docs]) +- Use core constants for group component ([@tkdrob] - [#46239]) ([group docs]) +- Use core constants for helpers ([@tkdrob] - [#46240]) +- Use core constants for greeneye_monitor ([@tkdrob] - [#46238]) ([greeneye_monitor docs]) +- Use core constants for hikvision ([@tkdrob] - [#46247]) ([hikvision docs]) +- Test that variables are passed to wait_for_trigger script action ([@emontnemery] - [#46221]) +- Cleanup bond identifiers and device info ([@bdraco] - [#46192]) ([bond docs]) +- Add support for generic lights to bond ([@bdraco] - [#46193]) ([bond docs]) +- Add DHCP discovery support to Nuki integration ([@pree] - [#46032]) ([nuki docs]) +- Change the API boundary between camera and stream with initial improvement for nest expiring stream urls ([@allenporter] - [#45431]) ([camera docs]) ([generic docs]) ([nest docs]) ([stream docs]) (breaking-change) +- Move camera timeouts to constants ([@allenporter] - [#46262]) ([camera docs]) +- Improve deCONZ tests by using aioclient_mock rather than patching web requests ([@Kane610] - [#45927]) ([deconz docs]) +- Allow to setup of a previously discovered sleeping Shelly device ([@bieniu] - [#46124]) ([shelly docs]) +- Add BPUP (push updates) support to bond ([@bdraco] - [#45550]) ([bond docs]) +- Raise ConditionError for state errors ([@amelchio] - [#46244]) +- Use core constants for homematic ([@tkdrob] - [#46248]) ([homematic docs]) +- Use core constants for image_processing ([@tkdrob] - [#46269]) ([image_processing docs]) +- Use core constants for elkm1 ([@tkdrob] - [#46091]) ([elkm1 docs]) +- Remove unnecessary constant from ihc ([@tkdrob] - [#46268]) ([ihc docs]) +- bump pysmappee ([@bsmappee] - [#46270]) ([smappee docs]) +- Remove unnecessary variable definition in firmata ([@tkdrob] - [#46172]) ([firmata docs]) +- Use core constants for here_travel_time ([@tkdrob] - [#46246]) ([here_travel_time docs]) +- Convert Hive to Async ([@KJonline] - [#46117]) ([hive docs]) +- Fix bug in test found by manual log inspection ([@allenporter] - [#46309]) ([stream docs]) +- Update nest stream URLs expiration ([@allenporter] - [#46311]) ([nest docs]) ([stream docs]) +- Add fan platform to knx ([@crazyfx1] - [#46161]) ([knx docs]) (new-platform) +- Fix race in EntityRegistry.async_device_modified ([@emontnemery] - [#46319]) +- Bump pyav version to 8.03 ([@uvjustin] - [#46315]) ([stream docs]) +- Fix typo ([@emontnemery] - [#46321]) +- Revert multiple interfaces ([@thecode] - [#46300]) ([shelly docs]) +- Add target to service call API ([@bramkragten] - [#45898]) ([api docs]) ([websocket_api docs]) +- Fix deprecated asyncio.wait use with coroutines ([@scop] - [#44981]) +- Remove base_url fallback ([@frenck] - [#46316]) ([http docs]) (breaking-change) +- Use core constants for joaoapps_join ([@tkdrob] - [#46291]) ([joaoapps_join docs]) +- Use core constants for sensor integration ([@tkdrob] - [#46290]) ([integration docs]) +- Hide volume control for cast devices with fixed volume ([@emontnemery] - [#46328]) ([cast docs]) +- Remove defunct Crime Reports integration ([@frenck] - [#46312]) ([crimereports docs]) (breaking-change) +- Use core constants for konnected ([@tkdrob] - [#46322]) ([konnected docs]) +- Replace StrictVersion with AwesomeVersion ([@ludeeus] - [#46331]) ([updater docs]) +- Replace LooseVersion with AwesomeVersion ([@ludeeus] - [#46330]) +- Replace parse_version with AwesomeVersion ([@ludeeus] - [#46329]) ([blueprint docs]) ([hyperion docs]) +- Add WiLight Cover ([@leofig-rj] - [#46065]) ([wilight docs]) (new-platform) +- Bump hatasmota to 0.2.8 ([@emontnemery] - [#46340]) ([tasmota docs]) +- Keep 1 extra segment around after playlist removal ([@uvjustin] - [#46310]) ([stream docs]) +- Remove unnecessary variables from logbook ([@tkdrob] - [#46350]) ([logbook docs]) +- Update wilight for new fan entity model ([@bdraco] - [#45869]) ([wilight docs]) +- Update wilight tests for new fan entity model ([@leofig-rj] - [#46358]) ([wilight docs]) +- Use core constants for logi_circle ([@tkdrob] - [#46359]) ([logi_circle docs]) +- Use core constants for local_file ([@tkdrob] - [#46349]) ([local_file docs]) +- Use core constants for lcn ([@tkdrob] - [#46348]) ([lcn docs]) +- Update WiLight Cover Fan Light ([@leofig-rj] - [#46366]) ([wilight docs]) +- Use activity ids for unique_id for Harmony switches ([@mkeesey] - [#46139]) ([harmony docs]) +- Use core constants for lovelace ([@tkdrob] - [#46368]) ([lovelace docs]) +- Some code cleanups for ESPHome ([@tkdrob] - [#46367]) ([esphome docs]) +- Fix explict return in tesla config flow ([@bdraco] - [#46377]) ([tesla docs]) +- Use core constants for microsoft ([@tkdrob] - [#46369]) ([microsoft docs]) +- Raise ConditionError for template errors ([@amelchio] - [#46245]) +- Clean up kira integration ([@tkdrob] - [#46292]) ([kira docs]) +- Use core constants for mqtt ([@tkdrob] - [#46389]) ([mqtt docs]) +- Use core constants for modbus ([@tkdrob] - [#46388]) ([modbus docs]) +- Clean up kira integration constants ([@tkdrob] - [#46390]) ([kira docs]) +- Allow MQTT template light floating point transition ([@kangaroomadman] - [#46385]) ([mqtt docs]) (breaking-change) +- Raise ConditionError for time errors ([@amelchio] - [#46250]) +- Wait for registries to load at startup ([@emontnemery] - [#46265]) +- Use core constants for nissan_leaf ([@tkdrob] - [#46401]) ([nissan_leaf docs]) +- Use core constants for nmap_tracker ([@tkdrob] - [#46402]) ([nmap_tracker docs]) +- Improve knx fan implementation ([@crazyfx1] - [#46404]) ([knx docs]) +- Use core constants for ohmconnect ([@tkdrob] - [#46413]) ([ohmconnect docs]) +- Migrate mobile_app to RestoreEntity ([@emontnemery] - [#46391]) ([mobile_app docs]) +- Add generic_thermostat unique ID parameter ([@Antoni-Czaplicki] - [#46399]) ([generic_thermostat docs]) +- Add config flow to philips_js ([@elupus] - [#45784]) ([philips_js docs]) (breaking-change) +- Install libpcap-dev for devcontainer ([@chriss158] - [#46106]) +- Correct errors found on post merge review in philips_js ([@elupus] - [#46428]) ([philips_js docs]) +- Use core constants for recollect_waste ([@tkdrob] - [#46416]) ([recollect_waste docs]) +- Postponed evaluation of annotations in core ([@frenck] - [#46434]) +- Use core constants for plugwise ([@tkdrob] - [#46414]) ([plugwise docs]) +- Improve MQTT timeout print ([@emontnemery] - [#46398]) ([mqtt docs]) +- Use core constants for rpi_gpio ([@tkdrob] - [#46442]) ([rpi_gpio docs]) +- Enhance platform discovery for zwave_js ([@marcelveldt] - [#46355]) ([zwave_js docs]) +- Fix cmus remote disconnections ([@kingo55] - [#40284]) ([cmus docs]) +- Add apple tv remote delay command ([@WizBangCrash] - [#46301]) ([apple_tv docs]) +- Enable TCP KEEPALIVE to RFLink for dead connection detection ([@cpainchaud] - [#46438]) ([rflink docs]) +- Use core constants for roomba ([@tkdrob] - [#46441]) ([roomba docs]) +- Allow Modbus "old" config or discovery_info as configuration ([@janiversen] - [#46445]) ([modbus docs]) +- Make some Area and EntityRegistry member functions callbacks ([@emontnemery] - [#46433]) ([config docs]) +- Upgrade sentry-sdk to 0.20.1 ([@frenck] - [#46456]) ([sentry docs]) +- Bump brother library to version 0.2.1 ([@bieniu] - [#46421]) ([brother docs]) +- Postponed evaluation of annotations for integrations ([@frenck] - [#46455]) +- Fix homekit migration not being awaited ([@bdraco] - [#46460]) ([homekit docs]) +- Use core constants for somfy ([@tkdrob] - [#46466]) ([somfy docs]) +- Use core constants for rflink ([@tkdrob] - [#46440]) ([rflink docs]) +- Use core constants for dynalite ([@tkdrob] - [#46044]) ([dynalite docs]) +- Use core constants for homeassistant triggers ([@tkdrob] - [#46472]) ([homeassistant docs]) +- Remove unnecessary gethostbyname() from Shelly integration ([@bieniu] - [#46483]) ([shelly docs]) +- Use core constants for starline ([@tkdrob] - [#46471]) ([starline docs]) +- Use core constants for simplepush ([@tkdrob] - [#46465]) ([simplepush docs]) +- Bump dsmr_parser to 0.28, configure keep_alive_interval ([@RobBie1221] - [#46464]) ([dsmr docs]) +- None optional hass typing in FlowHandler ([@frenck] - [#46462]) +- Remove deprecated Synology integration ([@thecode] - [#46482]) ([synology docs]) (breaking-change) +- Remove deprecated xfinity integration ([@thecode] - [#46484]) ([xfinity docs]) (breaking-change) +- Add Asuswrt Config Flow and Scanner Entities ([@ollo69] - [#46468]) ([asuswrt docs]) (breaking-change) +- Update HAP-python to 3.3.0 for homekit ([@bdraco] - [#46497]) ([homekit docs]) +- Add AEMET OpenData integration ([@Noltari] - [#45074]) ([aemet docs]) (new-integration) +- Improve Elgato code quality ([@frenck] - [#46505]) ([elgato docs]) +- Use core constants for sma ([@tkdrob] - [#46501]) ([sma docs]) +- Use core constants for rpi_rf ([@tkdrob] - [#46500]) ([rpi_rf docs]) +- Use core constants for rmvtransport ([@tkdrob] - [#46502]) ([rmvtransport docs]) +- Update tuya for new fan entity model ([@bdraco] - [#45870]) ([tuya docs]) +- Fix missing condition in nws ([@MatthewFlamm] - [#46513]) ([nws docs]) +- Use core constants for temper ([@tkdrob] - [#46508]) ([temper docs]) +- Use core constants for switcher_kis ([@tkdrob] - [#46507]) ([switcher_kis docs]) +- Use core constants for thethingsnetwork ([@tkdrob] - [#46520]) ([thethingsnetwork docs]) +- Use core constants for trend ([@tkdrob] - [#46521]) ([trend docs]) +- Add hive hub 360 sensors ([@KJonline] - [#46320]) ([hive docs]) +- Clean up template ([@tkdrob] - [#46509]) ([template docs]) +- Add keenetic_ndms2 config flow ([@foxel] - [#38353]) ([keenetic_ndms2 docs]) (breaking-change) +- Add barrier covers to zwave_js integration ([@kpine] - [#46379]) ([zwave_js docs]) +- Improve nest defense against broken event loop on shutdown ([@allenporter] - [#46494]) ([nest docs]) +- Cleanup unused loggers ([@tkdrob] - [#46510]) +- Don't allow recursive secrets loading ([@palfrey] - [#41812]) +- Add myself to RFLink codeowners ([@javicalle] - [#46511]) ([rflink docs]) +- Update modbus test harness ([@janiversen] - [#44892]) ([modbus docs]) +- Do not trigger when template is true at startup ([@amelchio] - [#46423]) ([template docs]) (breaking-change) +- Add support for pre-filtering events to the event bus ([@bdraco] - [#46371]) ([recorder docs]) +- Use core constants for vasttrafik ([@tkdrob] - [#46539]) ([vasttrafik docs]) +- Fix variable name from script refactoring ([@bdraco] - [#46503]) +- Use core constants for uvc ([@tkdrob] - [#46538]) ([uvc docs]) +- Use core constants for volvooncall ([@tkdrob] - [#46543]) ([volvooncall docs]) +- Use core constants for wemo ([@tkdrob] - [#46544]) ([wemo docs]) +- Fix typing on tuya fan percentage ([@bdraco] - [#46541]) ([tuya docs]) +- Add additional supported feature support to universal media player ([@raman325] - [#44711]) ([universal docs]) +- Use core constants for wemo and whois ([@tkdrob] - [#46548]) ([wemo docs]) ([whois docs]) +- Allow users to set device class for universal media player ([@raman325] - [#46550]) ([universal docs]) +- Add additional stream HLS payload tests ([@allenporter] - [#46517]) ([stream docs]) +- Remove @home-assistant/core from MQTT codeowners ([@emontnemery] - [#46562]) ([mqtt docs]) +- Bump hatasmota to 0.2.9 ([@emontnemery] - [#46561]) ([tasmota docs]) +- Convert better from byte value to percentage in futurenow ([@spike411] - [#45042]) ([futurenow docs]) +- Log ffmpeg errors for homekit cameras ([@bdraco] - [#46545]) ([homekit docs]) +- Use httpx in generic camera ([@uvjustin] - [#46576]) ([generic docs]) +- MQTT cover Bugfixes ([@thecode] - [#46479]) ([mqtt docs]) +- Limit fronius error messages on failed connection ([@nielstron] - [#45824]) ([fronius docs]) +- Refactor stream worker responsibilities for segmenting into a separate class ([@allenporter] - [#46563]) ([stream docs]) +- Add config flow to Xiaomi Miio switch ([@starkillerOG] - [#46179]) ([xiaomi_miio docs]) (breaking-change) +- Upgrade blinkpy to 0.17.0 ([@fronzbot] - [#46581]) ([blink docs]) +- Use shared clientsession for sense ([@bdraco] - [#46419]) ([sense docs]) +- Upgrade sentry-sdk to 0.20.2 ([@frenck] - [#46590]) ([sentry docs]) +- Use core constants for xiaomi_aqara ([@tkdrob] - [#46551]) ([xiaomi_aqara docs]) +- Bump tuyaha to 0.0.10 and fix set temperature issues ([@ollo69] - [#45732]) ([tuya docs]) +- Add device_class attribute to ESPHome sensor entities ([@marecabo] - [#46595]) ([esphome docs]) +- Remove support for migrating pre-config entry homekit ([@bdraco] - [#46616]) ([homekit docs]) (breaking-change) +- Add target to services.yaml ([@bramkragten] - [#46410]) ([light docs]) ([sonos docs]) +- Use explicit open/close for covers ([@elupus] - [#46602]) ([google_assistant docs]) (breaking-change) +- Remove defunct CoinMarketCap integration ([@frenck] - [#46615]) ([coinmarketcap docs]) +- Bump python-vlc-telnet to 2.0.1 ([@dmcc] - [#46608]) ([vlc_telnet docs]) +- Use core constants for yeelight ([@tkdrob] - [#46552]) ([yeelight docs]) +- Use update coordinator for Xioami Miio subdevices ([@starkillerOG] - [#46251]) ([xiaomi_miio docs]) +- Fix vlc_telnet state update ([@MartinHjelmare] - [#46628]) ([vlc_telnet docs]) +- Remove unnecessary constants from universal ([@tkdrob] - [#46537]) ([universal docs]) +- Separate HLS logic out of core StreamOutput to prepare for discontinuity ([@allenporter] - [#46610]) ([camera docs]) ([stream docs]) +- Do not provide icon if device class is set in ESPHome config ([@marecabo] - [#46650]) ([esphome docs]) +- Fix exception in stream idle callback ([@allenporter] - [#46642]) ([stream docs]) +- Fix KeyError in comfoconnect percentage ([@esev] - [#46654]) ([comfoconnect docs]) +- Fix version of pip in tox ([@scop] - [#46656]) +- Fix stream keepalive on startup ([@allenporter] - [#46640]) ([camera docs]) +- Add SmartTub integration ([@mdz] - [#37775]) ([smarttub docs]) (new-integration) +- Fix media_pause in vlc_telnet ([@dmcc] - [#46675]) ([vlc_telnet docs]) +- Fix Cloud Google/Alexa check ([@balloob] - [#46681]) ([cloud docs]) +- Add back block_until_done calls removed in PR 46610 ([@allenporter] - [#46680]) ([stream docs]) +- Add sensors to fetch Habitica tasks ([@leikoilja] - [#38910]) ([habitica docs]) (breaking-change) +- Remove exception handling for AttributeError in wemo ([@esev] - [#46674]) ([wemo docs]) +- Fix multiple motion blinds gateways ([@starkillerOG] - [#46622]) ([motion_blinds docs]) +- Home connect use consts ([@badguy99] - [#46659]) ([home_connect docs]) +- Fix flaky stream tests due to race in idle timeout callback ([@allenporter] - [#46687]) ([stream docs]) +- Fix Tuya Option Flow tests ([@ollo69] - [#46651]) ([tuya docs]) +- Clean up xbee ([@tkdrob] - [#46549]) ([xbee docs]) +- Increase async_timeout for wemo update polling ([@esev] - [#46649]) ([wemo docs]) +- Remove calls to wemo.reconnect_with_device ([@esev] - [#46646]) ([wemo docs]) +- Bump RMVtransport to v0.3.0 ([@cgtobi] - [#46691]) ([rmvtransport docs]) +- Discover HRT4-ZW / SRT321 SetPoint in zwave_js ([@gsemet] - [#46625]) ([zwave_js docs]) +- Update zha to use new fan entity model ([@bdraco] - [#45758]) ([zha docs]) +- Centralize wemo exception handling ([@esev] - [#46705]) ([wemo docs]) +- Perform wemo state update quickly after a timeout ([@esev] - [#46702]) ([wemo docs]) +- Bump pylutron 0.2.7 ([@uvjustin] - [#46717]) ([lutron docs]) +- Switch ssdp to be async by using async_upnp_client for scanning ([@bdraco] - [#46554]) ([ssdp docs]) (breaking-change) +- Add selectors to Input * service definitions ([@frenck] - [#46652]) ([input_boolean docs]) ([input_datetime docs]) ([input_number docs]) ([input_select docs]) ([input_text docs]) +- Add selectors to Alert service definitions ([@frenck] - [#46627]) ([alert docs]) +- Add selectors to Camera service definitions ([@frenck] - [#46630]) ([camera docs]) +- Add selectors to Switch service definitions ([@frenck] - [#46635]) ([switch docs]) +- Add selectors to Downloader service definitions ([@frenck] - [#46638]) ([downloader docs]) +- Add selectors to Fan service definitions ([@frenck] - [#46639]) ([fan docs]) +- Add selectors to Cover service definitions ([@frenck] - [#46634]) ([cover docs]) +- Add selectors to Automation service definitions ([@frenck] - [#46629]) ([automation docs]) +- Add selectors to Climate service definitions ([@frenck] - [#46632]) ([climate docs]) +- Add selectors to Alarm Control Panel service definitions ([@frenck] - [#46626]) ([alarm_control_panel docs]) +- Upgrade and constrain httplib2>=0.19.0 ([@frenck] - [#46725]) ([google docs]) ([remember_the_milk docs]) +- ubus: switch to pypi library ([@Noltari] - [#46690]) ([ubus docs]) +- Add selectors to Counter service definitions ([@frenck] - [#46633]) ([counter docs]) +- Add advanced service parameter flag ([@frenck] - [#46727]) ([light docs]) +- Add discontinuity support to HLS streams and fix nest expiring stream urls ([@allenporter] - [#46683]) ([stream docs]) +- Add selectors to Scene service definitions ([@frenck] - [#46729]) ([scene docs]) +- Fix missing color switch specific device class for Z-Wave JS driver >6.3 ([@jcam] - [#46718]) ([zwave_js docs]) +- Add selectors to Netatmo services ([@cgtobi] - [#46574]) ([netatmo docs]) +- Add selectors to Vacuum service definitions ([@frenck] - [#46728]) ([vacuum docs]) +- Add selectors to Script service definitions ([@frenck] - [#46730]) ([script docs]) +- Add advanced selectors to Light service definitions ([@frenck] - [#46732]) ([light docs]) +- Add selectors to WLED service definitions ([@frenck] - [#46731]) ([wled docs]) +- Add advanced selectors to Climate service definitions ([@frenck] - [#46736]) ([climate docs]) +- Add selectors to Z-Wave JS service definitions ([@frenck] - [#46737]) ([zwave_js docs]) +- Add selectors to Logger, System Log & Logbook service definitions ([@frenck] - [#46740]) ([logbook docs]) ([logger docs]) ([system_log docs]) +- Add selectors to MQTT service definitions ([@frenck] - [#46738]) ([mqtt docs]) +- Add selectors to Color Extractor service definitions ([@frenck] - [#46742]) ([color_extractor docs]) +- Add selectors to Lock service definitions ([@frenck] - [#46743]) ([lock docs]) +- Add selectors to Timer service definitions ([@frenck] - [#46744]) ([timer docs]) +- Skip repeated segment in stream recorder ([@uvjustin] - [#46701]) ([stream docs]) +- Fix typo in Tesla Powerwall strings ([@spacegaier] - [#46752]) ([powerwall docs]) +- Add selectors to Hue service definitions ([@frenck] - [#46747]) ([hue docs]) +- Add selectors to Media Player service definitions ([@frenck] - [#46739]) ([media_player docs]) +- Add selectors to Toon service definitions ([@frenck] - [#46750]) ([toon docs]) +- Add selectors to Browser, Recorder, Shopping List service definitions ([@frenck] - [#46749]) ([browser docs]) ([recorder docs]) ([shopping_list docs]) +- Add selectors to Conversation, Image Processing and Number service definitions ([@frenck] - [#46746]) ([conversation docs]) ([image_processing docs]) ([number docs]) +- Minor service definition tweaks ([@frenck] - [#46741]) ([cloud docs]) ([cloudflare docs]) ([command_line docs]) ([keyboard docs]) ([lovelace docs]) ([rest docs]) ([universal docs]) +- Added Slovenian language (sl-si) to Microsoft TTS ([@AdmiralStipe] - [#46720]) ([microsoft docs]) +- Add selectors to HomeKit service definitions ([@frenck] - [#46745]) ([homekit docs]) +- Add selectors to Twente Milieu service definitions ([@frenck] - [#46748]) ([twentemilieu docs]) +- Ensure pre-commit's hassfest triggers on service file changes ([@frenck] - [#46753]) +- Add selectors to Home Assistant service definitions ([@frenck] - [#46733]) ([homeassistant docs]) +- Upgrade sentry-sdk to 0.20.3 ([@frenck] - [#46754]) ([sentry docs]) +- Allow LIFX bulbs to fade color even when off ([@emichael] - [#46596]) ([lifx docs]) +- Add @esev as codeowner for wemo ([@esev] - [#46756]) ([wemo docs]) +- Upgrade cryptography to 3.3.2 ([@frenck] - [#46759]) +- Address late smarttub review ([@mdz] - [#46703]) ([smarttub docs]) +- Fix flip-flopped substitutions in Custom Version Type Warning message. ([@shbatm] - [#46768]) +- Implement percentage step sizes for fans ([@bdraco] - [#46512]) ([fan docs]) +- Fix backwards compatibility with vesync fans ([@bdraco] - [#45950]) ([vesync docs]) +- Bump actions/stale from v3.0.16 to v3.0.17 (@dependabot - [#46777]) +- Raise ConditionError for zone errors ([@amelchio] - [#46253]) +- Raise ConditionError for and/or/not errors ([@amelchio] - [#46767]) ([automation docs]) +- Bump RMVtransport to 0.3.1 ([@cgtobi] - [#46780]) ([rmvtransport docs]) +- Add Home Assistant color ([@frenck] - [#46751]) ([light docs]) +- Allow multiple recipients for XMPP ([@oetken] - [#45328]) ([xmpp docs]) +- Update GitHub Issue Form template ([@deniseyu] - [#46791]) +- Add zwave_js thermostat fan mode and fan state support ([@raman325] - [#46793]) ([zwave_js docs]) +- Format zwave_js dump as json ([@raman325] - [#46792]) ([zwave_js docs]) +- Bump pywemo to 0.6.2 ([@esev] - [#46797]) ([wemo docs]) +- Implement suggested_area in the device registry ([@bdraco] - [#45940]) +- Cleanup inconsistencies in zha fan and make it a bit more dry ([@bdraco] - [#46714]) ([zha docs]) +- Add support for using a single endpoint for rest data ([@bdraco] - [#46711]) ([rest docs]) +- Add device_entities template function/filter ([@emontnemery] - [#46406]) +- Add suggested area support to nuheat ([@bdraco] - [#46801]) ([nuheat docs]) +- Fix typing of fan speed count and steps ([@bdraco] - [#46790]) +- Implement suggested area for netatmo ([@bdraco] - [#46802]) ([netatmo docs]) +- Add suggested area to nexia ([@bdraco] - [#46776]) ([nexia docs]) +- Add suggested area to hunterdouglas_powerview ([@bdraco] - [#46774]) ([hunterdouglas_powerview docs]) +- Ensure recorder shuts down cleanly on restart before startup is finished ([@bdraco] - [#46604]) ([recorder docs]) +- Ensure HomeAssistant can still restart when a library file is missing ([@bdraco] - [#46664]) +- Implement suggested area in lutron_caseta ([@bdraco] - [#45941]) ([lutron_caseta docs]) +- Implement percentage step sizes in HomeKit ([@bdraco] - [#46722]) ([homekit docs]) +- Update smarty to use new fan entity model ([@bdraco] - [#45879]) ([smarty docs]) +- Update alexa for new fan model ([@bdraco] - [#45836]) ([alexa docs]) +- Implement suggested areas in bond ([@bdraco] - [#45942]) ([bond docs]) +- Recover and restart the recorder if the sqlite database encounters corruption while running ([@bdraco] - [#46612]) ([recorder docs]) +- Add suggested area support to Sonos ([@bdraco] - [#46794]) ([sonos docs]) +- Run homekit service calls in async since the server is now async ([@bdraco] - [#45859]) ([homekit docs]) +- Do not trigger when numeric_state is true at startup ([@amelchio] - [#46424]) ([homeassistant docs]) +- Bump zwave-js-server-python to 0.18.0 ([@raman325] - [#46787]) ([zwave_js docs]) (breaking-change) +- Rollback stream StreamOutput refactoring in PR#46610 ([@allenporter] - [#46684]) ([camera docs]) ([stream docs]) +- Upgrade TwitterAPI to 2.6.6 ([@fabaff] - [#46812]) ([twitter docs]) +- Update rokuecp to 0.8.0 ([@ctalkington] - [#46799]) ([roku docs]) +- Add support for bond up and down lights ([@bdraco] - [#46233]) ([bond docs]) (breaking-change) +- Add rtsp transport options to generic camera ([@uvjustin] - [#46623]) ([generic docs]) +- change log level to info ([@mib1185] - [#46823]) ([nut docs]) +- Update xknx to 0.17.0 ([@farmio] - [#46809]) ([knx docs]) (breaking-change) +- Detect iBlinds v2.0 switch value as a cover not light ([@kpine] - [#46807]) ([zwave_js docs]) +- Implement suggested area in roku ([@ctalkington] - [#46819]) ([roku docs]) +- Explicitly create_task for asyncio.wait ([@amelchio] - [#46325]) ([script docs]) +- Validate icon and device_class of ESPHome sensor entities ([@marecabo] - [#46709]) ([esphome docs]) +- Enable KNX routing optional local_ip ([@farmio] - [#46133]) ([knx docs]) +- knx-read-service ([@farmio] - [#46670]) ([knx docs]) +- Add open/close tilt support to KNX cover ([@crazyfx1] - [#46583]) ([knx docs]) +- Bump pywemo to 0.6.3 ([@esev] - [#46825]) ([wemo docs]) +- Disable update polling for Wemo when devices can push updates ([@esev] - [#46806]) ([wemo docs]) +- Fix habitica entry unload clean up ([@MartinHjelmare] - [#46798]) ([habitica docs]) +- Speed-up wemo discovery ([@esev] - [#46821]) ([wemo docs]) +- Add Rituals Perfume Genie integration ([@milanmeu] - [#46218]) ([rituals_perfume_genie docs]) (new-integration) +- Bump zigpy-znp from 0.3.0 to 0.4.0 ([@puddly] - [#46828]) ([zha docs]) +- Add smarttub sensor platform and state sensor ([@mdz] - [#46775]) ([smarttub docs]) (new-platform) +- Fix Insteon config flow with add X10 and device override ([@teharris1] - [#45854]) ([insteon docs]) +- Allow upnp ignore SSDP-discoveries ([@StevenLooman] - [#46592]) ([upnp docs]) +- Add new Subaru integration ([@G-Two] - [#35760]) ([subaru docs]) (new-integration) +- Add support for "alias" in script steps device, device_condition, and conditions ([@emontnemery] - [#46647]) +- Add support for disabling config entries ([@emontnemery] - [#46779]) ([config docs]) +- Add support for preset modes in homekit fans ([@bdraco] - [#45962]) ([homekit docs]) +- Cleanup recorder tests ([@bdraco] - [#46836]) ([recorder docs]) +- Refine printing of ConditionError ([@amelchio] - [#46838]) ([automation docs]) ([homeassistant docs]) (breaking-change) +- Fix unmocked I/O in rituals_perfume_genie config flow test ([@bdraco] - [#46862]) ([rituals_perfume_genie docs]) +- Log zwave_js connection errors ([@cgarwood] - [#46867]) ([zwave_js docs]) +- Clean up denonavr constants ([@tkdrob] - [#46883]) ([denonavr docs]) +- Clean up acer_projector constants ([@tkdrob] - [#46880]) ([acer_projector docs]) +- Add more sensors to SmartTub integration ([@mdz] - [#46839]) ([smarttub docs]) +- Add weather platform to template domain ([@dgomes] - [#45031]) ([template docs]) (new-platform) +- Add support for SmartTub heat modes ([@mdz] - [#46876]) ([smarttub docs]) +- Add switch platform and pump entity to SmartTub ([@mdz] - [#46842]) ([smarttub docs]) (new-platform) +- Add support for VeSync dimmer switches ([@decompil3d] - [#44713]) ([vesync docs]) (new-platform) +- Log the name of automations with condition errors ([@amelchio] - [#46854]) ([automation docs]) +- Add support for SmartTub filtration cycles ([@mdz] - [#46868]) ([smarttub docs]) +- Add KNX service exposure_register ([@farmio] - [#45257]) ([knx docs]) +- Add light platform to SmartTub ([@mdz] - [#46886]) ([smarttub docs]) (new-platform) +- Add KMTronic Integration ([@dgomes] - [#41682]) ([kmtronic docs]) (new-integration) +- Add UV sensor to SmartTub ([@mdz] - [#46888]) ([smarttub docs]) +- Expose locked attribute in deCONZ climate platform ([@jwnmulder] - [#46814]) ([deconz docs]) +- Handle ConditionError with multiple entity_id for state/numeric_state ([@amelchio] - [#46855]) +- Add usercode support to totalconnect ([@austinmroczek] - [#39199]) ([totalconnect docs]) (breaking-change) +- Upgrade mypy to 0.812 ([@frenck] - [#46898]) +- Add Xiaomi Miio vacuum config flow ([@starkillerOG] - [#46669]) ([xiaomi_miio docs]) (breaking-change) +- Bump samsungtvws from 1.4.0 to 1.6.0 ([@kukulich] - [#46878]) ([samsungtv docs]) +- Add device_class to Shelly cover domain ([@chemelli74] - [#46894]) ([shelly docs]) +- Cleanup of possibily confusing comment in esphome ([@frenck] - [#46903]) ([esphome docs]) +- Add binary sensor to SmartTub for online status ([@mdz] - [#46889]) ([smarttub docs]) (new-platform) +- Clean up constants ([@tkdrob] - [#46885]) +- Add name to services ([@frenck] - [#46905]) ([light docs]) +- Add service names to Netatmo services ([@cgtobi] - [#46909]) ([netatmo docs]) +- add name and target filter to zwave_js lock services.yaml ([@raman325] - [#46914]) ([zwave_js docs]) +- Increase tado API polling interval to 5 minutes ([@macrosak] - [#46915]) ([tado docs]) (breaking-change) +- Add name and target filter to vizio entity service ([@raman325] - [#46916]) ([vizio docs]) +- Add litterrobot integration ([@natekspencer] - [#45886]) ([litterrobot docs]) (new-integration) +- Test zwave_js GE 12730 fan controller device-specific discovery ([@kpine] - [#46840]) ([zwave_js docs]) +- Clean up Mitemp_bt constants ([@tkdrob] - [#46881]) ([acer_projector docs]) ([mitemp_bt docs]) +- Description tweaks for automation services ([@spacegaier] - [#46926]) ([automation docs]) +- Update frontend to 20210222.0 ([@bramkragten] - [#46928]) ([frontend docs]) +- Add get_config_parameters websocket command to zwave_js ([@cgarwood] - [#46463]) ([zwave_js docs]) +- Add missing required=true to code slot field in zwave_js.set_lock_usercode service ([@raman325] - [#46931]) ([zwave_js docs]) +- Add zwave_js/get_log_config and zwave_js/update_log_config WS API commands ([@raman325] - [#46601]) ([zwave_js docs]) +- Add zwave_js set_config_parameter WS API command ([@raman325] - [#46910]) ([zwave_js docs]) +- Restore stream recorder functionality and add discontinuity support ([@uvjustin] - [#46772]) ([stream docs]) +- Add suggested area to tado ([@bdraco] - [#46932]) ([tado docs]) +- Update tasmota to use new fan entity model ([@bdraco] - [#45877]) ([tasmota docs]) +- Add suggested area support to isy994 ([@bdraco] - [#46927]) ([isy994 docs]) +- Fix smaty fan typing ([@bdraco] - [#46941]) ([smarty docs]) +- Clean up constants ([@tkdrob] - [#46924]) +- Add zwave_js constant for add-on slug ([@MartinHjelmare] - [#46950]) ([zwave_js docs]) +- Bump accuweather to 0.1.0 ([@bieniu] - [#46951]) ([accuweather docs]) +- Add service names to previously enriched services ([@frenck] - [#46929]) +- Add description to tts and notify services ([@bramkragten] - [#46764]) ([media_player docs]) ([tts docs]) +- Update homeassistant services.yaml ([@bramkragten] - [#46952]) ([homeassistant docs]) +- Return states list from zwave_js get_config_parameters websocket if available ([@cgarwood] - [#46954]) ([zwave_js docs]) +- Add stop tilt support to KNX ([@spacegaier] - [#46947]) ([knx docs]) +- Catch more zwave_js errors ([@MartinHjelmare] - [#46957]) ([zwave_js docs]) +- Add zwave_js.set_config_parameter service ([@raman325] - [#46673]) ([zwave_js docs]) +- Add missing target to increase_speed/decrease_speed service ([@bdraco] - [#46939]) ([fan docs]) +- LiteJet is now configured using config_flow ([@joncar] - [#44409]) ([litejet docs]) (breaking-change) +- Bump pymyq to fix myq in core ([@bdraco] - [#46962]) ([myq docs]) +- Fix Plex handling of clips ([@jjlawren] - [#46667]) ([plex docs]) +- Improve zwave_js config flow ([@MartinHjelmare] - [#46906]) ([zwave_js docs]) +- Fix Shelly mireds and color_temp return type ([@chemelli74] - [#46112]) ([shelly docs]) +- Avoid having to ask for the bond token when possible during config ([@bdraco] - [#46845]) ([bond docs]) +- Fix KNX services.yaml ([@farmio] - [#46897]) ([knx docs]) +- Implement additional DataUpdateCoordinator to harmonize the data update handling of Synology DSM ([@mib1185] - [#46113]) ([synology_dsm docs]) +- Add more shopping list services ([@MHV33] - [#45591]) ([shopping_list docs]) +- Use core constants for dht ([@tkdrob] - [#46029]) ([dht docs]) +- Fix Plex showing removed shared users ([@jjlawren] - [#46971]) ([plex docs]) +- Fix typo in fireservicerota strings ([@milanmeu] - [#46973]) ([fireservicerota docs]) +- Add zwave_js.refresh_value service ([@raman325] - [#46944]) ([zwave_js docs]) +- deep copy zwave_js state in test fixtures so tests are more isolated ([@raman325] - [#46976]) ([zwave_js docs]) +- Automatically create HomeKit accessory mode entries ([@bdraco] - [#46473]) ([homekit docs]) +- Update xknx to 0.17.1 ([@farmio] - [#46974]) ([knx docs]) +- Extend zwave_js discovery scheme for lights ([@marcelveldt] - [#46907]) ([zwave_js docs]) +- Add switches and sensors to Litter-Robot ([@natekspencer] - [#46942]) ([litterrobot docs]) (new-platform) +- Make FAN_ON use the max duration rather than 15 min default ([@allenporter] - [#46489]) ([nest docs]) (breaking-change) +- Handle device IP change in upnp ([@StevenLooman] - [#46859]) ([upnp docs]) +- Add template support to service targets ([@frenck] - [#46977]) +- Validate KNX addresses ([@farmio] - [#46933]) ([knx docs]) +- Add ClimaCell weather integration ([@raman325] - [#36547]) ([climacell docs]) (new-integration) +- Save mysensors gateway type in config entry ([@MartinHjelmare] - [#46981]) ([mysensors docs]) +- Mullvad VPN ([@meichthys] - [#44189]) ([mullvad docs]) (new-integration) +- Improve mysensors config flow ([@MartinHjelmare] - [#46984]) ([mysensors docs]) +- Fix TTS services name ([@bramkragten] - [#46988]) ([tts docs]) +- Mullvad integration improvements ([@frenck] - [#46987]) ([mullvad docs]) +- Catch AuthRequired exception in confirm discovery step for Shelly config flow ([@bieniu] - [#46135]) ([shelly docs]) +- Restore Tado binary sensor attributes ([@Noltari] - [#46069]) ([tado docs]) +- Add enable and disable services for recorder ([@adrian-vlad] - [#45778]) ([recorder docs]) +- Migrate zwave_js entities to use new unique ID format ([@raman325] - [#46979]) ([zwave_js docs]) +- Fix zwave_js config flow server version timeout ([@MartinHjelmare] - [#46990]) ([zwave_js docs]) +- Set awesomeversion to 21.2.3 ([@fabaff] - [#46989]) +- Add addon selector ([@ludeeus] - [#46789]) +- Climacell fixes: Use common keys for strings, fix temp_low measurement, add windy condition ([@raman325] - [#46991]) ([climacell docs]) +- Use location common key reference in totalconnect ([@milanmeu] - [#46995]) ([totalconnect docs]) +- Add Netatmo device trigger ([@cgtobi] - [#45387]) ([netatmo docs]) +- Remove recursive key reference ([@milanmeu] - [#46999]) ([syncthru docs]) +- Add number platform to Z-Wave JS ([@marcelveldt] - [#46956]) ([zwave_js docs]) +- Setup config entry even if vizio device is unreachable ([@raman325] - [#46864]) ([vizio docs]) +- Support value_template in MQTT triggers ([@emontnemery] - [#46891]) ([mqtt docs]) +- Add Sonos media browser image proxy ([@cgtobi] - [#46902]) ([sonos docs]) +- Use Plex server URL as config entry title ([@jjlawren] - [#47010]) ([plex docs]) +- Bump plexapi to 4.4.0 ([@jjlawren] - [#47007]) ([plex docs]) +- Add FAA Delays Integration ([@ntilley905] - [#41347]) ([faadelays docs]) (new-integration) +- Add missing tilt icon to Shelly tilt sensor ([@chemelli74] - [#46993]) ([shelly docs]) +- Update frontend to 20210224.0 ([@bramkragten] - [#47013]) ([frontend docs]) +- Change Z-Wave JS discovery logic to adopt changes to DeviceClass ([@marcelveldt] - [#46983]) ([zwave_js docs]) (breaking-change) + +{% enddetails %} + +[#34760]: https://github.com/home-assistant/core/pull/34760 +[#35760]: https://github.com/home-assistant/core/pull/35760 +[#36547]: https://github.com/home-assistant/core/pull/36547 +[#37775]: https://github.com/home-assistant/core/pull/37775 +[#38353]: https://github.com/home-assistant/core/pull/38353 +[#38910]: https://github.com/home-assistant/core/pull/38910 +[#39199]: https://github.com/home-assistant/core/pull/39199 +[#39695]: https://github.com/home-assistant/core/pull/39695 +[#40284]: https://github.com/home-assistant/core/pull/40284 +[#41347]: https://github.com/home-assistant/core/pull/41347 +[#41413]: https://github.com/home-assistant/core/pull/41413 +[#41673]: https://github.com/home-assistant/core/pull/41673 +[#41682]: https://github.com/home-assistant/core/pull/41682 +[#41812]: https://github.com/home-assistant/core/pull/41812 +[#42044]: https://github.com/home-assistant/core/pull/42044 +[#42527]: https://github.com/home-assistant/core/pull/42527 +[#42791]: https://github.com/home-assistant/core/pull/42791 +[#43148]: https://github.com/home-assistant/core/pull/43148 +[#43198]: https://github.com/home-assistant/core/pull/43198 +[#43300]: https://github.com/home-assistant/core/pull/43300 +[#43646]: https://github.com/home-assistant/core/pull/43646 +[#43683]: https://github.com/home-assistant/core/pull/43683 +[#43984]: https://github.com/home-assistant/core/pull/43984 +[#44116]: https://github.com/home-assistant/core/pull/44116 +[#44161]: https://github.com/home-assistant/core/pull/44161 +[#44189]: https://github.com/home-assistant/core/pull/44189 +[#44409]: https://github.com/home-assistant/core/pull/44409 +[#44626]: https://github.com/home-assistant/core/pull/44626 +[#44630]: https://github.com/home-assistant/core/pull/44630 +[#44711]: https://github.com/home-assistant/core/pull/44711 +[#44713]: https://github.com/home-assistant/core/pull/44713 +[#44813]: https://github.com/home-assistant/core/pull/44813 +[#44840]: https://github.com/home-assistant/core/pull/44840 +[#44873]: https://github.com/home-assistant/core/pull/44873 +[#44892]: https://github.com/home-assistant/core/pull/44892 +[#44903]: https://github.com/home-assistant/core/pull/44903 +[#44981]: https://github.com/home-assistant/core/pull/44981 +[#45031]: https://github.com/home-assistant/core/pull/45031 +[#45042]: https://github.com/home-assistant/core/pull/45042 +[#45074]: https://github.com/home-assistant/core/pull/45074 +[#45152]: https://github.com/home-assistant/core/pull/45152 +[#45161]: https://github.com/home-assistant/core/pull/45161 +[#45257]: https://github.com/home-assistant/core/pull/45257 +[#45270]: https://github.com/home-assistant/core/pull/45270 +[#45328]: https://github.com/home-assistant/core/pull/45328 +[#45387]: https://github.com/home-assistant/core/pull/45387 +[#45402]: https://github.com/home-assistant/core/pull/45402 +[#45406]: https://github.com/home-assistant/core/pull/45406 +[#45407]: https://github.com/home-assistant/core/pull/45407 +[#45421]: https://github.com/home-assistant/core/pull/45421 +[#45430]: https://github.com/home-assistant/core/pull/45430 +[#45431]: https://github.com/home-assistant/core/pull/45431 +[#45433]: https://github.com/home-assistant/core/pull/45433 +[#45478]: https://github.com/home-assistant/core/pull/45478 +[#45485]: https://github.com/home-assistant/core/pull/45485 +[#45500]: https://github.com/home-assistant/core/pull/45500 +[#45528]: https://github.com/home-assistant/core/pull/45528 +[#45534]: https://github.com/home-assistant/core/pull/45534 +[#45536]: https://github.com/home-assistant/core/pull/45536 +[#45540]: https://github.com/home-assistant/core/pull/45540 +[#45541]: https://github.com/home-assistant/core/pull/45541 +[#45543]: https://github.com/home-assistant/core/pull/45543 +[#45547]: https://github.com/home-assistant/core/pull/45547 +[#45549]: https://github.com/home-assistant/core/pull/45549 +[#45550]: https://github.com/home-assistant/core/pull/45550 +[#45558]: https://github.com/home-assistant/core/pull/45558 +[#45577]: https://github.com/home-assistant/core/pull/45577 +[#45582]: https://github.com/home-assistant/core/pull/45582 +[#45585]: https://github.com/home-assistant/core/pull/45585 +[#45587]: https://github.com/home-assistant/core/pull/45587 +[#45590]: https://github.com/home-assistant/core/pull/45590 +[#45591]: https://github.com/home-assistant/core/pull/45591 +[#45592]: https://github.com/home-assistant/core/pull/45592 +[#45593]: https://github.com/home-assistant/core/pull/45593 +[#45600]: https://github.com/home-assistant/core/pull/45600 +[#45610]: https://github.com/home-assistant/core/pull/45610 +[#45614]: https://github.com/home-assistant/core/pull/45614 +[#45617]: https://github.com/home-assistant/core/pull/45617 +[#45619]: https://github.com/home-assistant/core/pull/45619 +[#45630]: https://github.com/home-assistant/core/pull/45630 +[#45637]: https://github.com/home-assistant/core/pull/45637 +[#45639]: https://github.com/home-assistant/core/pull/45639 +[#45663]: https://github.com/home-assistant/core/pull/45663 +[#45664]: https://github.com/home-assistant/core/pull/45664 +[#45668]: https://github.com/home-assistant/core/pull/45668 +[#45669]: https://github.com/home-assistant/core/pull/45669 +[#45670]: https://github.com/home-assistant/core/pull/45670 +[#45673]: https://github.com/home-assistant/core/pull/45673 +[#45677]: https://github.com/home-assistant/core/pull/45677 +[#45681]: https://github.com/home-assistant/core/pull/45681 +[#45683]: https://github.com/home-assistant/core/pull/45683 +[#45686]: https://github.com/home-assistant/core/pull/45686 +[#45690]: https://github.com/home-assistant/core/pull/45690 +[#45691]: https://github.com/home-assistant/core/pull/45691 +[#45692]: https://github.com/home-assistant/core/pull/45692 +[#45696]: https://github.com/home-assistant/core/pull/45696 +[#45698]: https://github.com/home-assistant/core/pull/45698 +[#45701]: https://github.com/home-assistant/core/pull/45701 +[#45704]: https://github.com/home-assistant/core/pull/45704 +[#45705]: https://github.com/home-assistant/core/pull/45705 +[#45706]: https://github.com/home-assistant/core/pull/45706 +[#45707]: https://github.com/home-assistant/core/pull/45707 +[#45710]: https://github.com/home-assistant/core/pull/45710 +[#45713]: https://github.com/home-assistant/core/pull/45713 +[#45718]: https://github.com/home-assistant/core/pull/45718 +[#45721]: https://github.com/home-assistant/core/pull/45721 +[#45723]: https://github.com/home-assistant/core/pull/45723 +[#45724]: https://github.com/home-assistant/core/pull/45724 +[#45726]: https://github.com/home-assistant/core/pull/45726 +[#45730]: https://github.com/home-assistant/core/pull/45730 +[#45731]: https://github.com/home-assistant/core/pull/45731 +[#45732]: https://github.com/home-assistant/core/pull/45732 +[#45734]: https://github.com/home-assistant/core/pull/45734 +[#45737]: https://github.com/home-assistant/core/pull/45737 +[#45743]: https://github.com/home-assistant/core/pull/45743 +[#45752]: https://github.com/home-assistant/core/pull/45752 +[#45755]: https://github.com/home-assistant/core/pull/45755 +[#45758]: https://github.com/home-assistant/core/pull/45758 +[#45759]: https://github.com/home-assistant/core/pull/45759 +[#45762]: https://github.com/home-assistant/core/pull/45762 +[#45767]: https://github.com/home-assistant/core/pull/45767 +[#45768]: https://github.com/home-assistant/core/pull/45768 +[#45777]: https://github.com/home-assistant/core/pull/45777 +[#45778]: https://github.com/home-assistant/core/pull/45778 +[#45783]: https://github.com/home-assistant/core/pull/45783 +[#45784]: https://github.com/home-assistant/core/pull/45784 +[#45785]: https://github.com/home-assistant/core/pull/45785 +[#45788]: https://github.com/home-assistant/core/pull/45788 +[#45791]: https://github.com/home-assistant/core/pull/45791 +[#45794]: https://github.com/home-assistant/core/pull/45794 +[#45803]: https://github.com/home-assistant/core/pull/45803 +[#45804]: https://github.com/home-assistant/core/pull/45804 +[#45806]: https://github.com/home-assistant/core/pull/45806 +[#45811]: https://github.com/home-assistant/core/pull/45811 +[#45819]: https://github.com/home-assistant/core/pull/45819 +[#45824]: https://github.com/home-assistant/core/pull/45824 +[#45828]: https://github.com/home-assistant/core/pull/45828 +[#45829]: https://github.com/home-assistant/core/pull/45829 +[#45832]: https://github.com/home-assistant/core/pull/45832 +[#45835]: https://github.com/home-assistant/core/pull/45835 +[#45836]: https://github.com/home-assistant/core/pull/45836 +[#45837]: https://github.com/home-assistant/core/pull/45837 +[#45839]: https://github.com/home-assistant/core/pull/45839 +[#45840]: https://github.com/home-assistant/core/pull/45840 +[#45842]: https://github.com/home-assistant/core/pull/45842 +[#45843]: https://github.com/home-assistant/core/pull/45843 +[#45844]: https://github.com/home-assistant/core/pull/45844 +[#45845]: https://github.com/home-assistant/core/pull/45845 +[#45847]: https://github.com/home-assistant/core/pull/45847 +[#45848]: https://github.com/home-assistant/core/pull/45848 +[#45850]: https://github.com/home-assistant/core/pull/45850 +[#45854]: https://github.com/home-assistant/core/pull/45854 +[#45855]: https://github.com/home-assistant/core/pull/45855 +[#45859]: https://github.com/home-assistant/core/pull/45859 +[#45869]: https://github.com/home-assistant/core/pull/45869 +[#45870]: https://github.com/home-assistant/core/pull/45870 +[#45871]: https://github.com/home-assistant/core/pull/45871 +[#45877]: https://github.com/home-assistant/core/pull/45877 +[#45879]: https://github.com/home-assistant/core/pull/45879 +[#45886]: https://github.com/home-assistant/core/pull/45886 +[#45898]: https://github.com/home-assistant/core/pull/45898 +[#45899]: https://github.com/home-assistant/core/pull/45899 +[#45907]: https://github.com/home-assistant/core/pull/45907 +[#45913]: https://github.com/home-assistant/core/pull/45913 +[#45919]: https://github.com/home-assistant/core/pull/45919 +[#45923]: https://github.com/home-assistant/core/pull/45923 +[#45926]: https://github.com/home-assistant/core/pull/45926 +[#45927]: https://github.com/home-assistant/core/pull/45927 +[#45928]: https://github.com/home-assistant/core/pull/45928 +[#45930]: https://github.com/home-assistant/core/pull/45930 +[#45935]: https://github.com/home-assistant/core/pull/45935 +[#45937]: https://github.com/home-assistant/core/pull/45937 +[#45938]: https://github.com/home-assistant/core/pull/45938 +[#45940]: https://github.com/home-assistant/core/pull/45940 +[#45941]: https://github.com/home-assistant/core/pull/45941 +[#45942]: https://github.com/home-assistant/core/pull/45942 +[#45950]: https://github.com/home-assistant/core/pull/45950 +[#45951]: https://github.com/home-assistant/core/pull/45951 +[#45962]: https://github.com/home-assistant/core/pull/45962 +[#45968]: https://github.com/home-assistant/core/pull/45968 +[#45973]: https://github.com/home-assistant/core/pull/45973 +[#45976]: https://github.com/home-assistant/core/pull/45976 +[#45985]: https://github.com/home-assistant/core/pull/45985 +[#45991]: https://github.com/home-assistant/core/pull/45991 +[#45999]: https://github.com/home-assistant/core/pull/45999 +[#46001]: https://github.com/home-assistant/core/pull/46001 +[#46012]: https://github.com/home-assistant/core/pull/46012 +[#46015]: https://github.com/home-assistant/core/pull/46015 +[#46016]: https://github.com/home-assistant/core/pull/46016 +[#46017]: https://github.com/home-assistant/core/pull/46017 +[#46019]: https://github.com/home-assistant/core/pull/46019 +[#46024]: https://github.com/home-assistant/core/pull/46024 +[#46027]: https://github.com/home-assistant/core/pull/46027 +[#46028]: https://github.com/home-assistant/core/pull/46028 +[#46029]: https://github.com/home-assistant/core/pull/46029 +[#46032]: https://github.com/home-assistant/core/pull/46032 +[#46041]: https://github.com/home-assistant/core/pull/46041 +[#46042]: https://github.com/home-assistant/core/pull/46042 +[#46043]: https://github.com/home-assistant/core/pull/46043 +[#46044]: https://github.com/home-assistant/core/pull/46044 +[#46055]: https://github.com/home-assistant/core/pull/46055 +[#46058]: https://github.com/home-assistant/core/pull/46058 +[#46059]: https://github.com/home-assistant/core/pull/46059 +[#46064]: https://github.com/home-assistant/core/pull/46064 +[#46065]: https://github.com/home-assistant/core/pull/46065 +[#46069]: https://github.com/home-assistant/core/pull/46069 +[#46073]: https://github.com/home-assistant/core/pull/46073 +[#46075]: https://github.com/home-assistant/core/pull/46075 +[#46077]: https://github.com/home-assistant/core/pull/46077 +[#46083]: https://github.com/home-assistant/core/pull/46083 +[#46090]: https://github.com/home-assistant/core/pull/46090 +[#46091]: https://github.com/home-assistant/core/pull/46091 +[#46092]: https://github.com/home-assistant/core/pull/46092 +[#46093]: https://github.com/home-assistant/core/pull/46093 +[#46102]: https://github.com/home-assistant/core/pull/46102 +[#46106]: https://github.com/home-assistant/core/pull/46106 +[#46111]: https://github.com/home-assistant/core/pull/46111 +[#46112]: https://github.com/home-assistant/core/pull/46112 +[#46113]: https://github.com/home-assistant/core/pull/46113 +[#46117]: https://github.com/home-assistant/core/pull/46117 +[#46124]: https://github.com/home-assistant/core/pull/46124 +[#46128]: https://github.com/home-assistant/core/pull/46128 +[#46133]: https://github.com/home-assistant/core/pull/46133 +[#46135]: https://github.com/home-assistant/core/pull/46135 +[#46136]: https://github.com/home-assistant/core/pull/46136 +[#46137]: https://github.com/home-assistant/core/pull/46137 +[#46139]: https://github.com/home-assistant/core/pull/46139 +[#46144]: https://github.com/home-assistant/core/pull/46144 +[#46161]: https://github.com/home-assistant/core/pull/46161 +[#46169]: https://github.com/home-assistant/core/pull/46169 +[#46171]: https://github.com/home-assistant/core/pull/46171 +[#46172]: https://github.com/home-assistant/core/pull/46172 +[#46173]: https://github.com/home-assistant/core/pull/46173 +[#46176]: https://github.com/home-assistant/core/pull/46176 +[#46177]: https://github.com/home-assistant/core/pull/46177 +[#46179]: https://github.com/home-assistant/core/pull/46179 +[#46188]: https://github.com/home-assistant/core/pull/46188 +[#46192]: https://github.com/home-assistant/core/pull/46192 +[#46193]: https://github.com/home-assistant/core/pull/46193 +[#46196]: https://github.com/home-assistant/core/pull/46196 +[#46197]: https://github.com/home-assistant/core/pull/46197 +[#46200]: https://github.com/home-assistant/core/pull/46200 +[#46201]: https://github.com/home-assistant/core/pull/46201 +[#46202]: https://github.com/home-assistant/core/pull/46202 +[#46203]: https://github.com/home-assistant/core/pull/46203 +[#46204]: https://github.com/home-assistant/core/pull/46204 +[#46207]: https://github.com/home-assistant/core/pull/46207 +[#46208]: https://github.com/home-assistant/core/pull/46208 +[#46209]: https://github.com/home-assistant/core/pull/46209 +[#46210]: https://github.com/home-assistant/core/pull/46210 +[#46211]: https://github.com/home-assistant/core/pull/46211 +[#46214]: https://github.com/home-assistant/core/pull/46214 +[#46216]: https://github.com/home-assistant/core/pull/46216 +[#46218]: https://github.com/home-assistant/core/pull/46218 +[#46219]: https://github.com/home-assistant/core/pull/46219 +[#46221]: https://github.com/home-assistant/core/pull/46221 +[#46224]: https://github.com/home-assistant/core/pull/46224 +[#46225]: https://github.com/home-assistant/core/pull/46225 +[#46226]: https://github.com/home-assistant/core/pull/46226 +[#46233]: https://github.com/home-assistant/core/pull/46233 +[#46236]: https://github.com/home-assistant/core/pull/46236 +[#46238]: https://github.com/home-assistant/core/pull/46238 +[#46239]: https://github.com/home-assistant/core/pull/46239 +[#46240]: https://github.com/home-assistant/core/pull/46240 +[#46244]: https://github.com/home-assistant/core/pull/46244 +[#46245]: https://github.com/home-assistant/core/pull/46245 +[#46246]: https://github.com/home-assistant/core/pull/46246 +[#46247]: https://github.com/home-assistant/core/pull/46247 +[#46248]: https://github.com/home-assistant/core/pull/46248 +[#46250]: https://github.com/home-assistant/core/pull/46250 +[#46251]: https://github.com/home-assistant/core/pull/46251 +[#46253]: https://github.com/home-assistant/core/pull/46253 +[#46262]: https://github.com/home-assistant/core/pull/46262 +[#46265]: https://github.com/home-assistant/core/pull/46265 +[#46268]: https://github.com/home-assistant/core/pull/46268 +[#46269]: https://github.com/home-assistant/core/pull/46269 +[#46270]: https://github.com/home-assistant/core/pull/46270 +[#46290]: https://github.com/home-assistant/core/pull/46290 +[#46291]: https://github.com/home-assistant/core/pull/46291 +[#46292]: https://github.com/home-assistant/core/pull/46292 +[#46300]: https://github.com/home-assistant/core/pull/46300 +[#46301]: https://github.com/home-assistant/core/pull/46301 +[#46309]: https://github.com/home-assistant/core/pull/46309 +[#46310]: https://github.com/home-assistant/core/pull/46310 +[#46311]: https://github.com/home-assistant/core/pull/46311 +[#46312]: https://github.com/home-assistant/core/pull/46312 +[#46315]: https://github.com/home-assistant/core/pull/46315 +[#46316]: https://github.com/home-assistant/core/pull/46316 +[#46319]: https://github.com/home-assistant/core/pull/46319 +[#46320]: https://github.com/home-assistant/core/pull/46320 +[#46321]: https://github.com/home-assistant/core/pull/46321 +[#46322]: https://github.com/home-assistant/core/pull/46322 +[#46325]: https://github.com/home-assistant/core/pull/46325 +[#46328]: https://github.com/home-assistant/core/pull/46328 +[#46329]: https://github.com/home-assistant/core/pull/46329 +[#46330]: https://github.com/home-assistant/core/pull/46330 +[#46331]: https://github.com/home-assistant/core/pull/46331 +[#46340]: https://github.com/home-assistant/core/pull/46340 +[#46348]: https://github.com/home-assistant/core/pull/46348 +[#46349]: https://github.com/home-assistant/core/pull/46349 +[#46350]: https://github.com/home-assistant/core/pull/46350 +[#46355]: https://github.com/home-assistant/core/pull/46355 +[#46358]: https://github.com/home-assistant/core/pull/46358 +[#46359]: https://github.com/home-assistant/core/pull/46359 +[#46366]: https://github.com/home-assistant/core/pull/46366 +[#46367]: https://github.com/home-assistant/core/pull/46367 +[#46368]: https://github.com/home-assistant/core/pull/46368 +[#46369]: https://github.com/home-assistant/core/pull/46369 +[#46371]: https://github.com/home-assistant/core/pull/46371 +[#46377]: https://github.com/home-assistant/core/pull/46377 +[#46379]: https://github.com/home-assistant/core/pull/46379 +[#46385]: https://github.com/home-assistant/core/pull/46385 +[#46388]: https://github.com/home-assistant/core/pull/46388 +[#46389]: https://github.com/home-assistant/core/pull/46389 +[#46390]: https://github.com/home-assistant/core/pull/46390 +[#46391]: https://github.com/home-assistant/core/pull/46391 +[#46398]: https://github.com/home-assistant/core/pull/46398 +[#46399]: https://github.com/home-assistant/core/pull/46399 +[#46401]: https://github.com/home-assistant/core/pull/46401 +[#46402]: https://github.com/home-assistant/core/pull/46402 +[#46404]: https://github.com/home-assistant/core/pull/46404 +[#46406]: https://github.com/home-assistant/core/pull/46406 +[#46410]: https://github.com/home-assistant/core/pull/46410 +[#46413]: https://github.com/home-assistant/core/pull/46413 +[#46414]: https://github.com/home-assistant/core/pull/46414 +[#46416]: https://github.com/home-assistant/core/pull/46416 +[#46419]: https://github.com/home-assistant/core/pull/46419 +[#46421]: https://github.com/home-assistant/core/pull/46421 +[#46423]: https://github.com/home-assistant/core/pull/46423 +[#46424]: https://github.com/home-assistant/core/pull/46424 +[#46428]: https://github.com/home-assistant/core/pull/46428 +[#46433]: https://github.com/home-assistant/core/pull/46433 +[#46434]: https://github.com/home-assistant/core/pull/46434 +[#46438]: https://github.com/home-assistant/core/pull/46438 +[#46440]: https://github.com/home-assistant/core/pull/46440 +[#46441]: https://github.com/home-assistant/core/pull/46441 +[#46442]: https://github.com/home-assistant/core/pull/46442 +[#46445]: https://github.com/home-assistant/core/pull/46445 +[#46455]: https://github.com/home-assistant/core/pull/46455 +[#46456]: https://github.com/home-assistant/core/pull/46456 +[#46460]: https://github.com/home-assistant/core/pull/46460 +[#46462]: https://github.com/home-assistant/core/pull/46462 +[#46463]: https://github.com/home-assistant/core/pull/46463 +[#46464]: https://github.com/home-assistant/core/pull/46464 +[#46465]: https://github.com/home-assistant/core/pull/46465 +[#46466]: https://github.com/home-assistant/core/pull/46466 +[#46468]: https://github.com/home-assistant/core/pull/46468 +[#46471]: https://github.com/home-assistant/core/pull/46471 +[#46472]: https://github.com/home-assistant/core/pull/46472 +[#46473]: https://github.com/home-assistant/core/pull/46473 +[#46479]: https://github.com/home-assistant/core/pull/46479 +[#46482]: https://github.com/home-assistant/core/pull/46482 +[#46483]: https://github.com/home-assistant/core/pull/46483 +[#46484]: https://github.com/home-assistant/core/pull/46484 +[#46489]: https://github.com/home-assistant/core/pull/46489 +[#46494]: https://github.com/home-assistant/core/pull/46494 +[#46497]: https://github.com/home-assistant/core/pull/46497 +[#46500]: https://github.com/home-assistant/core/pull/46500 +[#46501]: https://github.com/home-assistant/core/pull/46501 +[#46502]: https://github.com/home-assistant/core/pull/46502 +[#46503]: https://github.com/home-assistant/core/pull/46503 +[#46505]: https://github.com/home-assistant/core/pull/46505 +[#46507]: https://github.com/home-assistant/core/pull/46507 +[#46508]: https://github.com/home-assistant/core/pull/46508 +[#46509]: https://github.com/home-assistant/core/pull/46509 +[#46510]: https://github.com/home-assistant/core/pull/46510 +[#46511]: https://github.com/home-assistant/core/pull/46511 +[#46512]: https://github.com/home-assistant/core/pull/46512 +[#46513]: https://github.com/home-assistant/core/pull/46513 +[#46517]: https://github.com/home-assistant/core/pull/46517 +[#46520]: https://github.com/home-assistant/core/pull/46520 +[#46521]: https://github.com/home-assistant/core/pull/46521 +[#46537]: https://github.com/home-assistant/core/pull/46537 +[#46538]: https://github.com/home-assistant/core/pull/46538 +[#46539]: https://github.com/home-assistant/core/pull/46539 +[#46541]: https://github.com/home-assistant/core/pull/46541 +[#46543]: https://github.com/home-assistant/core/pull/46543 +[#46544]: https://github.com/home-assistant/core/pull/46544 +[#46545]: https://github.com/home-assistant/core/pull/46545 +[#46548]: https://github.com/home-assistant/core/pull/46548 +[#46549]: https://github.com/home-assistant/core/pull/46549 +[#46550]: https://github.com/home-assistant/core/pull/46550 +[#46551]: https://github.com/home-assistant/core/pull/46551 +[#46552]: https://github.com/home-assistant/core/pull/46552 +[#46554]: https://github.com/home-assistant/core/pull/46554 +[#46561]: https://github.com/home-assistant/core/pull/46561 +[#46562]: https://github.com/home-assistant/core/pull/46562 +[#46563]: https://github.com/home-assistant/core/pull/46563 +[#46574]: https://github.com/home-assistant/core/pull/46574 +[#46576]: https://github.com/home-assistant/core/pull/46576 +[#46581]: https://github.com/home-assistant/core/pull/46581 +[#46583]: https://github.com/home-assistant/core/pull/46583 +[#46590]: https://github.com/home-assistant/core/pull/46590 +[#46592]: https://github.com/home-assistant/core/pull/46592 +[#46595]: https://github.com/home-assistant/core/pull/46595 +[#46596]: https://github.com/home-assistant/core/pull/46596 +[#46601]: https://github.com/home-assistant/core/pull/46601 +[#46602]: https://github.com/home-assistant/core/pull/46602 +[#46604]: https://github.com/home-assistant/core/pull/46604 +[#46608]: https://github.com/home-assistant/core/pull/46608 +[#46610]: https://github.com/home-assistant/core/pull/46610 +[#46612]: https://github.com/home-assistant/core/pull/46612 +[#46615]: https://github.com/home-assistant/core/pull/46615 +[#46616]: https://github.com/home-assistant/core/pull/46616 +[#46622]: https://github.com/home-assistant/core/pull/46622 +[#46623]: https://github.com/home-assistant/core/pull/46623 +[#46625]: https://github.com/home-assistant/core/pull/46625 +[#46626]: https://github.com/home-assistant/core/pull/46626 +[#46627]: https://github.com/home-assistant/core/pull/46627 +[#46628]: https://github.com/home-assistant/core/pull/46628 +[#46629]: https://github.com/home-assistant/core/pull/46629 +[#46630]: https://github.com/home-assistant/core/pull/46630 +[#46632]: https://github.com/home-assistant/core/pull/46632 +[#46633]: https://github.com/home-assistant/core/pull/46633 +[#46634]: https://github.com/home-assistant/core/pull/46634 +[#46635]: https://github.com/home-assistant/core/pull/46635 +[#46638]: https://github.com/home-assistant/core/pull/46638 +[#46639]: https://github.com/home-assistant/core/pull/46639 +[#46640]: https://github.com/home-assistant/core/pull/46640 +[#46642]: https://github.com/home-assistant/core/pull/46642 +[#46646]: https://github.com/home-assistant/core/pull/46646 +[#46647]: https://github.com/home-assistant/core/pull/46647 +[#46649]: https://github.com/home-assistant/core/pull/46649 +[#46650]: https://github.com/home-assistant/core/pull/46650 +[#46651]: https://github.com/home-assistant/core/pull/46651 +[#46652]: https://github.com/home-assistant/core/pull/46652 +[#46654]: https://github.com/home-assistant/core/pull/46654 +[#46656]: https://github.com/home-assistant/core/pull/46656 +[#46659]: https://github.com/home-assistant/core/pull/46659 +[#46664]: https://github.com/home-assistant/core/pull/46664 +[#46667]: https://github.com/home-assistant/core/pull/46667 +[#46669]: https://github.com/home-assistant/core/pull/46669 +[#46670]: https://github.com/home-assistant/core/pull/46670 +[#46673]: https://github.com/home-assistant/core/pull/46673 +[#46674]: https://github.com/home-assistant/core/pull/46674 +[#46675]: https://github.com/home-assistant/core/pull/46675 +[#46680]: https://github.com/home-assistant/core/pull/46680 +[#46681]: https://github.com/home-assistant/core/pull/46681 +[#46683]: https://github.com/home-assistant/core/pull/46683 +[#46684]: https://github.com/home-assistant/core/pull/46684 +[#46687]: https://github.com/home-assistant/core/pull/46687 +[#46690]: https://github.com/home-assistant/core/pull/46690 +[#46691]: https://github.com/home-assistant/core/pull/46691 +[#46701]: https://github.com/home-assistant/core/pull/46701 +[#46702]: https://github.com/home-assistant/core/pull/46702 +[#46703]: https://github.com/home-assistant/core/pull/46703 +[#46705]: https://github.com/home-assistant/core/pull/46705 +[#46709]: https://github.com/home-assistant/core/pull/46709 +[#46711]: https://github.com/home-assistant/core/pull/46711 +[#46714]: https://github.com/home-assistant/core/pull/46714 +[#46717]: https://github.com/home-assistant/core/pull/46717 +[#46718]: https://github.com/home-assistant/core/pull/46718 +[#46720]: https://github.com/home-assistant/core/pull/46720 +[#46722]: https://github.com/home-assistant/core/pull/46722 +[#46725]: https://github.com/home-assistant/core/pull/46725 +[#46727]: https://github.com/home-assistant/core/pull/46727 +[#46728]: https://github.com/home-assistant/core/pull/46728 +[#46729]: https://github.com/home-assistant/core/pull/46729 +[#46730]: https://github.com/home-assistant/core/pull/46730 +[#46731]: https://github.com/home-assistant/core/pull/46731 +[#46732]: https://github.com/home-assistant/core/pull/46732 +[#46733]: https://github.com/home-assistant/core/pull/46733 +[#46736]: https://github.com/home-assistant/core/pull/46736 +[#46737]: https://github.com/home-assistant/core/pull/46737 +[#46738]: https://github.com/home-assistant/core/pull/46738 +[#46739]: https://github.com/home-assistant/core/pull/46739 +[#46740]: https://github.com/home-assistant/core/pull/46740 +[#46741]: https://github.com/home-assistant/core/pull/46741 +[#46742]: https://github.com/home-assistant/core/pull/46742 +[#46743]: https://github.com/home-assistant/core/pull/46743 +[#46744]: https://github.com/home-assistant/core/pull/46744 +[#46745]: https://github.com/home-assistant/core/pull/46745 +[#46746]: https://github.com/home-assistant/core/pull/46746 +[#46747]: https://github.com/home-assistant/core/pull/46747 +[#46748]: https://github.com/home-assistant/core/pull/46748 +[#46749]: https://github.com/home-assistant/core/pull/46749 +[#46750]: https://github.com/home-assistant/core/pull/46750 +[#46751]: https://github.com/home-assistant/core/pull/46751 +[#46752]: https://github.com/home-assistant/core/pull/46752 +[#46753]: https://github.com/home-assistant/core/pull/46753 +[#46754]: https://github.com/home-assistant/core/pull/46754 +[#46756]: https://github.com/home-assistant/core/pull/46756 +[#46759]: https://github.com/home-assistant/core/pull/46759 +[#46764]: https://github.com/home-assistant/core/pull/46764 +[#46767]: https://github.com/home-assistant/core/pull/46767 +[#46768]: https://github.com/home-assistant/core/pull/46768 +[#46772]: https://github.com/home-assistant/core/pull/46772 +[#46774]: https://github.com/home-assistant/core/pull/46774 +[#46775]: https://github.com/home-assistant/core/pull/46775 +[#46776]: https://github.com/home-assistant/core/pull/46776 +[#46777]: https://github.com/home-assistant/core/pull/46777 +[#46779]: https://github.com/home-assistant/core/pull/46779 +[#46780]: https://github.com/home-assistant/core/pull/46780 +[#46787]: https://github.com/home-assistant/core/pull/46787 +[#46789]: https://github.com/home-assistant/core/pull/46789 +[#46790]: https://github.com/home-assistant/core/pull/46790 +[#46791]: https://github.com/home-assistant/core/pull/46791 +[#46792]: https://github.com/home-assistant/core/pull/46792 +[#46793]: https://github.com/home-assistant/core/pull/46793 +[#46794]: https://github.com/home-assistant/core/pull/46794 +[#46797]: https://github.com/home-assistant/core/pull/46797 +[#46798]: https://github.com/home-assistant/core/pull/46798 +[#46799]: https://github.com/home-assistant/core/pull/46799 +[#46801]: https://github.com/home-assistant/core/pull/46801 +[#46802]: https://github.com/home-assistant/core/pull/46802 +[#46806]: https://github.com/home-assistant/core/pull/46806 +[#46807]: https://github.com/home-assistant/core/pull/46807 +[#46809]: https://github.com/home-assistant/core/pull/46809 +[#46812]: https://github.com/home-assistant/core/pull/46812 +[#46814]: https://github.com/home-assistant/core/pull/46814 +[#46819]: https://github.com/home-assistant/core/pull/46819 +[#46821]: https://github.com/home-assistant/core/pull/46821 +[#46823]: https://github.com/home-assistant/core/pull/46823 +[#46825]: https://github.com/home-assistant/core/pull/46825 +[#46828]: https://github.com/home-assistant/core/pull/46828 +[#46836]: https://github.com/home-assistant/core/pull/46836 +[#46838]: https://github.com/home-assistant/core/pull/46838 +[#46839]: https://github.com/home-assistant/core/pull/46839 +[#46840]: https://github.com/home-assistant/core/pull/46840 +[#46842]: https://github.com/home-assistant/core/pull/46842 +[#46845]: https://github.com/home-assistant/core/pull/46845 +[#46854]: https://github.com/home-assistant/core/pull/46854 +[#46855]: https://github.com/home-assistant/core/pull/46855 +[#46859]: https://github.com/home-assistant/core/pull/46859 +[#46862]: https://github.com/home-assistant/core/pull/46862 +[#46864]: https://github.com/home-assistant/core/pull/46864 +[#46867]: https://github.com/home-assistant/core/pull/46867 +[#46868]: https://github.com/home-assistant/core/pull/46868 +[#46876]: https://github.com/home-assistant/core/pull/46876 +[#46878]: https://github.com/home-assistant/core/pull/46878 +[#46880]: https://github.com/home-assistant/core/pull/46880 +[#46881]: https://github.com/home-assistant/core/pull/46881 +[#46883]: https://github.com/home-assistant/core/pull/46883 +[#46885]: https://github.com/home-assistant/core/pull/46885 +[#46886]: https://github.com/home-assistant/core/pull/46886 +[#46888]: https://github.com/home-assistant/core/pull/46888 +[#46889]: https://github.com/home-assistant/core/pull/46889 +[#46891]: https://github.com/home-assistant/core/pull/46891 +[#46894]: https://github.com/home-assistant/core/pull/46894 +[#46897]: https://github.com/home-assistant/core/pull/46897 +[#46898]: https://github.com/home-assistant/core/pull/46898 +[#46902]: https://github.com/home-assistant/core/pull/46902 +[#46903]: https://github.com/home-assistant/core/pull/46903 +[#46905]: https://github.com/home-assistant/core/pull/46905 +[#46906]: https://github.com/home-assistant/core/pull/46906 +[#46907]: https://github.com/home-assistant/core/pull/46907 +[#46909]: https://github.com/home-assistant/core/pull/46909 +[#46910]: https://github.com/home-assistant/core/pull/46910 +[#46914]: https://github.com/home-assistant/core/pull/46914 +[#46915]: https://github.com/home-assistant/core/pull/46915 +[#46916]: https://github.com/home-assistant/core/pull/46916 +[#46924]: https://github.com/home-assistant/core/pull/46924 +[#46926]: https://github.com/home-assistant/core/pull/46926 +[#46927]: https://github.com/home-assistant/core/pull/46927 +[#46928]: https://github.com/home-assistant/core/pull/46928 +[#46929]: https://github.com/home-assistant/core/pull/46929 +[#46931]: https://github.com/home-assistant/core/pull/46931 +[#46932]: https://github.com/home-assistant/core/pull/46932 +[#46933]: https://github.com/home-assistant/core/pull/46933 +[#46939]: https://github.com/home-assistant/core/pull/46939 +[#46941]: https://github.com/home-assistant/core/pull/46941 +[#46942]: https://github.com/home-assistant/core/pull/46942 +[#46944]: https://github.com/home-assistant/core/pull/46944 +[#46947]: https://github.com/home-assistant/core/pull/46947 +[#46950]: https://github.com/home-assistant/core/pull/46950 +[#46951]: https://github.com/home-assistant/core/pull/46951 +[#46952]: https://github.com/home-assistant/core/pull/46952 +[#46954]: https://github.com/home-assistant/core/pull/46954 +[#46956]: https://github.com/home-assistant/core/pull/46956 +[#46957]: https://github.com/home-assistant/core/pull/46957 +[#46962]: https://github.com/home-assistant/core/pull/46962 +[#46971]: https://github.com/home-assistant/core/pull/46971 +[#46973]: https://github.com/home-assistant/core/pull/46973 +[#46974]: https://github.com/home-assistant/core/pull/46974 +[#46976]: https://github.com/home-assistant/core/pull/46976 +[#46977]: https://github.com/home-assistant/core/pull/46977 +[#46979]: https://github.com/home-assistant/core/pull/46979 +[#46981]: https://github.com/home-assistant/core/pull/46981 +[#46983]: https://github.com/home-assistant/core/pull/46983 +[#46984]: https://github.com/home-assistant/core/pull/46984 +[#46987]: https://github.com/home-assistant/core/pull/46987 +[#46988]: https://github.com/home-assistant/core/pull/46988 +[#46989]: https://github.com/home-assistant/core/pull/46989 +[#46990]: https://github.com/home-assistant/core/pull/46990 +[#46991]: https://github.com/home-assistant/core/pull/46991 +[#46993]: https://github.com/home-assistant/core/pull/46993 +[#46995]: https://github.com/home-assistant/core/pull/46995 +[#46999]: https://github.com/home-assistant/core/pull/46999 +[#47007]: https://github.com/home-assistant/core/pull/47007 +[#47010]: https://github.com/home-assistant/core/pull/47010 +[#47013]: https://github.com/home-assistant/core/pull/47013 +[@AdmiralStipe]: https://github.com/AdmiralStipe +[@Antoni-Czaplicki]: https://github.com/Antoni-Czaplicki +[@EPMatt]: https://github.com/EPMatt +[@G-Two]: https://github.com/G-Two +[@GeoffAtHome]: https://github.com/GeoffAtHome +[@Guliver]: https://github.com/Guliver +[@JohNan]: https://github.com/JohNan +[@KJonline]: https://github.com/KJonline +[@KTibow]: https://github.com/KTibow +[@Kane610]: https://github.com/Kane610 +[@MHV33]: https://github.com/MHV33 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MatthewFlamm]: https://github.com/MatthewFlamm +[@Nixon506E]: https://github.com/Nixon506E +[@Noltari]: https://github.com/Noltari +[@Quentame]: https://github.com/Quentame +[@RobBie1221]: https://github.com/RobBie1221 +[@Shutgun]: https://github.com/Shutgun +[@StevenLooman]: https://github.com/StevenLooman +[@WizBangCrash]: https://github.com/WizBangCrash +[@adamoutler]: https://github.com/adamoutler +[@adrian-vlad]: https://github.com/adrian-vlad +[@aizerin]: https://github.com/aizerin +[@alexpilotti]: https://github.com/alexpilotti +[@allenporter]: https://github.com/allenporter +[@amelchio]: https://github.com/amelchio +[@austinmroczek]: https://github.com/austinmroczek +[@bachya]: https://github.com/bachya +[@badguy99]: https://github.com/badguy99 +[@balloob]: https://github.com/balloob +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@bernimoses]: https://github.com/bernimoses +[@bieniu]: https://github.com/bieniu +[@boralyl]: https://github.com/boralyl +[@bramkragten]: https://github.com/bramkragten +[@bsmappee]: https://github.com/bsmappee +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@chpego]: https://github.com/chpego +[@chriss158]: https://github.com/chriss158 +[@cpainchaud]: https://github.com/cpainchaud +[@crazyfx1]: https://github.com/crazyfx1 +[@cristian-vescan]: https://github.com/cristian-vescan +[@ctalkington]: https://github.com/ctalkington +[@decompil3d]: https://github.com/decompil3d +[@denes44]: https://github.com/denes44 +[@deniseyu]: https://github.com/deniseyu +[@dermotduffy]: https://github.com/dermotduffy +[@dgomes]: https://github.com/dgomes +[@dingusdk]: https://github.com/dingusdk +[@djtimca]: https://github.com/djtimca +[@dmcc]: https://github.com/dmcc +[@dmulcahey]: https://github.com/dmulcahey +[@ehendrix23]: https://github.com/ehendrix23 +[@elupus]: https://github.com/elupus +[@emichael]: https://github.com/emichael +[@emontnemery]: https://github.com/emontnemery +[@esev]: https://github.com/esev +[@fabaff]: https://github.com/fabaff +[@farmio]: https://github.com/farmio +[@foxel]: https://github.com/foxel +[@frenck]: https://github.com/frenck +[@fronzbot]: https://github.com/fronzbot +[@functionpointer]: https://github.com/functionpointer +[@ggravlingen]: https://github.com/ggravlingen +[@gsemet]: https://github.com/gsemet +[@hencoappel]: https://github.com/hencoappel +[@iMicknl]: https://github.com/iMicknl +[@inytar]: https://github.com/inytar +[@janiversen]: https://github.com/janiversen +[@javicalle]: https://github.com/javicalle +[@jcam]: https://github.com/jcam +[@jjlawren]: https://github.com/jjlawren +[@jloehr]: https://github.com/jloehr +[@joncar]: https://github.com/joncar +[@jwnmulder]: https://github.com/jwnmulder +[@kangaroomadman]: https://github.com/kangaroomadman +[@kingo55]: https://github.com/kingo55 +[@kochen]: https://github.com/kochen +[@kpine]: https://github.com/kpine +[@kriansa]: https://github.com/kriansa +[@kukulich]: https://github.com/kukulich +[@leikoilja]: https://github.com/leikoilja +[@leofig-rj]: https://github.com/leofig-rj +[@ludeeus]: https://github.com/ludeeus +[@macrosak]: https://github.com/macrosak +[@marcelveldt]: https://github.com/marcelveldt +[@marecabo]: https://github.com/marecabo +[@mdz]: https://github.com/mdz +[@meichthys]: https://github.com/meichthys +[@mib1185]: https://github.com/mib1185 +[@michaeldavie]: https://github.com/michaeldavie +[@milanmeu]: https://github.com/milanmeu +[@mkeesey]: https://github.com/mkeesey +[@natekspencer]: https://github.com/natekspencer +[@nielstron]: https://github.com/nielstron +[@ntilley905]: https://github.com/ntilley905 +[@o-l-o]: https://github.com/o-l-o +[@oetken]: https://github.com/oetken +[@olijouve]: https://github.com/olijouve +[@ollo69]: https://github.com/ollo69 +[@oxygen0211]: https://github.com/oxygen0211 +[@palfrey]: https://github.com/palfrey +[@pavoni]: https://github.com/pavoni +[@pawlizio]: https://github.com/pawlizio +[@persandstrom]: https://github.com/persandstrom +[@postlund]: https://github.com/postlund +[@pree]: https://github.com/pree +[@puddly]: https://github.com/puddly +[@raman325]: https://github.com/raman325 +[@rfleming71]: https://github.com/rfleming71 +[@rngtng]: https://github.com/rngtng +[@scop]: https://github.com/scop +[@sgryphon]: https://github.com/sgryphon +[@shbatm]: https://github.com/shbatm +[@spacegaier]: https://github.com/spacegaier +[@spike411]: https://github.com/spike411 +[@starkillerOG]: https://github.com/starkillerOG +[@teharris1]: https://github.com/teharris1 +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@uvjustin]: https://github.com/uvjustin +[@yurnih]: https://github.com/yurnih +[@yuvalabou]: https://github.com/yuvalabou +[accuweather docs]: /integrations/accuweather/ +[acer_projector docs]: /integrations/acer_projector/ +[aemet docs]: /integrations/aemet/ +[airly docs]: /integrations/airly/ +[airvisual docs]: /integrations/airvisual/ +[alarm_control_panel docs]: /integrations/alarm_control_panel/ +[alert docs]: /integrations/alert/ +[alexa docs]: /integrations/alexa/ +[amazon_polly docs]: /integrations/amazon_polly/ +[api docs]: /integrations/api/ +[apple_tv docs]: /integrations/apple_tv/ +[asuswrt docs]: /integrations/asuswrt/ +[aurora docs]: /integrations/aurora/ +[auth docs]: /integrations/auth/ +[automation docs]: /integrations/automation/ +[aws docs]: /integrations/aws/ +[bayesian docs]: /integrations/bayesian/ +[binary_sensor docs]: /integrations/binary_sensor/ +[blink docs]: /integrations/blink/ +[blueprint docs]: /integrations/blueprint/ +[bluetooth_tracker docs]: /integrations/bluetooth_tracker/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[bond docs]: /integrations/bond/ +[brother docs]: /integrations/brother/ +[browser docs]: /integrations/browser/ +[bt_smarthub docs]: /integrations/bt_smarthub/ +[caldav docs]: /integrations/caldav/ +[camera docs]: /integrations/camera/ +[cast docs]: /integrations/cast/ +[climacell docs]: /integrations/climacell/ +[climate docs]: /integrations/climate/ +[cloud docs]: /integrations/cloud/ +[cloudflare docs]: /integrations/cloudflare/ +[cmus docs]: /integrations/cmus/ +[coinmarketcap docs]: /integrations/coinmarketcap/ +[color_extractor docs]: /integrations/color_extractor/ +[comfoconnect docs]: /integrations/comfoconnect/ +[command_line docs]: /integrations/command_line/ +[config docs]: /integrations/config/ +[conversation docs]: /integrations/conversation/ +[counter docs]: /integrations/counter/ +[cover docs]: /integrations/cover/ +[crimereports docs]: /integrations/crimereports/ +[daikin docs]: /integrations/daikin/ +[deconz docs]: /integrations/deconz/ +[default_config docs]: /integrations/default_config/ +[delijn docs]: /integrations/delijn/ +[demo docs]: /integrations/demo/ +[denonavr docs]: /integrations/denonavr/ +[deutsche_bahn docs]: /integrations/deutsche_bahn/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[dht docs]: /integrations/dht/ +[doods docs]: /integrations/doods/ +[downloader docs]: /integrations/downloader/ +[dsmr docs]: /integrations/dsmr/ +[dynalite docs]: /integrations/dynalite/ +[dyson docs]: /integrations/dyson/ +[efergy docs]: /integrations/efergy/ +[elgato docs]: /integrations/elgato/ +[elkm1 docs]: /integrations/elkm1/ +[emulated_hue docs]: /integrations/emulated_hue/ +[environment_canada docs]: /integrations/environment_canada/ +[envisalink docs]: /integrations/envisalink/ +[esphome docs]: /integrations/esphome/ +[faadelays docs]: /integrations/faadelays/ +[fan docs]: /integrations/fan/ +[ffmpeg_motion docs]: /integrations/ffmpeg_motion/ +[fibaro docs]: /integrations/fibaro/ +[file docs]: /integrations/file/ +[fireservicerota docs]: /integrations/fireservicerota/ +[firmata docs]: /integrations/firmata/ +[fixer docs]: /integrations/fixer/ +[fleetgo docs]: /integrations/fleetgo/ +[flux docs]: /integrations/flux/ +[folder_watcher docs]: /integrations/folder_watcher/ +[freebox docs]: /integrations/freebox/ +[fritzbox docs]: /integrations/fritzbox/ +[fronius docs]: /integrations/fronius/ +[frontend docs]: /integrations/frontend/ +[futurenow docs]: /integrations/futurenow/ +[generic docs]: /integrations/generic/ +[generic_thermostat docs]: /integrations/generic_thermostat/ +[geniushub docs]: /integrations/geniushub/ +[gios docs]: /integrations/gios/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[google_cloud docs]: /integrations/google_cloud/ +[greeneye_monitor docs]: /integrations/greeneye_monitor/ +[group docs]: /integrations/group/ +[habitica docs]: /integrations/habitica/ +[harmony docs]: /integrations/harmony/ +[here_travel_time docs]: /integrations/here_travel_time/ +[hikvision docs]: /integrations/hikvision/ +[hive docs]: /integrations/hive/ +[home_connect docs]: /integrations/home_connect/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematic docs]: /integrations/homematic/ +[http docs]: /integrations/http/ +[hue docs]: /integrations/hue/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[hyperion docs]: /integrations/hyperion/ +[ihc docs]: /integrations/ihc/ +[image_processing docs]: /integrations/image_processing/ +[influxdb docs]: /integrations/influxdb/ +[input_boolean docs]: /integrations/input_boolean/ +[input_datetime docs]: /integrations/input_datetime/ +[input_number docs]: /integrations/input_number/ +[input_select docs]: /integrations/input_select/ +[input_text docs]: /integrations/input_text/ +[insteon docs]: /integrations/insteon/ +[integration docs]: /integrations/integration/ +[isy994 docs]: /integrations/isy994/ +[izone docs]: /integrations/izone/ +[joaoapps_join docs]: /integrations/joaoapps_join/ +[keenetic_ndms2 docs]: /integrations/keenetic_ndms2/ +[keyboard docs]: /integrations/keyboard/ +[kira docs]: /integrations/kira/ +[kmtronic docs]: /integrations/kmtronic/ +[knx docs]: /integrations/knx/ +[konnected docs]: /integrations/konnected/ +[lcn docs]: /integrations/lcn/ +[lg_soundbar docs]: /integrations/lg_soundbar/ +[lifx docs]: /integrations/lifx/ +[light docs]: /integrations/light/ +[litejet docs]: /integrations/litejet/ +[litterrobot docs]: /integrations/litterrobot/ +[local_file docs]: /integrations/local_file/ +[lock docs]: /integrations/lock/ +[logbook docs]: /integrations/logbook/ +[logger docs]: /integrations/logger/ +[logi_circle docs]: /integrations/logi_circle/ +[lovelace docs]: /integrations/lovelace/ +[lutron docs]: /integrations/lutron/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[lyric docs]: /integrations/lyric/ +[mazda docs]: /integrations/mazda/ +[media_extractor docs]: /integrations/media_extractor/ +[media_player docs]: /integrations/media_player/ +[microsoft docs]: /integrations/microsoft/ +[mitemp_bt docs]: /integrations/mitemp_bt/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[motion_blinds docs]: /integrations/motion_blinds/ +[mqtt docs]: /integrations/mqtt/ +[mullvad docs]: /integrations/mullvad/ +[my docs]: /integrations/my/ +[myq docs]: /integrations/myq/ +[mysensors docs]: /integrations/mysensors/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[nexia docs]: /integrations/nexia/ +[nissan_leaf docs]: /integrations/nissan_leaf/ +[nmap_tracker docs]: /integrations/nmap_tracker/ +[nuheat docs]: /integrations/nuheat/ +[nuimo_controller docs]: /integrations/nuimo_controller/ +[nuki docs]: /integrations/nuki/ +[number docs]: /integrations/number/ +[nut docs]: /integrations/nut/ +[nws docs]: /integrations/nws/ +[ohmconnect docs]: /integrations/ohmconnect/ +[onvif docs]: /integrations/onvif/ +[ozw docs]: /integrations/ozw/ +[person docs]: /integrations/person/ +[philips_js docs]: /integrations/philips_js/ +[plaato docs]: /integrations/plaato/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[powerwall docs]: /integrations/powerwall/ +[recollect_waste docs]: /integrations/recollect_waste/ +[recorder docs]: /integrations/recorder/ +[reddit docs]: /integrations/reddit/ +[remember_the_milk docs]: /integrations/remember_the_milk/ +[rest docs]: /integrations/rest/ +[rflink docs]: /integrations/rflink/ +[rfxtrx docs]: /integrations/rfxtrx/ +[rituals_perfume_genie docs]: /integrations/rituals_perfume_genie/ +[rmvtransport docs]: /integrations/rmvtransport/ +[roku docs]: /integrations/roku/ +[roomba docs]: /integrations/roomba/ +[roon docs]: /integrations/roon/ +[rova docs]: /integrations/rova/ +[rpi_gpio docs]: /integrations/rpi_gpio/ +[rpi_rf docs]: /integrations/rpi_rf/ +[samsungtv docs]: /integrations/samsungtv/ +[scene docs]: /integrations/scene/ +[scrape docs]: /integrations/scrape/ +[script docs]: /integrations/script/ +[sense docs]: /integrations/sense/ +[sentry docs]: /integrations/sentry/ +[shelly docs]: /integrations/shelly/ +[shopping_list docs]: /integrations/shopping_list/ +[simplepush docs]: /integrations/simplepush/ +[skybell docs]: /integrations/skybell/ +[sma docs]: /integrations/sma/ +[smappee docs]: /integrations/smappee/ +[smartthings docs]: /integrations/smartthings/ +[smarttub docs]: /integrations/smarttub/ +[smarty docs]: /integrations/smarty/ +[solaredge docs]: /integrations/solaredge/ +[somfy docs]: /integrations/somfy/ +[sonos docs]: /integrations/sonos/ +[sql docs]: /integrations/sql/ +[ssdp docs]: /integrations/ssdp/ +[starline docs]: /integrations/starline/ +[stream docs]: /integrations/stream/ +[subaru docs]: /integrations/subaru/ +[switch docs]: /integrations/switch/ +[switcher_kis docs]: /integrations/switcher_kis/ +[syncthru docs]: /integrations/syncthru/ +[synology docs]: /integrations/synology/ +[synology_dsm docs]: /integrations/synology_dsm/ +[system_log docs]: /integrations/system_log/ +[tado docs]: /integrations/tado/ +[tasmota docs]: /integrations/tasmota/ +[tcp docs]: /integrations/tcp/ +[tellduslive docs]: /integrations/tellduslive/ +[temper docs]: /integrations/temper/ +[template docs]: /integrations/template/ +[tesla docs]: /integrations/tesla/ +[thethingsnetwork docs]: /integrations/thethingsnetwork/ +[tile docs]: /integrations/tile/ +[timer docs]: /integrations/timer/ +[todoist docs]: /integrations/todoist/ +[toon docs]: /integrations/toon/ +[totalconnect docs]: /integrations/totalconnect/ +[tradfri docs]: /integrations/tradfri/ +[trend docs]: /integrations/trend/ +[tts docs]: /integrations/tts/ +[tuya docs]: /integrations/tuya/ +[twentemilieu docs]: /integrations/twentemilieu/ +[twitter docs]: /integrations/twitter/ +[ubus docs]: /integrations/ubus/ +[unifi docs]: /integrations/unifi/ +[universal docs]: /integrations/universal/ +[updater docs]: /integrations/updater/ +[upnp docs]: /integrations/upnp/ +[uvc docs]: /integrations/uvc/ +[vacuum docs]: /integrations/vacuum/ +[vasttrafik docs]: /integrations/vasttrafik/ +[velux docs]: /integrations/velux/ +[vera docs]: /integrations/vera/ +[verisure docs]: /integrations/verisure/ +[vesync docs]: /integrations/vesync/ +[vicare docs]: /integrations/vicare/ +[vizio docs]: /integrations/vizio/ +[vlc_telnet docs]: /integrations/vlc_telnet/ +[volvooncall docs]: /integrations/volvooncall/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[whois docs]: /integrations/whois/ +[wilight docs]: /integrations/wilight/ +[withings docs]: /integrations/withings/ +[wled docs]: /integrations/wled/ +[xbee docs]: /integrations/xbee/ +[xfinity docs]: /integrations/xfinity/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[xmpp docs]: /integrations/xmpp/ +[yeelight docs]: /integrations/yeelight/ +[zha docs]: /integrations/zha/ +[zwave docs]: /integrations/zwave/ +[zwave_js docs]: /integrations/zwave_js/ From f0ccf504a1897a71c21171ee98394efd9d37d9d7 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 24 Feb 2021 22:40:45 +0100 Subject: [PATCH 02/27] Fix my badge in release notes --- source/_posts/2021-02-03-release-20213.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2021-02-03-release-20213.markdown b/source/_posts/2021-02-03-release-20213.markdown index 2d9ae6c3da1..00851d0a4eb 100644 --- a/source/_posts/2021-02-03-release-20213.markdown +++ b/source/_posts/2021-02-03-release-20213.markdown @@ -86,7 +86,7 @@ instance and only a predefined, safe set, of URLs are allowed. Long story short! We can do a lot of helpful things with this, for example the following buttons will bring your places on your instance: -{% my integration badge %} {% my info badge %} {% my supervisor badge %} {% my automations badge %} +{% my integrations badge %} {% my info badge %} {% my supervisor badge %} {% my automations badge %} But we can make buttons or links to a lot of screen, and even help you start a configuration for an integration, import a Blueprint, link to an add-on page, From bde0a5d1181cd507a4d3f07f18c338eed82031d4 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Wed, 3 Mar 2021 09:38:02 +0100 Subject: [PATCH 03/27] Add zwave_js release notes summary (#16798) --- .../_posts/2021-02-03-release-20213.markdown | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/source/_posts/2021-02-03-release-20213.markdown b/source/_posts/2021-02-03-release-20213.markdown index 00851d0a4eb..1c2a63b7a94 100644 --- a/source/_posts/2021-02-03-release-20213.markdown +++ b/source/_posts/2021-02-03-release-20213.markdown @@ -40,6 +40,7 @@ Issues introduced in the beta are processed with priority. - [Fan integration](#fan-integration) - [Suggested areas](#suggested-areas) - [Z-Wave JS update](#z-wave-js-update) + - [All Z-Wave JS changes](#all-z-wave-js-changes) - [MQTT trigger templating](#mqtt-trigger-templating) - [Help us improving the documentation](#help-us-improving-the-documentation) - [Other noteworthy changes](#other-noteworthy-changes) @@ -171,6 +172,19 @@ TODO: Ask the z-wave dev channel for input !--> +Also this release the Z-Wave JS team has been very busy. Several new features have been added and many bugs squashed. Below you can read a summary. + +- We've introduced a protocol schema version in the Z-Wave JS server to allow older clients to connect and talk to a newer server. +- Home Assistant core 2021.3.0 will require Z-Wave JS server version 1.10. + If you're not using the Home Assistant add-on to run the server you will need to update the server before updating Home Assistant. + If you're using the Home Assistant add-on and selected this when setting up Z-Wave JS in Home Assistant, the integration will automatically update the add-on if an older add-on and server version is encountered. +- You're now able to automate and change the configuration settings of your devices with the [zwave_js.set_config_parameter](/integrations/zwave_js/#service-zwave_jsset_config_parameter) service. +- You can now configure an automation to use the [zwave_js.refresh_value](/integrations/zwave_js/#service-zwave_jsrefresh_value) service to update a device that doesn't automatically refresh itself. +- Garage doors (barrier) and similar covers can now be controlled in the integration. +- Some heating valves and similar devices that can be set to multiple different values will now show up as `number` entities. + +### All Z-Wave JS changes + - Enhance platform discovery for zwave_js ([@marcelveldt] - [#46355]) ([zwave_js docs]) - Discover HRT4-ZW / SRT321 SetPoint in zwave_js ([@gsemet] - [#46625]) ([zwave_js docs]) - Add zwave_js thermostat fan mode and fan state support ([@raman325] - [#46793]) ([zwave_js docs]) @@ -408,7 +422,7 @@ You existing YAML configuration will be automatically imported on upgrade and can be safely removed from your YAML configuration after upgrading. ([@pree] - [#45664]) ([nuki docs]) - + {% enddetails %} {% details "CalDAV" %} @@ -656,7 +670,7 @@ You need to run this server version at mimimum for the integration to work. {% enddetails %} -{% details "Bond" %} +{% details "Bond" %} Support for bond devices with up and down lights has been added. Previously, if the device had two lights, only a single light entity would be created that From 46964f1d9b608cc0e2d63c1c3ed286272df9ee0b Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Fri, 26 Feb 2021 18:35:06 +0100 Subject: [PATCH 04/27] Add support for v6 features to philips js integration (#16628) Co-authored-by: Klaas Schoute --- source/_integrations/philips_js.markdown | 27 +++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/source/_integrations/philips_js.markdown b/source/_integrations/philips_js.markdown index b4aa566e996..aa3316e9a17 100644 --- a/source/_integrations/philips_js.markdown +++ b/source/_integrations/philips_js.markdown @@ -11,10 +11,31 @@ ha_domain: philips_js ha_config_flow: true --- -The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) JSON-API. Instructions on how to activate the API and if your model is supported can be found [here](http://jointspace.sourceforge.net/download.html). Note that not all listed, jointSPACE-enabled devices will have JSON-interface running on port 1925. This is true at least for some models before year 2011. +The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) JSON-API. -To enable the integration go to **Configuration** -> **Integrations** +Instructions on how to activate the API and if your model is supported can be found [here](http://jointspace.sourceforge.net/download.html). Note that not all listed, jointSPACE-enabled devices will have JSON-interface running on port 1925. This is true at least for some models before year 2011. + +{% include integrations/config_flow.md %} + +### Features + +| Feature | 1 | 5 | 6 (Android) | 6 (Saphi) | +| ------------------ | ---------------- | --- | ------------------ | ---------------- | +| Power On | WOL / IR Blaster | ? | Yes (if always on) | WOL / IR Blaster | +| Volume Detect | Yes | ? | Yes (not over CEC) | ? | +| Volume Up/Down | Yes | ? | Yes | No | +| Volume Set | Yes | ? | Yes | ? | +| Source Select | Yes | ? | Yes | No | +| Source Detect | Yes | ? | No | No | +| Channel Select | Yes | ? | Yes | ? | +| Channel Detect | Yes | ? | Yes | ? | +| Channel Favorites | No | ? | Yes | ? | +| Application Select | No | ? | Yes | No | +| Application Detect | No | ? | Yes | No | +| Browse URL | No | No | No | No | +| Send Key | No | No | No | No | +| Ambilight Control | No | No | No | No | ### Turn on device -The Philips TV does not support turning on via the API. You can either turn it on via IR blaster to or on som models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on. +The Philips TV does not always support turning on via the API. You can either turn it on via IR blaster or on som models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on. From 7962e3ae9e8cd6fc3340ff17f91756059a03c594 Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Mon, 1 Mar 2021 20:08:14 +0100 Subject: [PATCH 05/27] Clarify template trigger behaviour (#16733) --- source/_docs/automation/trigger.markdown | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 04e7bc51363..b82218dae39 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -449,8 +449,11 @@ automation: ### Template trigger -Template triggers work by evaluating a [template](/docs/configuration/templating/) on every state change for all of the recognized entities. The trigger will fire if the state change caused the template to render 'true'. This is achieved by having the template result in a true boolean expression (`{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render 'true' (example below). Being a boolean expression the template must evaluate to false (or anything other than true) before the trigger will fire again. -With template triggers you can also evaluate attribute changes by using is_state_attr (`{% raw %}{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}{% endraw %}`) +Template triggers work by evaluating a [template](/docs/configuration/templating/) when any of the recognized entities change state. The trigger will fire if the state change caused the template to render 'true' (a non-zero number or any of the strings `true`, `yes`, `on`, `enable`) when it was previously 'false' (anything else). + +This is achieved by having the template result in a true boolean expression (for example `{% raw %}{{ is_state('device_tracker.paulus', 'home') }}{% endraw %}`) or by having the template render `true` (example below). + +With template triggers you can also evaluate attribute changes by using is_state_attr (like `{% raw %}{{ is_state_attr('climate.living_room', 'away_mode', 'off') }}{% endraw %}`) {% raw %} @@ -481,9 +484,9 @@ automation: {% endraw %} -The `for` template(s) will be evaluated when the `value_template` becomes `true`. +The `for` template(s) will be evaluated when the `value_template` becomes 'true'. -Templates that don't contain an entity will be rendered once per minute. +Templates that do not contain an entity will be rendered once per minute. ### Time trigger From 80d60820c3693757a2f9904f43ab9c037b200347 Mon Sep 17 00:00:00 2001 From: Aidan Timson Date: Wed, 24 Feb 2021 22:29:50 +0000 Subject: [PATCH 06/27] Update Lyric docs to use config flow include (#16735) --- source/_integrations/lyric.markdown | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/source/_integrations/lyric.markdown b/source/_integrations/lyric.markdown index 583fe46e553..c274d0328c0 100644 --- a/source/_integrations/lyric.markdown +++ b/source/_integrations/lyric.markdown @@ -34,12 +34,7 @@ lyric: You can then add the integration in the frontend. -## Configuration - -Menu: **Configuration** -> **Integrations**. - -Click on the `+` sign to add an integration and click on **Honeywell Lyric**. -Log in with your Honeywell Lyric account and agree to the terms. The Honeywell Lyric integration will then be available. +{% include integrations/config_flow.md %} ## Sensors From 01b4de9f5f2351f6e104bdfa6b635ac08e616994 Mon Sep 17 00:00:00 2001 From: Nathan Spencer Date: Wed, 24 Feb 2021 18:03:49 -0700 Subject: [PATCH 07/27] Adjust wording and add ha_platforms in Litter-Robot documentation (#16737) --- source/_integrations/litterrobot.markdown | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/_integrations/litterrobot.markdown b/source/_integrations/litterrobot.markdown index b5def7d9fff..96e769609ae 100644 --- a/source/_integrations/litterrobot.markdown +++ b/source/_integrations/litterrobot.markdown @@ -10,21 +10,23 @@ ha_quality_scale: gold ha_codeowners: - '@natekspencer' ha_domain: litterrobot +ha_platforms: + - sensor + - switch + - vacuum --- The Litter-Robot integration allows you to control and monitor your Wi-Fi-enabled, automatic, self-cleaning litter box for cats. You will need a Litter-Robot account as well as a Wi-Fi-enabled Litter-Robot unit that has already been associated with your account. -There is currently support for the following device types within Home Assistant: - -- Vacuum (this is the representation of your Litter-Robot litter box) +The Feeder-Robot is not currently supported by this integration. {% include integrations/config_flow.md %} ## Entities -The following entities are created for this component: +The following entities are created for this component and identified by a single device per Litter-Robot unit: | Entity | Domain | Description | | ---------------- | -------- | -------------------------------------------------------------------------------- | @@ -33,15 +35,13 @@ The following entities are created for this component: | Panel Lockout | `switch` | When turned on, disables the buttons on the unit to prevent changes to settings. | | Waste Drawer | `sensor` | Displays the current waste level gauge. | -All of the entities above are grouped together and identified by a single device. - -## Attributes +## Additional Attributes Some entities have attributes in addition to the default ones that are available for that platform. They are listed below. ### Litter Box `vacuum` entity -| Attribute | Type | Definition | +| Attribute | Type | Description | | ----------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | clean_cycle_wait_time_minutes | integer | Current wait time, in minutes, between when your cat uses the Litter-Robot and when the unit cycles automatically. | | is_sleeping | boolean | Whether or not the unit is currently in sleep mode. | @@ -53,7 +53,7 @@ Some entities have attributes in addition to the default ones that are available ### Waste Drawer `sensor` entity -| Attribute | Type | Definition | +| Attribute | Type | Description | | ------------------------ | ------- | ------------------------------------------------------------------------ | | cycle_count | integer | Number of clean cycles performed since last reset. | | cycle_capacity | integer | Number of clean cycles before unit is full. | @@ -61,7 +61,7 @@ Some entities have attributes in addition to the default ones that are available ## Commands -In addition to the entities that are created above, some commands are utilized for additional functionality that is available in the Litter-Robot companion app. +Commands are utilized for additional functionality that is available in the Litter-Robot companion app. The following are currently available: ### reset_waste_drawer From ab97f9595173120d4a15b5f0cd6f100841b23793 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Thu, 25 Feb 2021 13:44:20 +0100 Subject: [PATCH 08/27] Remove docs for removed keyring/credstash options (#16745) --- source/_docs/configuration/secrets.markdown | 8 +--- source/_docs/tools/credstash.markdown | 35 ------------------ source/_docs/tools/keyring.markdown | 39 -------------------- source/_includes/asides/docs_navigation.html | 2 - source/_redirects | 2 + 5 files changed, 3 insertions(+), 83 deletions(-) delete mode 100644 source/_docs/tools/credstash.markdown delete mode 100644 source/_docs/tools/keyring.markdown diff --git a/source/_docs/configuration/secrets.markdown b/source/_docs/configuration/secrets.markdown index 23a68d3c837..8dec4f4c6c5 100644 --- a/source/_docs/configuration/secrets.markdown +++ b/source/_docs/configuration/secrets.markdown @@ -38,8 +38,7 @@ http_password: YOUR_PASSWORD When you start splitting your configuration into multiple files, you might end up with configuration in sub folders. Secrets will be resolved in this order: - A `secrets.yaml` located in the same folder as the YAML file referencing the secret, -- next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`, -- lastly, `keyring` will be queried for the secret (more info below). +- next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`. To see where secrets are being loaded from, you can either add an option to your `secrets.yaml` file or use the `check_config` script. @@ -58,8 +57,3 @@ hass --script check_config --secrets ``` This will print all your secrets. - -## Alternatives to `secrets.yaml` - -- [Using a keyring that is managed by your OS to store secrets](/docs/tools/keyring/) -- [Storing passwords securely in AWS](/docs/tools/credstash/) diff --git a/source/_docs/tools/credstash.markdown b/source/_docs/tools/credstash.markdown deleted file mode 100644 index 5560cd7d39e..00000000000 --- a/source/_docs/tools/credstash.markdown +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "credstash" -description: "Script to store credentials securely in AWS" ---- - -

-This feature has been deprecated and will be removed in March 2021. -

- -Using [Credstash](https://github.com/fugue/credstash) is an alternative way to `secrets.yaml`. They can be managed from the command line via the credstash script. - -Before using credstash, you need to set up AWS credentials either via the `aws` command line tool or using environment variables as explained in the [AWS CLI documentation](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) as well as creating a KMS key named `credstash` as explained in the [credstash Readme](https://github.com/fugue/credstash#setting-up-kms). After that is complete, you can use the provided script to add secrets to your Home Assistant secret store in credstash. - -```bash -hass --script credstash --help -``` - -To store a password in credstash, replace your password or API key with `!secret` and an identifier in `configuration.yaml` file. - -```yaml -example: - password: !secret example_password -``` - -Create an entry in your credstash store. - -```bash -hass --script credstash put http_password 123 -``` - -List your secrets. - -```bash -hass --script credstash list -``` diff --git a/source/_docs/tools/keyring.markdown b/source/_docs/tools/keyring.markdown deleted file mode 100644 index c146440ae20..00000000000 --- a/source/_docs/tools/keyring.markdown +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "keyring" -description: "Script to store secrets in a keyring" ---- - -

-This feature has been deprecated and will be removed in March 2021. -

- -Using [Keyring](https://github.com/jaraco/keyring) is an alternative way to `secrets.yaml`. The secrets can be managed from the command line via the `keyring` script. - -```bash -hass --script keyring --help -``` - -To store a password in keyring, replace your password or API key with `!secret` and an identifier in `configuration.yaml` file. - -```yaml -integration1: - api_key: !secret integration1_key -``` - -Create an entry in your keyring. - -```bash -hass --script keyring set integration1_key -``` - -If you launch Home Assistant now, you will be prompted for the keyring password to unlock your keyring. - -```bash -$ hass -Config directory: /home/homeassistant/.homeassistant -Please enter password for encrypted keyring: -``` - -
-If you are using the Python Keyring, automatic starting of Home Assistant Core will no longer work. -
diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 632e1dd4461..a7546728ac3 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -146,8 +146,6 @@
  • {% active_link /docs/tools/quick-bar/ Quick Bar %}
  • {% active_link /docs/tools/hass/ hass %}
  • {% active_link /docs/tools/check_config/ check_config %}
  • -
  • {% active_link /docs/tools/credstash/ credstash %}
  • -
  • {% active_link /docs/tools/keyring/ keyring %}
  • diff --git a/source/_redirects b/source/_redirects index 89a69feb219..f4bc0b59b4a 100644 --- a/source/_redirects +++ b/source/_redirects @@ -2190,6 +2190,8 @@ /docs/installation/raspberry-pi-all-in-one /getting-started /getting-started/hassbian /getting-started /getting-started/installation-raspberry-pi-all-in-one /getting-started +/docs/tools/keyring/ /docs/configuration/secrets +/docs/tools/credstash/ /docs/configuration/secrets # Blog /blog/2019/05/29/release-94 /blog/2019/06/05/release-94 From 9db02a8ea47fcb051248075c631cba022384650b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 25 Feb 2021 16:28:03 +0100 Subject: [PATCH 09/27] Fix style for my integration button (#16746) --- sass/custom/_paulus.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 8c37c81f9fe..e313c289ff9 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -460,6 +460,8 @@ div.note { .brand-logo-container { text-align: center; margin-top: 50px; + display: grid; + justify-items: center; img { max-height: 67px; From 9737e87dab499ac7498b58f82416a031de69c2f2 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 26 Feb 2021 10:41:26 +0100 Subject: [PATCH 10/27] Document value_template in MQTT triggers (#16754) --- source/_docs/automation/trigger.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index b82218dae39..6356474ae17 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -97,6 +97,18 @@ automation: encoding: "utf-8" ``` +The `payload` option can be combined with a `value_template` to process the message received on the given MQTT topic before matching it with the payload. +The trigger in the example below will trigger only when the message received on `living_room/switch/ac` is valid JSON, with a key `state` which has the value `"on"`. + +```yaml +automation: + trigger: + platform: mqtt + topic: "living_room/switch/ac" + payload: "on" + value_template: "{{ value_json.state }}" +``` + It's also possible to use [limited templates](/docs/configuration/templating/#limited-templates) in the `topic` and `payload` options.
    From 0ec95a994a4c53686e5831f09b39f0db1f776b03 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 26 Feb 2021 10:49:35 +0100 Subject: [PATCH 11/27] Fix MQTT trigger value_template example (#16755) --- source/_docs/automation/trigger.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 6356474ae17..55ee1a5d69d 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -100,6 +100,8 @@ automation: The `payload` option can be combined with a `value_template` to process the message received on the given MQTT topic before matching it with the payload. The trigger in the example below will trigger only when the message received on `living_room/switch/ac` is valid JSON, with a key `state` which has the value `"on"`. +{% raw %} + ```yaml automation: trigger: @@ -109,6 +111,8 @@ automation: value_template: "{{ value_json.state }}" ``` +{% endraw %} + It's also possible to use [limited templates](/docs/configuration/templating/#limited-templates) in the `topic` and `payload` options.
    From 2dc57d429a9a1c70c4b750b9c0159b2b6ffc2d7d Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Tue, 2 Mar 2021 05:17:36 -0500 Subject: [PATCH 12/27] Update Z-Wave JS limitations for next release (#16796) --- source/_integrations/zwave_js.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown index f5ecc35cdd6..70d4d8e72ed 100644 --- a/source/_integrations/zwave_js.markdown +++ b/source/_integrations/zwave_js.markdown @@ -103,6 +103,7 @@ data: parameter: "LED 1 Blink Status (bottom)" value: "Blink" ``` + ### Service `zwave_js.refresh_value` This service will refresh the value(s) for an entity. This service will generate extra traffic on your Z-Wave network and should be used sparingly. Updates from devices on battery may take some time to be received. @@ -181,8 +182,7 @@ Value Notification example: As this integration is still in the early stages there are some important limitations to be aware of. - While support for the most common devices is working, some command classes are not yet (fully) implemented in Z-Wave JS. You can track the status [here](https://github.com/zwave-js/node-zwave-js/issues/6). -- Configuration of Z-Wave nodes and/or configuration with the Home Assistant UI is currently not yet implemented. You will need to use another tool, such as [zwavejs2mqtt](https://github.com/zwave-js/zwavejs2mqtt), to manage device configuration. -- Polling is currently not supported in the integration but will be added soon as a service. +- Configuration of Z-Wave nodes within the Home Assistant UI is not yet implemented, but a [service](#service-zwave_js.set_config_parameter) is available with limited configuration capabilities. If the service doesn't meet your needs, you will need to use another tool, such as [zwavejs2mqtt](https://github.com/zwave-js/zwavejs2mqtt), to manage device configuration. - There currently is no migration path available from any of the other Z-Wave implementations in Home Assistant. Your Z-Wave network is however stored on your stick so migrating will only require you to redo your device and entity naming. You can keep track of the Roadmap for the Z-Wave JS integration [here](https://github.com/home-assistant-libs/zwave-js-server-python/issues/56). From 1e419b6d8e774b34fec54759f23bbc1cbc15d596 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 2 Mar 2021 14:13:56 +0100 Subject: [PATCH 13/27] My plugin updates (#16806) Co-authored-by: Bram Kragten --- .textlintrc.json | 3 +- plugins/my.rb | 46 +++++++++++++++++-- sass/custom/_paulus.scss | 1 - source/_docs/automation/services.markdown | 10 ++-- source/_docs/automation/templating.markdown | 2 +- .../automation/using_blueprints.markdown | 6 +-- .../asides/component_navigation.html | 2 +- source/_includes/common-tasks/snapshots.md | 18 +++----- source/_includes/integrations/config_flow.md | 4 +- 9 files changed, 61 insertions(+), 31 deletions(-) diff --git a/.textlintrc.json b/.textlintrc.json index 67f435bca75..aaf0c0dcc69 100644 --- a/.textlintrc.json +++ b/.textlintrc.json @@ -173,6 +173,7 @@ "MJPEG", "MQTT", "Mullvad", + "My Home Assistant", "MySensors", "NAS", "NETGEAR", @@ -278,7 +279,6 @@ "XML", "Yamaha MusicCast", "Yamaha", - "YAML", "Yandex", "Yeelight", "YouTube", @@ -302,7 +302,6 @@ ["cancelled", "canceled"], ["client ?side", "client-side"], ["colour", "color"], - ["config\\b", "configuration"], ["DarkSky", "Dark Sky"], ["docs\\b", "documentation"], ["e\\.g\\.", "e.g.,"], diff --git a/plugins/my.rb b/plugins/my.rb index 948e7efaf06..b785fb737f1 100644 --- a/plugins/my.rb +++ b/plugins/my.rb @@ -12,11 +12,11 @@ module Jekyll else raise SyntaxError, <<~MSG Syntax error in tag 'my' while parsing the following options: - ` + #{args} Valid syntax: - {% my [title="Link name"] [badge] [icon[="icon-puzzle-piece"]] [addon="core_ssh"] [blueprint_url=""] [domain="hue"] %} + {% my [title="Link name"] [badge] [icon[="icon-puzzle-piece"]] [addon="core_ssh"] [blueprint_url="http://example.com/blueprint.yaml"] [domain="hue"] [service="light.turn_on"] %} MSG end end @@ -33,24 +33,39 @@ module Jekyll query += [["addon", options[:addon]]] if options.include? :addon query += [["blueprint_url", options[:blueprint_url]]] if options.include? :blueprint_url query += [["domain", options[:domain]]] if options.include? :domain + query += [["service", options[:service]]] if options.include? :service unless query.empty? uri.query = URI.encode_www_form(query) end if options[:badge] - title = options[:title] ? options[:title].gsub(/\ /, '_') : @redirect + raise ArgumentError, "Badges cannot have custom titles" if options[:title] ""\ - ""\ + ""\ "" else - title = options[:title] ? options[:title] : @redirect.gsub(/_/, ' ').titlecase + title = @redirect.gsub(/_/, ' ').titlecase icon = "" + + if options[:title] + # Custom title + title = options[:title] + elsif @redirect == "developer_call_service" + # Developer service call + title = "Call Service" + title = "`#{options[:service]}`" if options.include? :service + elsif DEFAULT_TITLES.include?(@redirect) + # Lookup defaults + title = DEFAULT_TITLES[@redirect] + end + if options[:icon] raise ArgumentError, "No default icon for redirect #{@redirect}" \ if !!options[:icon] == options[:icon] and ! DEFAULT_ICONS.include?(@redirect) icon = !!options[:icon] == options[:icon] ? DEFAULT_ICONS[@redirect] : @options[:icon] icon = " " end + "#{icon}#{title}" end end @@ -60,11 +75,32 @@ module Jekyll SYNTAX = %r!^([a-z_]+)((\s+\w+(=([\w\.]+?|".+?"))?)*)$!.freeze OPTIONS_REGEX = %r!(?:\w="[^"]*"|\w=[\w\.]+|\w)+!.freeze + # Default icons when used in in-line text DEFAULT_ICONS = { "config_flow_start" => "icon-plus-sign", + "config" => "icon-cog", "integrations" => "icon-puzzle-piece", } + # Default title used for in-line text + DEFAULT_TITLES = { + "blueprint_import" => "Import Blueprint", + "cloud" => "Home Assistant Cloud", + "config_flow_start" => "Add Integration", + "config_mqtt" => "MQTT Configuration", + "config_zha" => "ZHA Configuration", + "config_zwave_js" => "Z-Wave JS Configuration", + "config" => "Configuration", + "developer_events" => "Events", + "developer_services" => "Services", + "developer_states" => "States", + "developer_template" => "Templates", + "general" => "General Settings", + "info" => "Information", + "supervisor_info" => "Supervisor Information", + "supervisor_snapshots" => "Snapshots", + } + def parse_options(input, context) options = {} return options if input.empty? diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index e313c289ff9..2dba14063b2 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -676,6 +676,5 @@ code { a.my { img { border: 0px; - border-radius: 3px; } } diff --git a/source/_docs/automation/services.markdown b/source/_docs/automation/services.markdown index 57525889bde..40e9ceaf90d 100644 --- a/source/_docs/automation/services.markdown +++ b/source/_docs/automation/services.markdown @@ -5,7 +5,7 @@ description: "How to use the various automation services." The automation integration has services to control automations, like turning automations on and off. This can be useful if you want to disable an automation from another automation. -## Service `automation.turn_on` +## Service {% my developer_call_service service="automation.turn_on" %} This service enables the automation's triggers. @@ -13,7 +13,7 @@ Service data attribute | Optional | Description -|-|- `entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. -## Service `automation.turn_off` +## Service {% my developer_call_service service="automation.turn_off" %} This service disables the automation's triggers, and optionally stops any currently active actions. @@ -22,7 +22,7 @@ Service data attribute | Optional | Description `entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. `stop_actions` | yes | Stop any currently active actions (defaults to true). -## Service `automation.toggle` +## Service {% my developer_call_service service="automation.toggle" %} This service enables the automation's triggers if they were disabled, or disables the automation's triggers, and stops any currently active actions, if the triggers were enabled. @@ -30,7 +30,7 @@ Service data attribute | Optional | Description -|-|- `entity_id` | no | Entity ID of automation to turn on. Can be a list. `none` or `all` are also accepted. -## Service `automation.trigger` +## Service {% my developer_call_service service="automation.trigger" %} This service will trigger the action of an automation. By default it bypasses any conditions, though that can be changed via the `skip_condition` attribute. @@ -39,7 +39,7 @@ Service data attribute | Optional | Description `entity_id` | no | Entity ID of automation to trigger. Can be a list. `none` or `all` are also accepted. `skip_condition` | yes | Whether or not the condition will be skipped (defaults to true). -## Service `automation.reload` +## Service {% my developer_call_service service="automation.reload" %} _This service is only required if you create/edit automations in YAML. Automations via the UI do this automatically._ diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index 15baca1e931..0b72cd1e459 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -7,7 +7,7 @@ Automations support [templating](/docs/configuration/templating/) in the same wa
    - Be aware that if you reference a `trigger` state object in templates of an automation' `action` or `condition` sections, attempting to test that automation by calling the `automation.trigger` service or by clicking EXECUTE in the More Info box for the automation will not work. This is because the trigger state object doesn't exist in those contexts. One way to test automations like these is to manually check that the templates work as expected by pasting them in Developer Tools > Template together with your trigger's definition like: + Be aware that if you reference a `trigger` state object in templates of an automation' `action` or `condition` sections, attempting to test that automation by calling the `automation.trigger` service or by clicking EXECUTE in the More Info box for the automation will not work. This is because the trigger state object doesn't exist in those contexts. One way to test automations like these is to manually check that the templates work as expected by pasting them in {% my developer_template title="Developer Tools > Template" %} together with your trigger's definition like: {%raw%} diff --git a/source/_docs/automation/using_blueprints.markdown b/source/_docs/automation/using_blueprints.markdown index 5f10a2d25a1..a17617bacd1 100644 --- a/source/_docs/automation/using_blueprints.markdown +++ b/source/_docs/automation/using_blueprints.markdown @@ -13,11 +13,11 @@ Quick links: Automations based on a blueprint only need to be configured to be used. What needs to be configured differs on each blueprint. -To create your first automation based on a blueprint, go to **Configuration** and then **Blueprints**. Find the blueprint that you want to use and click on "Create Automation". +To create your first automation based on a blueprint, go to **{% my config %}** and then **{% my blueprints %}**. Find the blueprint that you want to use and click on "Create Automation". This will open the automation editor with the blueprint selected. Give it a name and configure the blueprint and click on the blue button "Save Automation" in the bottom right. -Done! If you want to revisit the configuration values, you can find it by going to **Configuration** and then **Automations**. +Done! If you want to revisit the configuration values, you can find it by going to **{% my config %}** and then **{% my automations %}**. ## Importing blueprints @@ -29,7 +29,7 @@ To do this, first [find a blueprint you want to import][blueprint-forums]. If yo https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml ``` -Go to **Configuration** and then **Blueprints**. Click on the blue "Import Blueprint" button in the bottom right. +Go to **{% my config %}** and then **{% my blueprints %}**. Click on the blue "{% my blueprint_import blueprint="https://github.com/home-assistant/core/blob/master/homeassistant/components/automation/blueprints/motion_light.yaml" %} button in the bottom right. A new dialog will pop-up asking you for the URL. Enter the URL and click on "preview blueprint". diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html index e93dfc2c5a9..75a809b5399 100644 --- a/source/_includes/asides/component_navigation.html +++ b/source/_includes/asides/component_navigation.html @@ -8,7 +8,7 @@ {%- endif -%} {%- if page.ha_config_flow and page.ha_domain -%} - {% my config_flow_start badge title="Add Integration" domain=page.ha_domain %} + {% my config_flow_start badge domain=page.ha_domain %} {%- endif -%}
    diff --git a/source/_includes/common-tasks/snapshots.md b/source/_includes/common-tasks/snapshots.md index b806173f345..49f33abd950 100644 --- a/source/_includes/common-tasks/snapshots.md +++ b/source/_includes/common-tasks/snapshots.md @@ -14,7 +14,7 @@ A partial snapshot consists of any number of the above default directories and i ### Making a Snapshot from the UI -1. Go to Supervisor > Snapshots in the UI +1. Go to {% my supervisor_snapshots title="Supervisor > Snapshots" %} in the UI 2. Provide a name for the snapshot. 3. Choose full or partial. 4. Choose to password protect or not. Password protected snapshots cannot easily be browsed outside of Home Assistant OS @@ -33,7 +33,7 @@ When the upload is completed, you will be presented with the snapshot restore di If the snapshot you are uploading is more than 1GB in size, it can be faster and more efficient to make use of the Samba add-on in order to transfer files to the `/backup` directory. -The length of time it takes to create or restore snapshots will depend on how much you have to compress or decompress. +The length of time it takes to create or restore snapshots will depend on how much you have to compress or decompress. If you're looking to slim down your snapshots, check if your configuration directory contains a large database file (`home-assistant_v2.db`). See the [`recorder`](https://www.home-assistant.io/components/recorder/) integration page for options to keep your database data down to a size that won't cause issues. Note the keep days, purge interval, and include/exclude options. @@ -52,12 +52,8 @@ Use `ha help` to see more info. You often need a snapshot in case your system has crashed. If you only store them on the crashed device, you won't be able to access it easily. We recommend that you manually copy them from `/backup` to another machine on occasion. Or even better, create an automation to handle that, or make use of one of the following add-ons: - - [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup) - - - [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync) - - - [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup) - - - [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup) - - - [Remote Backup (uses scp)](https://github.com/overkill32/hassio-remote-backup) \ No newline at end of file +- [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup) +- [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync) +- [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup) +- [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup) +- [Remote Backup (uses scp)](https://github.com/overkill32/hassio-remote-backup) diff --git a/source/_includes/integrations/config_flow.md b/source/_includes/integrations/config_flow.md index ff49aa3acb3..20c04db3e1a 100644 --- a/source/_includes/integrations/config_flow.md +++ b/source/_includes/integrations/config_flow.md @@ -6,7 +6,7 @@ Adding {{ name }} to your Home Assistant instance can be done via the user interface, by taking the following steps: - Browse to your Home Assistant instance. -- In the sidebar click on _**Configuration**_. +- In the sidebar click on _**{% my config icon %}**_. - From the configuration menu select: _**{% my integrations icon %}**_. {% if include.discovery or page.ha_dhcp or page.ha_homekit or page.ha_ssdp or page.ha_zeroconf %} @@ -20,7 +20,7 @@ manual integration entry: {% endif %} - In the bottom right, click on the - _**{% my config_flow_start icon title="Add Integration" domain=page.ha_domain %}**_ button. + _**{% my config_flow_start icon domain=page.ha_domain %}**_ button. - From the list, search and select _**"{{ name }}"**_. - Follow the instruction on screen to complete the set up. From 007d640655a8e342bb9a0b67ed0fda5c0f7a50e3 Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Tue, 2 Mar 2021 16:12:07 -0500 Subject: [PATCH 14/27] Update example zwave_js_event value notification event to include new keys (#16815) --- source/_integrations/zwave_js.markdown | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown index 70d4d8e72ed..171d96b4d7b 100644 --- a/source/_integrations/zwave_js.markdown +++ b/source/_integrations/zwave_js.markdown @@ -168,12 +168,15 @@ Value Notification example: "home_id": "974823419", "endpoint": 0, "device_id": "ad8098fe80980974", - "command_class": 32, - "command_class_name": "Basic", + "command_class": 91, + "command_class_name": "Central Scene", "label": "Event value", - "property_name": "event", - "property_key_name": "some value", - "value": 255, + "property": "scene", + "property_name": "scene", + "property_key": "001", + "property_key_name": "001", + "value": "KeyPressed", + "value_raw": 0 } ``` From 38d229792b62d6d1a135dde944715a3e3d37abcf Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 2 Mar 2021 21:14:00 +0100 Subject: [PATCH 15/27] Add more My links (#16816) --- source/_docs/authentication/multi-factor-auth.markdown | 6 +++--- source/_docs/authentication/providers.markdown | 2 +- source/_docs/automation/basics.markdown | 4 ++-- source/_docs/automation/editor.markdown | 5 +++-- source/_docs/automation/troubleshooting.markdown | 4 ++-- source/_docs/automation/yaml.markdown | 2 +- source/_docs/blueprint/tutorial.markdown | 2 +- source/_docs/configuration/basic.markdown | 2 +- source/_docs/configuration/devices.markdown | 2 +- source/_docs/configuration/splitting_configuration.markdown | 2 +- source/_docs/configuration/templating.markdown | 2 +- source/_integrations/xbox.markdown | 2 +- source/_integrations/zwave_js.markdown | 2 +- 13 files changed, 19 insertions(+), 18 deletions(-) diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index 47969af1dee..d295b48b4be 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -36,9 +36,9 @@ If no `auth_mfa_modules` configuration section is defined in `configuration.yaml You will need an authenticator app on your phone. We recommend either [Google Authenticator](https://support.google.com/accounts/answer/1066447) or [Authy](https://authy.com/). Both are available for iOS or Android. -After restarting Home Assistant, go to your [profile page](/docs/authentication/#your-account-profile) and there should be a "Multi-factor Authentication Modules" section. +After restarting Home Assistant, go to your {% my profile %} and there should be a "Multi-factor Authentication Modules" section. -Click _Enable_ and a new secret key will be generated. Go to your phone app and enter the key, either by scanning the QR code or typing in the key below the QR code manually. +Click _Enable_ and a new secret key will be generated. Go to your phone app and enter the key, either by scanning the QR code or typing in the key below the QR code manually. Screenshot of setting up multi-factor authentication @@ -99,7 +99,7 @@ homeassistant: message: "I almost forget, to get into my clubhouse, you need to say {}" ``` -After restarting Home Assistant, go to your [profile page](/docs/authentication/#your-account-profile) and there should be a "Multi-factor Authentication Modules" section. Click _Enable_ on the _Notify One-Time Password_ option. +After restarting Home Assistant, go to your {% my profile %} and there should be a "Multi-factor Authentication Modules" section. Click _Enable_ on the _Notify One-Time Password_ option. Try logging out, then logging in again. You will be asked for the six-digit one-time password that was sent to your notify service. Enter the password to log in. diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index a8003727e37..c414de45e3f 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -37,7 +37,7 @@ This is the default auth provider. The first user created is designated as the _ User details are stored in the `[your config]/.storage` directory. All passwords are stored hashed and with a salt, making it almost impossible for an attacker to figure out the password even if they have access to the file. -Users can be managed in Home Assistant by the owner. Go to the configuration panel and click on _Users_. +Users can be managed in Home Assistant by the owner. Go to the configuration panel and click on _{% my users %}_. This is the entry in `configuration.yaml` for Home Assistant auth: diff --git a/source/_docs/automation/basics.markdown b/source/_docs/automation/basics.markdown index fb46acb9a40..87a1d384f25 100644 --- a/source/_docs/automation/basics.markdown +++ b/source/_docs/automation/basics.markdown @@ -27,7 +27,7 @@ The difference between a condition and a trigger can be confusing as they are ve ## Exploring the internal state -Automation rules interact directly with the internal state of Home Assistant, so you'll need to familiarize yourself with it. Home Assistant exposes its current state via the developer tools. These are available at the bottom of the sidebar in the frontend. **Developer Tools** -> **States** will show all currently available states. An entity can be anything. A light, a switch, a person and even the sun. A state consists of the following parts: +Automation rules interact directly with the internal state of Home Assistant, so you'll need to familiarize yourself with it. Home Assistant exposes its current state via the developer tools. These are available at the bottom of the sidebar in the frontend. **{% my developer_states title="Developer Tools -> States" %}** will show all currently available states. An entity can be anything. A light, a switch, a person and even the sun. A state consists of the following parts: | Name | Description | Example | | ---- | ----- | ---- | @@ -37,7 +37,7 @@ Automation rules interact directly with the internal state of Home Assistant, so State changes can be used as the source of triggers and the current state can be used in conditions. -Actions are all about calling services. To explore the available services open the **Developer Tools** -> **Services**. Services allow changing anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service `light.turn_on` is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. +Actions are all about calling services. To explore the available services open the **{% my developer_states title="Developer Tools -> Services" %}**. Services allow changing anything. For example turn on a light, run a script or enable a scene. Each service has a domain and a name. For example the service {% my developer_call_service service="light.turn_on" %} is capable of turning on any light in your system. Services can be passed parameters to for example tell which device to turn on or what color to use. ## Creating automations diff --git a/source/_docs/automation/editor.markdown b/source/_docs/automation/editor.markdown index 4e51eee8d1c..a4f8cab57a0 100644 --- a/source/_docs/automation/editor.markdown +++ b/source/_docs/automation/editor.markdown @@ -3,7 +3,7 @@ title: "Automation Editor" description: "Instructions on how to use the automation editor." --- -From the UI choose **Configuration** which is located in the sidebar, then click on **Automation** to go to the automation editor. Press the **+** sign in the lower right corner to get started. This example is based on the manual steps described in the [Getting started section](/getting-started/automation/) for a [`random` sensor](/integrations/random#sensor). +From the UI choose **{% my config %}** which is located in the sidebar, then click on **{% my automations %}** to go to the automation editor. Press the **+** sign in the lower right corner to get started. This example is based on the manual steps described in the [Getting started section](/getting-started/automation/) for a [`random` sensor](/integrations/random#sensor). Choose a meaningful name for your automation rules. @@ -29,4 +29,5 @@ As "Service Data" we want a simple text that is shown as part of the notificatio message: Sensor value greater than 10 ``` -Don't forget to save your new automation rule. For your saved automation rule to come into effect, you will need to go to the **Configuration** page and click on **Reload Automation**. +Automation created or edited via the user interface, are activated immediately +after save the automation. diff --git a/source/_docs/automation/troubleshooting.markdown b/source/_docs/automation/troubleshooting.markdown index 1181dbb4b60..f63899cf928 100644 --- a/source/_docs/automation/troubleshooting.markdown +++ b/source/_docs/automation/troubleshooting.markdown @@ -27,11 +27,11 @@ Please note that if you click on **Trigger** of an automation in the frontend, * All this makes that Trigger feature pretty limited and nearly useless for debugging purposes so you need to find another way. Make sure you check and adapt to your circumstances appropriate examples from Automation Trigger, Conditions and Actions. -It is also useful to go to **Configuration** -> **Server Control** and click on **Check Configuration** button in Configuration validation section to make sure there are no syntax errors before restarting Home Assistant. In order for **Check configuration** to be visible, you must enable **Advanced Mode** on your user profile. +It is also useful to go to **{% my server_controls title="Configuration -> Server Control" %}** and click on **Check Configuration** button in Configuration validation section to make sure there are no syntax errors before restarting Home Assistant. In order for **Check configuration** to be visible, you must enable **Advanced Mode** on {% my profile title="your user profile" %}. If your automation uses templates in any part, you can do the following to make sure it works as expected: -1. Go to **Developer tools** -> **Template** tab. +1. Go to **{% my developer_templates title="Developer tools -> Template" %}** tab. 2. Create all variables (sources) required for your template as described at the end of [this](https://www.home-assistant.io/docs/configuration/templating/#processing-incoming-data) paragraph. 3. Copy your template code and paste it in Template editor straight after your variables. 4. If necessary, change your sources' value and check if the template works as you want and does not generate any errors. diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown index 2efe894ad7e..77a869289f0 100644 --- a/source/_docs/automation/yaml.markdown +++ b/source/_docs/automation/yaml.markdown @@ -148,6 +148,6 @@ If you want to migrate your manual automations to use the editor, you'll have to When automations remain visible in the Home Assistant Dashboard, even after having deleted in the YAML file, you have to delete them in the UI. -To delete them completely, go to UI **Configuration** -> **Entities** and find the automation in the search field or by scrolling down. +To delete them completely, go to UI **{% my entities title="Configuration -> Entities" %}** and find the automation in the search field or by scrolling down. Check the square box aside of the automation you wish to delete and from the top-right of your screen, select 'REMOVE SELECTED'. diff --git a/source/_docs/blueprint/tutorial.markdown b/source/_docs/blueprint/tutorial.markdown index ec95e596db2..d26eaa99bed 100644 --- a/source/_docs/blueprint/tutorial.markdown +++ b/source/_docs/blueprint/tutorial.markdown @@ -208,7 +208,7 @@ action: ## Use it via the UI -To configure it via the UI, go to **Configuration** and then **Blueprints**. Find the "Motion Light Tutorial" blueprint and click on "Create Automation". +To configure it via the UI, go to **{% my config %}** and then **{% my blueprints %}**. Find the "Motion Light Tutorial" blueprint and click on "Create Automation".
    Don't forget to reload automations after you make changes to your blueprint to have the UI and the automation integration pick up the latest blueprint changes. diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown index 0742a6bd824..d1d5396947d 100644 --- a/source/_docs/configuration/basic.markdown +++ b/source/_docs/configuration/basic.markdown @@ -100,4 +100,4 @@ legacy_templates: ## Reload Core Service -Home Assistant offers a service to reload the core configuration while Home Assistant is running called `homeassistant.reload_core_config`. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "Service" tab under Developer Tools, select the `homeassistant.reload_core_config` service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Location & Customizations" button under Configuration > Server Control. +Home Assistant offers a service to reload the core configuration while Home Assistant is running called {% my developer_call_service service="homeassistant.reload_core_config" %}. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "{% my developer_services %}" tab under {% my developer_services title="Developer Tools" %}, select the {% my developer_call_service service="homeassistant.reload_core_config" %} service and click the "CALL SERVICE" button. Alternatively, you can press the "Reload Location & Customizations" button under {% my server_controls title="Configuration > Server Control" %}. diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown index a170014870a..0f93b43382a 100644 --- a/source/_docs/configuration/devices.markdown +++ b/source/_docs/configuration/devices.markdown @@ -62,7 +62,7 @@ switch 2: ## Grouping devices Once you have several devices set up, it is time to organize them into groups. -Each group consists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the “States” page in the Developer Tools. +Each group consists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the {% my developer_states title="States page in the Developer Tools" %}. ```yaml # Example configuration.yaml entry showing two styles diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index 642048da29f..5bfbc9d3233 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -491,7 +491,7 @@ front_yard: ### Example: Combine `!include_dir_merge_list` with `automations.yaml` -You want to go the advanced route and split your automations, but still want to be able to create automations in the UI? +You want to go the advanced route and split your automations, but still want to be able to create {% my automations title="automations in the UI" %}? In a chapter above we write about nesting `!includes`. Here is how we can do that for automations. Using labels like `manual` or `ui` allows for using multiple keys in the config: diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 15f2e1387a0..3f3852ffa3c 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -24,7 +24,7 @@ Templating in Home Assistant is powered by the [Jinja2](https://palletsprojects. We will not go over the basics of the syntax, as Jinja2 does a great job of this in their [templates documentation](https://jinja.palletsprojects.com/en/master/templates/). -The frontend has a template editor tool to help develop and debug templates. Navigate to Developer Tools > Template, create your template in the _Template editor_ and check the results on the right. +The frontend has a {% my developer_templates title="template editor tool" %} to help develop and debug templates. Navigate to {% my developer_templates title="Developer Tools > Template" %}, create your template in the _Template editor_ and check the results on the right. Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: diff --git a/source/_integrations/xbox.markdown b/source/_integrations/xbox.markdown index 60176702b23..d5a1e614f4d 100644 --- a/source/_integrations/xbox.markdown +++ b/source/_integrations/xbox.markdown @@ -40,7 +40,7 @@ The Xbox media player platform will create Media Player entities for each consol Launches an application on the Xbox console using the application's product ID. Also supports "Home" and "TV" to navigate to the dashboard or Live TV respectively. -You can find Product IDs using the **Developer Tools -> Events** tab and listening to the `call_service` event. In a new browser tab, navigate to the media browser for your console and click on an App/Game to see the product ID in the event. +You can find Product IDs using the **{% my developer_events title="Developer Tools -> Events" %}** tab and listening to the `call_service` event. In a new browser tab, navigate to the media browser for your console and click on an App/Game to see the product ID in the event. | Service data attribute | Description | | ---------------------- | --------------------------------------| diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown index 171d96b4d7b..84fa202c215 100644 --- a/source/_integrations/zwave_js.markdown +++ b/source/_integrations/zwave_js.markdown @@ -136,7 +136,7 @@ Valid code slots are between 1-254. ## Events -Events are fired when you press a button on a remote (aka Central Scene support) or when a stateless value is being signalled by a device. You can test what events come in using the event developer tools in Home Assistant and subscribe to `zwave_js_event`. Once you know what the event data looks like, you can use this to create automations. +Events are fired when you press a button on a remote (aka Central Scene support) or when a stateless value is being signalled by a device. You can test what events come in using the event {% my developer_events title="developer tools in Home Assistant" %} and subscribe to `zwave_js_event`. Once you know what the event data looks like, you can use this to create automations. ### Node events (Notification) From fad2a4531040c79e1cbad502b6a6e8f9eed71d28 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 2 Mar 2021 21:14:30 +0100 Subject: [PATCH 16/27] Collection of Markdown/YAML cleanups (#16817) --- .../authentication/multi-factor-auth.markdown | 2 +- source/_docs/automation/action.markdown | 31 +- source/_docs/automation/basics.markdown | 2 +- source/_docs/automation/condition.markdown | 30 +- source/_docs/automation/templating.markdown | 18 +- source/_docs/automation/trigger.markdown | 442 +++++++++--------- source/_docs/automation/yaml.markdown | 59 ++- source/_docs/blueprint/schema.markdown | 8 +- source/_docs/blueprint/tutorial.markdown | 18 +- source/_docs/configuration/basic.markdown | 10 +- source/_docs/configuration/devices.markdown | 10 +- source/_docs/configuration/packages.markdown | 9 +- .../configuration/platform_options.markdown | 4 +- source/_docs/configuration/remote.markdown | 4 - source/_docs/configuration/secrets.markdown | 2 +- .../splitting_configuration.markdown | 94 ++-- .../_docs/configuration/templating.markdown | 85 +++- .../configuration/troubleshooting.markdown | 2 +- source/_docs/configuration/yaml.markdown | 12 +- 19 files changed, 446 insertions(+), 396 deletions(-) diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown index d295b48b4be..240224f0a83 100644 --- a/source/_docs/authentication/multi-factor-auth.markdown +++ b/source/_docs/authentication/multi-factor-auth.markdown @@ -94,7 +94,7 @@ message: homeassistant: auth_mfa_modules: - type: totp - name: Authenticator app + name: "Authenticator app" - type: notify message: "I almost forget, to get into my clubhouse, you need to say {}" ``` diff --git a/source/_docs/automation/action.markdown b/source/_docs/automation/action.markdown index 3297a6749ef..74ccbe6f9e7 100644 --- a/source/_docs/automation/action.markdown +++ b/source/_docs/automation/action.markdown @@ -11,23 +11,24 @@ You can also call the service to activate [a scene](/integrations/scene/) which automation: # Change the light in the kitchen and living room to 150 brightness and color red. trigger: - platform: sun - event: sunset + - platform: sun + event: sunset action: - service: light.turn_on - data: - brightness: 150 - rgb_color: [255, 0, 0] - entity_id: - - light.kitchen - - light.living_room + - service: light.turn_on + target: + entity_id: + - light.kitchen + - light.living_room + data: + brightness: 150 + rgb_color: [255, 0, 0] automation 2: # Notify me on my mobile phone of an event trigger: - platform: sun - event: sunset - offset: -00:30 + - platform: sun + event: sunset + offset: -00:30 variables: notification_service: notify.paulus_iphone action: @@ -47,9 +48,9 @@ Conditions can also be part of an action. You can combine multiple service calls automation: - alias: "Office at evening" trigger: - platform: state - entity_id: sensor.office_occupancy - to: "on" + - platform: state + entity_id: sensor.office_occupancy + to: "on" action: - service: notify.notify data: diff --git a/source/_docs/automation/basics.markdown b/source/_docs/automation/basics.markdown index 87a1d384f25..0ad584c5e5e 100644 --- a/source/_docs/automation/basics.markdown +++ b/source/_docs/automation/basics.markdown @@ -15,7 +15,7 @@ We can break up this automation into the following three parts: (action) Turn the lights on in the living room ``` -The first part is the [trigger](/docs/automation/trigger/) of the automation rule. Triggers describe events that should trigger the automation rule. In this case, it is a person arriving home, which can be observed in Home Assistant by observing the state of Paulus changing from 'not_home' to 'home'. +The first part is the [trigger](/docs/automation/trigger/) of the automation rule. Triggers describe events that should trigger the automation rule. In this case, it is a person arriving home, which can be observed in Home Assistant by observing the state of Paulus changing from `not_home` to `home`. The second part is the [condition](/docs/automation/condition/). Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun. In this case, we only want to act when the sun has set. diff --git a/source/_docs/automation/condition.markdown b/source/_docs/automation/condition.markdown index b530f18e5de..d9f7076920d 100644 --- a/source/_docs/automation/condition.markdown +++ b/source/_docs/automation/condition.markdown @@ -15,19 +15,19 @@ Example of using condition: automation: - alias: "Enciende Despacho" trigger: - platform: state - entity_id: sensor.mini_despacho - to: "on" + - platform: state + entity_id: sensor.mini_despacho + to: "on" condition: - condition: or - conditions: - - condition: numeric_state - entity_id: sun.sun - attribute: elevation - below: 4 - - condition: numeric_state - entity_id: sensor.sensorluz_7_0 - below: 10 + - condition: or + conditions: + - condition: numeric_state + entity_id: sun.sun + attribute: elevation + below: 4 + - condition: numeric_state + entity_id: sensor.sensorluz_7_0 + below: 10 action: - service: scene.turn_on target: @@ -44,9 +44,9 @@ The `condition` option of an automation, also accepts a single condition templat automation: - alias: "Enciende Despacho" trigger: - platform: state - entity_id: sensor.mini_despacho - to: "on" + - platform: state + entity_id: sensor.mini_despacho + to: "on" condition: "{{ state_attr('sun.sun', 'elevation') < 4 }}" action: - service: scene.turn_on diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index 0b72cd1e459..38da81fa0bf 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -127,19 +127,19 @@ The following tables show the available trigger data per platform. # Example configuration.yaml entries automation: trigger: - platform: state - entity_id: device_tracker.paulus + - platform: state + entity_id: device_tracker.paulus action: - service: notify.notify - data: - message: > - Paulus just changed from {{ trigger.from_state.state }} - to {{ trigger.to_state.state }} + - service: notify.notify + data: + message: > + Paulus just changed from {{ trigger.from_state.state }} + to {{ trigger.to_state.state }} automation 2: trigger: - platform: mqtt - topic: /notify/+ + - platform: mqtt + topic: "/notify/+" action: service: > notify.{{ trigger.topic.split('/')[-1] }} diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 55ee1a5d69d..8f8a730b958 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -3,7 +3,7 @@ title: "Automation Trigger" description: "All the different ways how automations can be triggered." --- -### What are triggers +## What are triggers Triggers are what starts the processing of an automation rule. When _any_ of the automation's triggers becomes true (trigger _fires_), Home Assistant will validate the [conditions](/docs/automation/condition/), if any, and call the [action](/docs/automation/action/). @@ -11,11 +11,11 @@ An automation can be triggered by an event, with a certain entity state, at a gi The following sections introduce all trigger types and further details to get started. -### Trigger variables +## Trigger variables Similar to [script level variables](/integrations/script/#variables), `trigger_variables` will be available in trigger templates with the difference that only [limited templates](/docs/configuration/templating/#limited-templates) can be used to pass a value to the trigger variable. -### Event trigger +## Event trigger Fires when an event is being received. Events are the raw building blocks of Home Assistant. You can match events on just the event name or also require specific event data or context to be present. @@ -24,16 +24,16 @@ Events can be fired by integrations or via the API. There is no limitation to th ```yaml automation: trigger: - platform: event - event_type: MY_CUSTOM_EVENT - # optional - event_data: - mood: happy - context: - user_id: - # any of these will match - - MY_USER_ID - - ANOTHER_USER_ID + - platform: event + event_type: "MY_CUSTOM_EVENT" + # optional + event_data: + mood: happy + context: + user_id: + # any of these will match + - "MY_USER_ID" + - "ANOTHER_USER_ID" ``` It is also possible to listen for multiple events at once. This is useful for @@ -42,10 +42,10 @@ event that contain no, or similar, data and contexts. ```yaml automation: trigger: - platform: event - event_type: - - automation_reloaded - - scene_reloaded + - platform: event + event_type: + - automation_reloaded + - scene_reloaded ``` It's also possible to use [limited templates](/docs/configuration/templating/#limited-templates) in the `event_type`, `event_data` and `context` options. @@ -65,36 +65,36 @@ automation: node: ac value: on trigger: - platform: event - event_type: "{{ 'MY_CUSTOM_EVENT_' ~ sub_event }}" + - platform: event + event_type: "{{ 'MY_CUSTOM_EVENT_' ~ sub_event }}" ``` {% endraw %} -### Home Assistant trigger +## Home Assistant trigger Fires when Home Assistant starts up or shuts down. ```yaml automation: trigger: - platform: homeassistant - # Event can also be 'shutdown' - event: start + - platform: homeassistant + # Event can also be 'shutdown' + event: start ``` -### MQTT trigger +## MQTT trigger Fires when a specific message is received on given MQTT topic. Optionally can match on the payload being sent over the topic. The default payload encoding is 'utf-8'. For images and other byte payloads use `encoding: ''` to disable payload decoding completely. ```yaml automation: trigger: - platform: mqtt - topic: living_room/switch/ac - # Optional - payload: "on" - encoding: "utf-8" + - platform: mqtt + topic: "living_room/switch/ac" + # Optional + payload: "on" + encoding: "utf-8" ``` The `payload` option can be combined with a `value_template` to process the message received on the given MQTT topic before matching it with the payload. @@ -105,10 +105,10 @@ The trigger in the example below will trigger only when the message received on ```yaml automation: trigger: - platform: mqtt - topic: "living_room/switch/ac" - payload: "on" - value_template: "{{ value_json.state }}" + - platform: mqtt + topic: "living_room/switch/ac" + payload: "on" + value_template: "{{ value_json.state }}" ``` {% endraw %} @@ -130,16 +130,16 @@ automation: node: "ac" value: "on" trigger: - platform: mqtt - topic: "{{ room ~ '/switch/' ~ node}}" - # Optional - payload: "{{ 'state:' ~ value }}" - encoding: "utf-8" + - platform: mqtt + topic: "{{ room ~ '/switch/' ~ node}}" + # Optional + payload: "{{ 'state:' ~ value }}" + encoding: "utf-8" ``` {% endraw %} -### Numeric state trigger +## Numeric state trigger Fires when the numeric value of an entity's state (or attribute's value if using the `attribute` property) crosses a given threshold. On state change of a specified entity, attempts to parse the state as a number and fires if the value is changing from above to below or from below to above the given threshold. @@ -148,20 +148,20 @@ Fires when the numeric value of an entity's state (or attribute's value if using ```yaml automation: trigger: - platform: numeric_state - entity_id: sensor.temperature - # Optional - value_template: "{{ state.attributes.battery }}" - # At least one of the following required - above: 17 - below: 25 - # If given, will trigger when the value of the given attribute for the given entity changes - attribute: attribute_name - # If given, will trigger when the condition has been true for X time; you can also use days and milliseconds. - for: - hours: 1 - minutes: 10 - seconds: 5 + - platform: numeric_state + entity_id: sensor.temperature + # Optional + value_template: "{{ state.attributes.battery }}" + # At least one of the following required + above: 17 + below: 25 + # If given, will trigger when the value of the given attribute for the given entity changes + attribute: attribute_name + # If given, will trigger when the condition has been true for X time; you can also use days and milliseconds. + for: + hours: 1 + minutes: 10 + seconds: 5 ``` {% endraw %} @@ -177,11 +177,11 @@ the trigger more dynamic, like: ```yaml automation: trigger: - platform: numeric_state - entity_id: sensor.temperature - # input_number entity id can be specified for above and/or below thresholds - above: input_number.temperature_threshold_high - below: input_number.temperature_threshold_low + - platform: numeric_state + entity_id: sensor.temperature + # input_number entity id can be specified for above and/or below thresholds + above: input_number.temperature_threshold_high + below: input_number.temperature_threshold_low ``` The `for:` can also be specified as `HH:MM:SS` like this: @@ -191,16 +191,16 @@ The `for:` can also be specified as `HH:MM:SS` like this: ```yaml automation: trigger: - platform: numeric_state - entity_id: sensor.temperature - # Optional - value_template: "{{ state.attributes.battery }}" - # At least one of the following required - above: 17 - below: 25 + - platform: numeric_state + entity_id: sensor.temperature + # Optional + value_template: "{{ state.attributes.battery }}" + # At least one of the following required + above: 17 + below: 25 - # If given, will trigger when condition has been for X time. - for: "01:10:05" + # If given, will trigger when condition has been for X time. + for: "01:10:05" ``` {% endraw %} @@ -212,26 +212,26 @@ You can also use templates in the `for` option. ```yaml automation: trigger: - platform: numeric_state - entity_id: - - sensor.temperature_1 - - sensor.temperature_2 - above: 80 - for: - minutes: "{{ states('input_number.high_temp_min')|int }}" - seconds: "{{ states('input_number.high_temp_sec')|int }}" + - platform: numeric_state + entity_id: + - sensor.temperature_1 + - sensor.temperature_2 + above: 80 + for: + minutes: "{{ states('input_number.high_temp_min')|int }}" + seconds: "{{ states('input_number.high_temp_sec')|int }}" action: - service: persistent_notification.create - data: - message: > - {{ trigger.to_state.name }} too high for {{ trigger.for }}! + - service: persistent_notification.create + data: + message: > + {{ trigger.to_state.name }} too high for {{ trigger.for }}! ``` {% endraw %} The `for` template(s) will be evaluated when an entity changes as specified. -### State trigger +## State trigger Fires when the state of any of given entities changes. If only `entity_id` is given, the trigger will fire for all state changes, even if only state attributes change. If only one of `from_state` or `to_state` are given, the trigger will fire on any matching state change, but not if only attributes change. @@ -245,14 +245,14 @@ The values you see in your overview will often not be the same as the actual sta ```yaml automation: trigger: - platform: state - entity_id: - - device_tracker.paulus - - device_tracker.anne_therese - # Optional - from: "not_home" - # Optional - to: "home" + - platform: state + entity_id: + - device_tracker.paulus + - device_tracker.anne_therese + # Optional + from: "not_home" + # Optional + to: "home" ``` It's possible to give a list of from_states or to_states: @@ -260,15 +260,15 @@ It's possible to give a list of from_states or to_states: ```yaml automation: trigger: - platform: state - entity_id: vacuum.test - from: - - "cleaning" - - "returning" - to: "error" + - platform: state + entity_id: vacuum.test + from: + - "cleaning" + - "returning" + to: "error" ``` -#### Holding a state +### Holding a state You can use `for` to have the state trigger only fire if the state holds for some time. @@ -278,11 +278,11 @@ state for 30 seconds: ```yaml automation: trigger: - platform: state - entity_id: light.office - # Must stay "on" for 30 seconds - to: "on" - for: "00:00:30" + - platform: state + entity_id: light.office + # Must stay "on" for 30 seconds + to: "on" + for: "00:00:30" ``` Please note, that when holding a state, changes to attributes are ignored and @@ -297,11 +297,11 @@ the time specified, but doesn't care about "playing" or "paused". ```yaml automation: trigger: - platform: state - entity_id: media_player.kitchen - # Not "off" for 30 minutes - from: "off" - for: "00:30:00" + - platform: state + entity_id: media_player.kitchen + # Not "off" for 30 minutes + from: "off" + for: "00:30:00" ``` Please note, that when using `from`, `to` and `for`, only the value of the @@ -313,10 +313,10 @@ same for `for` the time specified, regardless of the current state value. ```yaml automation: trigger: - platform: state - entity_id: media_player.kitchen - # The media player remained in its current state for 1 hour - for: "01:00:00" + - platform: state + entity_id: media_player.kitchen + # The media player remained in its current state for 1 hour + for: "01:00:00" ``` When the `attribute` option is specified, all of the above works, but only @@ -328,11 +328,11 @@ For example, this trigger only fires if the boiler was heating for 10 minutes: ```yaml automation: trigger: - platform: state - entity_id: climate.living_room - attribute: hvac_action - to: "heating" - for: "00:10:00" + - platform: state + entity_id: climate.living_room + attribute: hvac_action + to: "heating" + for: "00:10:00" ``` You can also use templates in the `for` option. @@ -342,16 +342,18 @@ You can also use templates in the `for` option. ```yaml automation: trigger: - platform: state - entity_id: device_tracker.paulus, device_tracker.anne_therese - to: "home" - for: - minutes: "{{ states('input_number.lock_min')|int }}" - seconds: "{{ states('input_number.lock_sec')|int }}" + - platform: state + entity_id: + - device_tracker.paulus + - device_tracker.anne_therese + to: "home" + for: + minutes: "{{ states('input_number.lock_min')|int }}" + seconds: "{{ states('input_number.lock_sec')|int }}" action: - service: lock.lock - target: - entity_id: lock.my_place + - service: lock.lock + target: + entity_id: lock.my_place ``` {% endraw %} @@ -364,9 +366,9 @@ Use quotes around your values for `from` and `to` to avoid the YAML parser from
    -### Sun trigger +## Sun trigger -#### Sunset / Sunrise trigger +### Sunset / Sunrise trigger Fires when the sun is setting or rising, i.e., when the sun elevation reaches 0°. @@ -383,14 +385,14 @@ Since the duration of twilight is different throughout the year, it is recommend ```yaml automation: trigger: - platform: sun - # Possible values: sunset, sunrise - event: sunset - # Optional time offset. This example will trigger 45 minutes before sunset. - offset: "-00:45:00" + - platform: sun + # Possible values: sunset, sunrise + event: sunset + # Optional time offset. This example will trigger 45 minutes before sunset. + offset: "-00:45:00" ``` -#### Sun elevation trigger +### Sun elevation trigger Sometimes you may want more granular control over an automation than simply sunset or sunrise and specify an exact elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most automations intended to run during dusk or dawn, a number between 0° and -6° is suitable; -4° is used in this example: @@ -398,17 +400,17 @@ Sometimes you may want more granular control over an automation than simply suns ```yaml automation: - alias: "Exterior Lighting on when dark outside" - trigger: - platform: numeric_state - entity_id: sun.sun - attribute: elevation - # Can be a positive or negative number - below: -4.0 - action: - service: switch.turn_on - target: - entity_id: switch.exterior_lighting + - alias: "Exterior Lighting on when dark outside" + trigger: + - platform: numeric_state + entity_id: sun.sun + attribute: elevation + # Can be a positive or negative number + below: -4.0 + action: + - service: switch.turn_on + target: + entity_id: switch.exterior_lighting ``` {% endraw %} @@ -426,7 +428,7 @@ Although the actual amount of light depends on weather, topography and land cove A very thorough explanation of this is available in the Wikipedia article about the [Twilight](https://en.wikipedia.org/wiki/Twilight). -### Tag trigger +## Tag trigger Fires when a [tag](/integrations/tag) is scanned. For example, a NFC tag is scanned using the Home Assistant Companion mobile application. @@ -434,8 +436,8 @@ scanned using the Home Assistant Companion mobile application. ```yaml automation: trigger: - platform: tag - tag_id: A7-6B-90-5F + - platform: tag + tag_id: A7-6B-90-5F ``` Additionally, you can also only trigger if a card is scanned by a specific @@ -444,9 +446,9 @@ device/scanner by setting the `device_id`: ```yaml automation: trigger: - platform: tag - tag_id: A7-6B-90-5F - device_id: 0e19cd3cf2b311ea88f469a7512c307d + - platform: tag + tag_id: A7-6B-90-5F + device_id: 0e19cd3cf2b311ea88f469a7512c307d ``` Or trigger on multiple possible devices for multiple tags: @@ -454,16 +456,16 @@ Or trigger on multiple possible devices for multiple tags: ```yaml automation: trigger: - platform: tag - tag_id: - - A7-6B-90-5F - - A7-6B-15-AC - device_id: - - 0e19cd3cf2b311ea88f469a7512c307d - - d0609cb25f4a13922bb27d8f86e4c821 + - platform: tag + tag_id: + - "A7-6B-90-5F" + - "A7-6B-15-AC" + device_id: + - 0e19cd3cf2b311ea88f469a7512c307d + - d0609cb25f4a13922bb27d8f86e4c821 ``` -### Template trigger +## Template trigger Template triggers work by evaluating a [template](/docs/configuration/templating/) when any of the recognized entities change state. The trigger will fire if the state change caused the template to render 'true' (a non-zero number or any of the strings `true`, `yes`, `on`, `enable`) when it was previously 'false' (anything else). @@ -476,11 +478,11 @@ With template triggers you can also evaluate attribute changes by using is_state ```yaml automation: trigger: - platform: template - value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}" + - platform: template + value_template: "{% if is_state('device_tracker.paulus', 'home') %}true{% endif %}" - # If given, will trigger when template remains true for X time. - for: "00:01:00" + # If given, will trigger when template remains true for X time. + for: "00:01:00" ``` {% endraw %} @@ -492,10 +494,10 @@ You can also use templates in the `for` option. ```yaml automation: trigger: - platform: template - value_template: "{{ is_state('device_tracker.paulus', 'home') }}" - for: - minutes: "{{ states('input_number.minutes')|int(0) }}" + - platform: template + value_template: "{{ is_state('device_tracker.paulus', 'home') }}" + for: + minutes: "{{ states('input_number.minutes')|int(0) }}" ``` {% endraw %} @@ -504,23 +506,23 @@ The `for` template(s) will be evaluated when the `value_template` becomes 'true' Templates that do not contain an entity will be rendered once per minute. -### Time trigger +## Time trigger The time trigger is configured to fire once a day at a specific time, or at a specific time on a specific date. There are three allowed formats: -#### Time String +### Time String A string that represents a time to fire on each day. Can be specified as `HH:MM` or `HH:MM:SS`. If the seconds are not specified, `:00` will be used. ```yaml automation: - trigger: - platform: time - # Military time format. This trigger will fire at 3:32 PM - at: "15:32:00" + - trigger: + - platform: time + # Military time format. This trigger will fire at 3:32 PM + at: "15:32:00" ``` -#### Input Datetime +### Input Datetime The Entity ID of an [Input Datetime](/integrations/input_datetime/). @@ -535,9 +537,9 @@ has_date | has_time | Description ```yaml automation: - trigger: - platform: state - entity_id: binary_sensor.motion - to: "on" + - platform: state + entity_id: binary_sensor.motion + to: "on" action: - service: climate.turn_on target: @@ -549,69 +551,68 @@ automation: datetime: > {{ (now().timestamp() + 2*60*60) | timestamp_custom('%Y-%m-%d %H:%M:%S') }} - - trigger: - platform: time - at: input_datetime.turn_off_ac + - platform: time + at: input_datetime.turn_off_ac action: - service: climate.turn_off - target: - entity_id: climate.office + - service: climate.turn_off + target: + entity_id: climate.office ``` {% endraw %} -#### Sensors of datetime device class +### Sensors of datetime device class The Entity ID of a [sensor](/integrations/sensor/) with the "timestamp" device class. ```yaml automation: - trigger: - platform: time - at: sensor.phone_next_alarm + - platform: time + at: sensor.phone_next_alarm action: - service: light.turn_on - target: - entity_id: light.bedroom + - service: light.turn_on + target: + entity_id: light.bedroom ``` -#### Multiple Times +### Multiple Times Multiple times can be provided in a list. Both formats can be intermixed. ```yaml automation: trigger: - platform: time - at: - - input_datetime.leave_for_work - - "18:30:00" + - platform: time + at: + - input_datetime.leave_for_work + - "18:30:00" ``` -### Time pattern trigger +## Time pattern trigger With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value (when using the web interface this is required, the fields cannot be left empty). ```yaml automation: trigger: - platform: time_pattern - # Matches every hour at 5 minutes past whole - minutes: 5 + - platform: time_pattern + # Matches every hour at 5 minutes past whole + minutes: 5 automation 2: trigger: - platform: time_pattern - # Trigger once per minute during the hour of 3 - hours: "3" - minutes: "*" + - platform: time_pattern + # Trigger once per minute during the hour of 3 + hours: "3" + minutes: "*" automation 3: trigger: - platform: time_pattern - # You can also match on interval. This will match every 5 minutes - minutes: "/5" + - platform: time_pattern + # You can also match on interval. This will match every 5 minutes + minutes: "/5" ```
    @@ -620,15 +621,15 @@ Do not prefix numbers with a zero - using `'00'` instead of '0' for example will
    -### Webhook trigger +## Webhook trigger Webhook trigger fires when a web request is made to the webhook endpoint: `/api/webhook/`. The webhook endpoint is created automatically when you set it as the `webhook_id` in an automation trigger. ```yaml automation: trigger: - platform: webhook - webhook_id: some_hook_id + - platform: webhook + webhook_id: "some_hook_id" ``` You can run this automation by sending an HTTP POST request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. Here is an example using the **curl** command line program, with an empty data payload: @@ -641,21 +642,21 @@ Webhook endpoints don't require authentication, other than knowing a valid webho Note that a given webhook can only be used in one automation at a time. That is, only one automation trigger can use a specific webhook ID. -### Zone trigger +## Zone trigger Zone trigger fires when an entity is entering or leaving the zone. The entity can be either a person, or a device_tracker. For zone automation to work, you need to have setup a device tracker platform that supports reporting GPS coordinates. This includes [GPS Logger](/integrations/gpslogger/), the [OwnTracks platform](/integrations/owntracks/) and the [iCloud platform](/integrations/icloud/). ```yaml automation: trigger: - platform: zone - entity_id: person.paulus - zone: zone.home - # Event is either enter or leave - event: enter # or "leave" + - platform: zone + entity_id: person.paulus + zone: zone.home + # Event is either enter or leave + event: enter # or "leave" ``` -### Geolocation trigger +## Geolocation trigger Geolocation trigger fires when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/integrations/geo_location/) platform support reporting GPS coordinates. Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source`, which is directly linked to one of the Geolocation platforms. @@ -666,18 +667,17 @@ This isn't for use with `device_tracker` entities. For those look above at the `
    - ```yaml automation: trigger: - platform: geo_location - source: nsw_rural_fire_service_feed - zone: zone.bushfire_alert_zone - # Event is either enter or leave - event: enter # or "leave" + - platform: geo_location + source: nsw_rural_fire_service_feed + zone: zone.bushfire_alert_zone + # Event is either enter or leave + event: enter # or "leave" ``` -### Device triggers +## Device triggers Device triggers encompass a set of events that are defined by an integration. This includes, for example, state changes of sensors as well as button events from remotes. [MQTT device triggers](/integrations/device_trigger.mqtt/) are set up through autodiscovery. @@ -686,7 +686,7 @@ In contrast to state triggers, device triggers are tied to a device and not nece To use a device trigger, set up an automation through the browser frontend. If you would like to use a device trigger for an automation that is not managed through the browser frontend, you can copy the YAML from the trigger widget in the frontend and paste it into your automation's trigger list. -### Multiple triggers +## Multiple triggers It is possible to specify multiple triggers for the same rule. To do so just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, [processing](#what-are-triggers) of your automation rule begins. @@ -701,7 +701,7 @@ automation: event: sunset ``` -### Multiple Entity IDs for the same Trigger +## Multiple Entity IDs for the same Trigger It is possible to specify multiple entities for the same trigger. To do so add multiple entities using a nested list. The trigger will fire and start, [processing](#what-are-triggers) your automation each time the trigger is true for each entity listed. diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown index 77a869289f0..b8bc80f455a 100644 --- a/source/_docs/automation/yaml.markdown +++ b/source/_docs/automation/yaml.markdown @@ -15,8 +15,8 @@ automation: !include automations.yaml # Labeled automation block automation kitchen: -- trigger: - platform: ... + - trigger: + - platform: ... ``` You can add as many labeled `automation` blocks as you want. @@ -53,54 +53,53 @@ automation my_lights: before: "23:00:00" action: # With a single service call, we don't need a '-' before service - though you can if you want to - service: homeassistant.turn_on - target: - entity_id: group.living_room + - service: homeassistant.turn_on + target: + entity_id: group.living_room # Turn off lights when everybody leaves the house - alias: "Rule 2 - Away Mode" trigger: - platform: state - entity_id: all - to: "not_home" - action: - service: light.turn_off - target: + - platform: state entity_id: all + to: "not_home" + action: + - service: light.turn_off + target: + entity_id: all # Notify when Paulus leaves the house in the evening - alias: "Leave Home notification" trigger: - platform: zone - event: leave - zone: zone.home - entity_id: device_tracker.paulus + - platform: zone + event: leave + zone: zone.home + entity_id: device_tracker.paulus condition: - condition: time - after: "20:00" + - condition: time + after: "20:00" action: - service: notify.notify - data: - message: "Paulus left the house" + - service: notify.notify + data: + message: "Paulus left the house" # Send a notification via Pushover with the event of a Xiaomi cube. Custom event from the Xiaomi component. - alias: "Xiaomi Cube Action" initial_state: false trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_158d000103a3de + - platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_158d000103a3de action: - service: notify.pushover - data: - title: "Cube event detected" - message: "Cube has triggered this event: {{ trigger.event }}" + - service: notify.pushover + data: + title: "Cube event detected" + message: "Cube has triggered this event: {{ trigger.event }}" ``` {% endraw %} - ## Extra options When writing automations directly in YAML, you will have access to advanced options that are not available in the user interface. @@ -114,7 +113,7 @@ automation: - alias: "Automation Name" initial_state: false trigger: - - platform: ... + - platform: ... ``` ## Migrating your YAML automations to `automations.yaml` diff --git a/source/_docs/blueprint/schema.markdown b/source/_docs/blueprint/schema.markdown index c514467a495..2f88a109dc4 100644 --- a/source/_docs/blueprint/schema.markdown +++ b/source/_docs/blueprint/schema.markdown @@ -171,10 +171,10 @@ mode: restart max_exceeded: silent trigger: - platform: state - entity_id: !input motion_entity - from: "off" - to: "on" + - platform: state + entity_id: !input motion_entity + from: "off" + to: "on" action: - service: light.turn_on diff --git a/source/_docs/blueprint/tutorial.markdown b/source/_docs/blueprint/tutorial.markdown index d26eaa99bed..97bef2a2254 100644 --- a/source/_docs/blueprint/tutorial.markdown +++ b/source/_docs/blueprint/tutorial.markdown @@ -191,17 +191,17 @@ blueprint: domain: light trigger: - platform: state - entity_id: !input motion_sensor + - platform: state + entity_id: !input motion_sensor action: - service: > - {% if trigger.to_state.state == "on" %} - light.turn_on - {% else %} - light.turn_off - {% endif %} - target: !input target_light + - service: > + {% if trigger.to_state.state == "on" %} + light.turn_on + {% else %} + light.turn_off + {% endif %} + target: !input target_light ``` {% endraw %} diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown index d1d5396947d..8a42d18bcd5 100644 --- a/source/_docs/configuration/basic.markdown +++ b/source/_docs/configuration/basic.markdown @@ -14,17 +14,17 @@ homeassistant: longitude: 117.22743 elevation: 430 unit_system: metric - time_zone: America/Los_Angeles + time_zone: "America/Los_Angeles" external_url: "https://www.example.com" internal_url: "http://homeassistant.local:8123" allowlist_external_dirs: - - /usr/var/dumping-ground - - /tmp + - "/usr/var/dumping-ground" + - "/tmp" allowlist_external_urls: - "http://images.com/image1.png" media_dirs: - media: /media - recordings: /mnt/recordings + media: "/media" + recordings: "/mnt/recordings" legacy_templates: false ``` diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown index 0f93b43382a..61e10fce226 100644 --- a/source/_docs/configuration/devices.markdown +++ b/source/_docs/configuration/devices.markdown @@ -25,7 +25,7 @@ sensor: state_topic: "home/kitchen/temperature" name: "MQTT Sensor 2" - platform: rest - resource: http://IP_ADDRESS/ENDPOINT + resource: "http://IP_ADDRESS/ENDPOINT" name: "Weather" switch: @@ -49,7 +49,7 @@ sensor kitchen: sensor weather: platform: rest - resource: http://IP_ADDRESS/ENDPOINT + resource: "http://IP_ADDRESS/ENDPOINT" name: "Weather" switch 1: @@ -65,10 +65,12 @@ Once you have several devices set up, it is time to organize them into groups. Each group consists of a name and a list of entity IDs. Entity IDs can be retrieved from the web interface by using the {% my developer_states title="States page in the Developer Tools" %}. ```yaml -# Example configuration.yaml entry showing two styles +# Example configuration.yaml entry group: living_room: - entities: light.table_lamp, switch.ac + entities: + - light.table_lamp + - switch.ac bedroom: entities: - light.bedroom diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 21b49a04cfd..9680a6b30e1 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -57,21 +57,22 @@ light: There are some rules for packages that will be merged: 1. Platform based integrations (`light`, `switch`, etc) can always be merged. -2. Components where entities are identified by a key that will represent the entity_id (`{key: config}`) need to have unique 'keys' between packages and the main configuration file. +2. Components where entities are identified by a key that will represent the entity_id (`{key: config}`) need to have unique 'keys' between packages and the main configuration file. For example if we have the following in the main configuration. You are not allowed to re-use "my_input" again for `input_boolean` in a package: - + ```yaml input_boolean: my_input: ``` + 3. Any integration that is not a platform [1], or dictionaries with Entity ID keys [2] can only be merged if its keys, except those for lists, are solely defined once.
    Components inside packages can only specify platform entries using configuration style 1, where all the platforms are grouped under the integration name.
    -### Create a packages folder +## Create a packages folder One way to organize packages is to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all packages: @@ -101,7 +102,7 @@ subsystem1_functionality1: automation: ``` -### Customizing entities with packages +## Customizing entities with packages It is possible to [customize entities](/docs/configuration/customizing-devices/) within packages. Just create your customization entries under: diff --git a/source/_docs/configuration/platform_options.markdown b/source/_docs/configuration/platform_options.markdown index af528461dc9..f632baa4128 100644 --- a/source/_docs/configuration/platform_options.markdown +++ b/source/_docs/configuration/platform_options.markdown @@ -9,7 +9,7 @@ These options are being phased out and are only available for single platform in Some integrations or platforms (those that are based on the [entity](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/entity.py) class) allows various extra options to be set. -### Entity namespace +## Entity namespace By setting an entity namespace, all entities will be prefixed with that namespace. That way `light.bathroom` can become `light.holiday_house_bathroom`. @@ -20,7 +20,7 @@ light: entity_namespace: holiday_house ``` -### Scan Interval +## Scan Interval Platforms that require polling will be polled in an interval specified by the main component. For example a light will check every 30 seconds for a changed state. It is possible to overwrite this scan interval for any platform that is being polled by specifying a `scan_interval` configuration key. In the example below we set up the `your_lights` platform but tell Home Assistant to poll the devices every 10 seconds instead of the default 30 seconds. diff --git a/source/_docs/configuration/remote.markdown b/source/_docs/configuration/remote.markdown index a829d9e2b7e..975afd8884a 100644 --- a/source/_docs/configuration/remote.markdown +++ b/source/_docs/configuration/remote.markdown @@ -15,10 +15,6 @@ Remember to follow the [securing checklist](/docs/configuration/securing/) befor
    -
    -Home Assistant no longer support remote access via IP address since release 0.77, you have to use a domain name. -
    - The most common approach is to set up port forwarding (for any port) from your router to port 8123 on the computer that is hosting Home Assistant. General instructions on how to do this can be found by searching ` port forwarding instructions`. You can use any free port on your router and forward that to port 8123. A problem with making a port accessible is that some Internet Service Providers only offer dynamic IPs. This can cause you to lose access to Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/). diff --git a/source/_docs/configuration/secrets.markdown b/source/_docs/configuration/secrets.markdown index 8dec4f4c6c5..9fac0e3d9ce 100644 --- a/source/_docs/configuration/secrets.markdown +++ b/source/_docs/configuration/secrets.markdown @@ -30,7 +30,7 @@ homeassistant: The `secrets.yaml` file contains the corresponding password assigned to the identifier. ```yaml -http_password: YOUR_PASSWORD +http_password: "YOUR_PASSWORD" ``` ## Debugging secrets diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index 5bfbc9d3233..bb7edc22e6a 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -16,14 +16,14 @@ In this lighter version we will still need what could be called the core snippet ```yaml homeassistant: # Name of the location where Home Assistant is running - name: My Home Assistant Instance + name: "My Home Assistant Instance" # Location required to calculate the time the sun rises and sets latitude: 37 longitude: -121 # 'metric' for Metric, 'imperial' for Imperial unit_system: imperial # Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones - time_zone: America/Los_Angeles + time_zone: "America/Los_Angeles" customize: !include customize.yaml ``` @@ -38,18 +38,18 @@ history: frontend: logbook: http: - api_password: ImNotTelling! + api_password: "ImNotTelling!" ifttt: - key: [nope] + key: ["nope"] wink: - access_token: [wouldn't you] - refresh_token: [like to know] + access_token: ["wouldn't you"] + refresh_token: ["like to know"] zwave: - usb_path: /dev/ttyUSB0 - config_path: /usr/local/share/python-openzwave/config + usb_path: "/dev/ttyUSB0" + config_path: "/usr/local/share/python-openzwave/config" polling_interval: 10000 mqtt: @@ -88,7 +88,7 @@ Nesting `!include`s (having an `!include` within a file that is itself `!include ```yaml light: - platform: group - name: Bedside Lights + name: "Bedside Lights" entities: - light.left_bedside_light - light.right_bedside_light @@ -104,7 +104,7 @@ where `light-groups.yaml` might look like: ```yaml - platform: group - name: Outside Lights + name: "Outside Lights" entities: - light.porch_lights - light.patio_lights @@ -114,11 +114,11 @@ with `light-switches.yaml` containing: ```yaml - platform: switch - name: Patio Lights + name: "Patio Lights" entity_id: switch.patio_lights - platform: switch - name: Floor Lamp + name: "Floor Lamp" entity_id: switch.floor_lamp_plug ``` @@ -129,8 +129,8 @@ Let's look at the `device_tracker.yaml` file from our example: ```yaml - platform: owntracks - platform: nmap_tracker - hosts: 192.168.2.0/24 home_interval: 3 + hosts: 192.168.2.0/24 track_new_devices: true interval_seconds: 40 @@ -164,15 +164,15 @@ This (large) sensor configuration gives us another example: #### STEAM FRIENDS ################################## - platform: steam_online - api_key: [not telling] + api_key: ["not telling"] accounts: - 76561198012067051 #### TIME/DATE ################################## - platform: time_date display_options: - - 'time' - - 'date' + - "time" + - "date" - platform: worldclock time_zone: Etc/UTC name: "UTC" @@ -303,7 +303,7 @@ alexa: action: service: notify.pushover data: - message: Your location has been queried via Alexa. + message: "Your location has been queried via Alexa." speech: type: plaintext text: > @@ -341,7 +341,7 @@ alexa: action: service: notify.pushover data: - message: Your location has been queried via Alexa. + message: "Your location has been queried via Alexa." speech: type: plaintext text: > @@ -376,22 +376,22 @@ speech: automation: - alias: "Automation 1" trigger: - platform: state - entity_id: device_tracker.iphone - to: "home" + - platform: state + entity_id: device_tracker.iphone + to: "home" action: - service: light.turn_on - target: - entity_id: light.entryway + - service: light.turn_on + target: + entity_id: light.entryway - alias: "Automation 2" trigger: - platform: state - entity_id: device_tracker.iphone - from: "home" + - platform: state + entity_id: device_tracker.iphone + from: "home" action: - service: light.turn_off - target: - entity_id: light.entryway + - service: light.turn_off + target: + entity_id: light.entryway ``` can be turned into: @@ -407,22 +407,22 @@ automation: !include_dir_merge_list automation/ ```yaml - alias: "Automation 1" trigger: - platform: state - entity_id: device_tracker.iphone - to: "home" + - platform: state + entity_id: device_tracker.iphone + to: "home" action: - service: light.turn_on - target: - entity_id: light.entryway + - service: light.turn_on + target: + entity_id: light.entryway - alias: "Automation 2" trigger: - platform: state - entity_id: device_tracker.iphone - from: "home" + - platform: state + entity_id: device_tracker.iphone + from: "home" action: - service: light.turn_off - target: - entity_id: light.entryway + - service: light.turn_off + target: + entity_id: light.entryway ``` It is important to note that when using `!include_dir_merge_list`, you must include a list in each file (each list item is denoted with a hyphen [-]). Each file may contain one or more entries. @@ -434,17 +434,17 @@ It is important to note that when using `!include_dir_merge_list`, you must incl ```yaml group: bedroom: - name: Bedroom + name: "Bedroom" entities: - light.bedroom_lamp - light.bedroom_overhead hallway: - name: Hallway + name: "Hallway" entities: - light.hallway - thermostat.home front_yard: - name: Front Yard + name: "Front Yard" entities: - light.front_porch - light.security @@ -465,7 +465,7 @@ group: !include_dir_merge_named group/ ```yaml bedroom: - name: Bedroom + name: "Bedroom" entities: - light.bedroom_lamp - light.bedroom_overhead @@ -480,7 +480,7 @@ hallway: ```yaml front_yard: - name: Front Yard + name: "Front Yard" entities: - light.front_porch - light.security diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 3f3852ffa3c..73b694f2075 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -29,6 +29,7 @@ The frontend has a {% my developer_templates title="template editor tool" %} to Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates: {% raw %} + ```yaml script: msg_who_is_home: @@ -42,6 +43,7 @@ script: Paulus is at {{ states('device_tracker.paulus') }}. {% endif %} ``` + {% endraw %} ### Important Template Rules @@ -87,20 +89,24 @@ Besides the normal [state object methods and properties](/topics/state_object/), The next two statements result in the same value if the state exists. The second one will result in an error if the state does not exist. {% raw %} + ```text {{ states('device_tracker.paulus') }} {{ states.device_tracker.paulus.state }} ``` + {% endraw %} Print out a list of all the sensor states: {% raw %} + ```text {% for state in states.sensor %} {{ state.entity_id }}={{ state.state }}, {% endfor %} ``` + {% endraw %} Other state examples: @@ -128,8 +134,8 @@ Other state examples: {{ as_timestamp(now()) - as_timestamp(states.binary_sensor.garage_door.last_changed) }} {{ as_local(states.sensor.time.last_changed) }} - ``` + {% endraw %} ### Attributes @@ -141,6 +147,7 @@ You can print an attribute with `state_attr` if state is defined. #### Attributes examples {% raw %} + ```text {% if states.device_tracker.paulus %} {{ state_attr('device_tracker.paulus', 'battery') }} @@ -148,11 +155,13 @@ You can print an attribute with `state_attr` if state is defined. ?? {% endif %} ``` + {% endraw %} With strings: {% raw %} + ```text {% set tracker_name = "paulus"%} @@ -162,6 +171,7 @@ With strings: ?? {% endif %} ``` + {% endraw %} ### Working with Groups @@ -173,22 +183,26 @@ The `expand` function and filter can be used to sort entities and expand groups. #### Expand examples {% raw %} + ```text {% for tracker in expand('device_tracker.paulus', 'group.child_trackers') %} {{ state_attr(tracker, 'battery') }} {%- if not loop.last %}, {% endif -%} {% endfor %} ``` + {% endraw %} The same thing can also be expressed as a filter: {% raw %} + ```text {{ expand(['device_tracker.paulus', 'group.child_trackers']) | selectattr("attributes.battery", 'defined') | join(', ', attribute="attributes.battery") }} ``` + {% endraw %} ### Time @@ -208,10 +222,12 @@ The same thing can also be expressed as a filter: - `timedelta` returns a timedelta object and accepts the same arguments as the Python `datetime.timedelta` function -- days, seconds, microseconds, milliseconds, minutes, hours, weeks. {% raw %} + ```yaml # 77 minutes before curret time. {{ now() - timedelta( hours = 1, minutes = 17 ) }} ``` + {% endraw %} - Filter `timestamp_local` converts an UNIX timestamp to its string representation as date/time in your local timezone. @@ -219,13 +235,13 @@ The same thing can also be expressed as a filter: - Filter `timestamp_custom(format_string, local_time=True)` converts an UNIX timestamp to its string representation based on a custom format, the use of a local timezone is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime).
    - + [UNIX timestamp](https://en.wikipedia.org/wiki/Unix_time) is the number of seconds that have elapsed since 00:00:00 UTC on 1 January 1970. Therefore, if used as a function's argument, it can be substituted with a numeric value (`int` or `float`).
    - + If your template is returning a timestamp that should be displayed in the frontend (e.g., as a sensor entity with `device_class: timestamp`), you have to ensure that it is the ISO 8601 format (meaning it has the "T" separator between the date and time portion). Otherwise, frontend rendering on macOS and iOS devices will show an error. The following value template would result in such an error: {% raw %} @@ -245,9 +261,11 @@ To fix it, enforce the ISO conversion via `isoformat()`:
    {% raw %} + ```yaml {{ 120 | timestamp_local }} ``` + {% endraw %} ### To/From JSON @@ -263,20 +281,24 @@ In this example, the special character '°' will be automatically escaped in ord *Template* {% raw %} + ```text {% set temp = {'temperature': 25, 'unit': '°C'} %} stringified object: {{ temp }} object|to_json: {{ temp|to_json }} ``` + {% endraw %} *Output* {% raw %} + ```text stringified object: {'temperature': 25, 'unit': '°C'} object|to_json: {"temperature": 25, "unit": "\u00b0C"} ``` + {% endraw %} Conversely, `from_json` can be used to de-serialize a JSON string back into an object to make it possible to easily extract usable data. @@ -284,18 +306,22 @@ Conversely, `from_json` can be used to de-serialize a JSON string back into an o *Template* {% raw %} + ```text {% set temp = '{"temperature": 25, "unit": "\u00b0C"}'|from_json %} The temperature is {{ temp.temperature }}{{ temp.unit }} ``` + {% endraw %} *Output* {% raw %} + ```text The temperature is 25°C ``` + {% endraw %} ### Distance @@ -311,6 +337,7 @@ If only one location is passed in, Home Assistant will measure the distance from {% raw %} ```text + Using Lat Lng coordinates: {{ distance(123.45, 123.45) }} Using State: {{ distance(states.device_tracker.paulus) }} @@ -319,6 +346,7 @@ These can also be combined in any combination: {{ distance(123.45, 123.45, 'device_tracker.paulus') }} {{ distance('device_tracker.anne_therese', 'device_tracker.paulus') }} ``` + {% endraw %} #### Closest examples @@ -326,35 +354,42 @@ These can also be combined in any combination: The closest function and filter will find the closest entity to the Home Assisant location: {% raw %} + ```text Query all entities: {{ closest(states) }} Query all entities of a specific domain: {{ closest(states.device_tracker) }} Query all entities in group.children: {{ closest('group.children') }} Query all entities in group.children: {{ closest(states.group.children) }} ``` + {% endraw %} Find entities closest to a coordinate or another entity. All previous arguments still apply for second argument. {% raw %} + ```text Closest to a coordinate: {{ closest(23.456, 23.456, 'group.children') }} Closest to an entity: {{ closest('zone.school', 'group.children') }} Closest to an entity: {{ closest(states.zone.school, 'group.children') }} ``` + {% endraw %} Since closest returns a state, we can combine it with distance too. {% raw %} + ```text {{ closest(states).name }} is {{ distance(closest(states)) }} kilometers away. ``` + {% endraw %} The last argument of the closest function has an implicit `expand`, and can take any iterable sequence of states or entity IDs, and will expand groups: {% raw %} + ```text Closest out of given entities: {{ closest(['group.children', states.device_tracker]) }} @@ -364,8 +399,12 @@ Closest to some entity: {{ closest(states.zone.school, ['group.children', states.device_tracker]) }} ``` +{% endraw %} + It will also work as a filter over an iterable group of entities or groups: +{% raw %} + ```text Closest out of given entities: {{ ['group.children', states.device_tracker] | closest }} @@ -441,9 +480,11 @@ This means that if the incoming values looks like the sample below: The template for `on` would be: {% raw %} + ```yaml '{{value_json.on}}' ``` + {% endraw %} Nested JSON in a response is supported as well: @@ -464,42 +505,49 @@ Nested JSON in a response is supported as well: Just use the "Square bracket notation" to get the value. {% raw %} + ```yaml "{{ value_json['values']['temp'] }}" ``` + {% endraw %} The following overview contains a couple of options to get the needed values: +{% raw %} + ```text # Incoming value: {"primes": [2, 3, 5, 7, 11, 13]} # Extract third prime number -{% raw %}{{ value_json.primes[2] }}{% endraw %} +{{ value_json.primes[2] }} # Format output -{% raw %}{{ "%+.1f" | value_json }}{% endraw %} +{{ "%+.1f" | value_json }} # Math -{% raw %}{{ value_json | float * 1024 }}{% endraw %} -{% raw %}{{ float(value_json) * (2**10) }}{% endraw %} -{% raw %}{{ value_json | log }}{% endraw %} -{% raw %}{{ log(1000, 10) }}{% endraw %} -{% raw %}{{ sin(pi / 2) }}{% endraw %} -{% raw %}{{ cos(tau) }}{% endraw %} -{% raw %}{{ tan(pi) }}{% endraw %} -{% raw %}{{ sqrt(e) }}{% endraw %} +{{ value_json | float * 1024 }} +{{ float(value_json) * (2**10) }} +{{ value_json | log }} +{{ log(1000, 10) }} +{{ sin(pi / 2) }} +{{ cos(tau) }} +{{ tan(pi) }} +{{ sqrt(e) }} # Timestamps -{% raw %}{{ value_json.tst | timestamp_local }}{% endraw %} -{% raw %}{{ value_json.tst | timestamp_utc }}{% endraw %} -{% raw %}{{ value_json.tst | timestamp_custom('%Y' True) }}{% endraw %} +{{ value_json.tst | timestamp_local }} +{{ value_json.tst | timestamp_utc }} +{{ value_json.tst | timestamp_custom('%Y' True) }} ``` -To evaluate a response, go to **Developer Tools** -> **Template**, create your output in "Template editor", and check the result. +{% endraw %} + +To evaluate a response, go to **{% my developer_templates title="Developer Tools -> Template" %}**, create your output in "Template editor", and check the result. {% raw %} + ```yaml {% set value_json= {"name":"Outside", @@ -511,6 +559,7 @@ To evaluate a response, go to **Developer Tools** -> **Template**, create your o {{value_json.data.hum[:-1]}} ``` + {% endraw %} ## Some more things to keep in mind @@ -524,9 +573,11 @@ If your template uses an `entity_id` that begins with a number (example: `states The default priority of operators is that the filter (`|`) has priority over everything except brackets. This means that: {% raw %} + ```yaml {{ states('sensor.temperature') | float / 10 | round(2) }} ``` + {% endraw %} Would round `10` to 2 decimal places, then divide `states('sensor.temperature')` by `10` (rounded to 2 decimal places so 10.00). This behavior is maybe not the one expected, but priority rules imply that. diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown index 34d3677582a..399853c9148 100644 --- a/source/_docs/configuration/troubleshooting.markdown +++ b/source/_docs/configuration/troubleshooting.markdown @@ -13,7 +13,7 @@ Whenever an integration or configuration option results in a warning, it will be When an integration does not show up, many different things can be the case. Before you try any of these steps, make sure to look at the `home-assistant.log` file and see if there are any errors related to your integration you are trying to set up. -If you have incorrect entries in your configuration files you can use the configuration check command (below) to assist in identifying them. +If you have incorrect entries in your configuration files you can use the configuration check command (below) to assist in identifying them. ### Problems with the configuration diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown index 1bf3d3d238c..e0e4ff9d4de 100644 --- a/source/_docs/configuration/yaml.markdown +++ b/source/_docs/configuration/yaml.markdown @@ -5,7 +5,7 @@ description: "Details about YAML to configure Home Assistant." Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations. -While more and more integrations are configured through the UI, for some, you will add code in your `configuration.yaml` file to specify its settings. +While more and more integrations are configured through the UI, for some, you will add code in your `configuration.yaml` file to specify its settings. The following example entry assumes that you would like to set up the [notify integration](/integrations/notify) with the [pushbullet platform](/integrations/pushbullet). @@ -41,8 +41,8 @@ The other properties (like `name:`) are specified using mappings. Note that the ```yaml input_select: threat: - name: Threat level -# A collection is used for options + name: "Threat level" + # A collection is used for options options: - 0 - 1 @@ -56,9 +56,9 @@ The following example shows nesting a collection of mappings in a mapping. In Ho ```yaml sensor: - platform: mqtt - state_topic: sensor/topic + state_topic: "sensor/topic" - platform: mqtt - state_topic: sensor2/topic + state_topic: "sensor2/topic" ``` ## Including values @@ -111,7 +111,7 @@ Home Assistant is case sensitive, a state of `'on'` is not the same as `'On'` or If you're having trouble, check the case that Home Assistant is reporting in the dev-state menu, under *Developer tools*. -### Booleans +### Booleans YAML treats `Y`, `true`, `Yes`, `ON` all as `true` and `n`, `FALSE`, `No`, `off` as `false`. This means that if you want to set the state of an entity to `on` you *must* quote it as `'on'` otherwise it will be translated as setting the state to true. The same applies to `off`. From 5db399e49bd8a470cdda12f900721fa314390ecd Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 3 Mar 2021 15:23:30 +0100 Subject: [PATCH 17/27] Sync codebase with docs for 2021.3 --- CODEOWNERS | 32 ++++++++++++++----- source/_integrations/aemet.markdown | 3 ++ source/_integrations/apple_tv.markdown | 1 - source/_integrations/aurora.markdown | 1 + source/_integrations/climacell.markdown | 3 +- source/_integrations/freebox.markdown | 2 +- source/_integrations/habitica.markdown | 4 +++ source/_integrations/keenetic_ndms2.markdown | 4 ++- source/_integrations/kmtronic.markdown | 6 ++-- source/_integrations/knx.markdown | 1 + source/_integrations/litejet.markdown | 2 ++ source/_integrations/litterrobot.markdown | 1 - source/_integrations/lyric.markdown | 5 +++ source/_integrations/mazda.markdown | 10 +++--- source/_integrations/mqtt.markdown | 1 - source/_integrations/mullvad.markdown | 2 ++ source/_integrations/my.markdown | 2 ++ source/_integrations/mysensors.markdown | 1 + source/_integrations/nuki.markdown | 2 ++ source/_integrations/plaato.markdown | 1 + source/_integrations/rest.markdown | 3 -- source/_integrations/rflink.markdown | 2 ++ .../rituals_perfume_genie.markdown | 2 ++ source/_integrations/smarthab.markdown | 1 - source/_integrations/smarttub.markdown | 6 ++++ source/_integrations/subaru.markdown | 4 ++- source/_integrations/tado.markdown | 1 + source/_integrations/template.markdown | 1 + source/_integrations/totalconnect.markdown | 2 +- source/_integrations/tradfri.markdown | 2 -- source/_integrations/ubus.markdown | 2 ++ source/_integrations/vesync.markdown | 2 +- source/_integrations/vlc_telnet.markdown | 1 + source/_integrations/wemo.markdown | 2 ++ source/_integrations/wilight.markdown | 1 + 35 files changed, 87 insertions(+), 29 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 07590e06753..015522cb2cc 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -13,6 +13,7 @@ source/_integrations/accuweather.markdown @bieniu source/_integrations/acmeda.markdown @atmurray source/_integrations/adguard.markdown @frenck source/_integrations/advantage_air.markdown @Bre77 +source/_integrations/aemet.markdown @noltari source/_integrations/agent_dvr.markdown @ispysoftware source/_integrations/airly.markdown @bieniu source/_integrations/airnow.markdown @asymworks @@ -72,6 +73,7 @@ source/_integrations/circuit.markdown @braam source/_integrations/cisco_ios.markdown @fbradyirl source/_integrations/cisco_mobility_express.markdown @fbradyirl source/_integrations/cisco_webex_teams.markdown @fbradyirl +source/_integrations/climacell.markdown @raman325 source/_integrations/cloud.markdown @home-assistant/cloud source/_integrations/cloudflare.markdown @ludeeus @ctalkington source/_integrations/color_extractor.markdown @GenericStudent @@ -133,6 +135,7 @@ source/_integrations/esphome.markdown @OttoWinter source/_integrations/essent.markdown @TheLastProject source/_integrations/evohome.markdown @zxdavb source/_integrations/ezviz.markdown @baqs +source/_integrations/faadelays.markdown @ntilley905 source/_integrations/fastdotcom.markdown @rohankapoorcom source/_integrations/file.markdown @fabaff source/_integrations/filter.markdown @dgomes @@ -147,7 +150,7 @@ source/_integrations/flunearyou.markdown @bachya source/_integrations/forked_daapd.markdown @uvjustin source/_integrations/fortios.markdown @kimfrellsen source/_integrations/foscam.markdown @skgsergio -source/_integrations/freebox.markdown @snoof85 @Quentame +source/_integrations/freebox.markdown @hacf-fr @Quentame source/_integrations/fronius.markdown @nielstron source/_integrations/frontend.markdown @home-assistant/frontend source/_integrations/garmin_connect.markdown @cyberjunky @@ -170,6 +173,7 @@ source/_integrations/griddy.markdown @bdraco source/_integrations/group.markdown @home-assistant/core source/_integrations/growatt_server.markdown @indykoning source/_integrations/guardian.markdown @bachya +source/_integrations/habitica.markdown @ASMfreaK @leikoilja source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey source/_integrations/hdmi_cec.markdown @newAM source/_integrations/heatmiser.markdown @andylockran @@ -199,7 +203,7 @@ source/_integrations/hydrawise.markdown @ptcryan source/_integrations/hyperion.markdown @dermotduffy source/_integrations/iammeter.markdown @lewei50 source/_integrations/iaqualink.markdown @flz -source/_integrations/icloud.markdown @Quentame +source/_integrations/icloud.markdown @Quentame @nzapponi source/_integrations/ign_sismologia.markdown @exxamalte source/_integrations/image.markdown @home-assistant/core source/_integrations/incomfort.markdown @zxdavb @@ -227,6 +231,7 @@ source/_integrations/keba.markdown @dannerph source/_integrations/keenetic_ndms2.markdown @foxel source/_integrations/kef.markdown @basnijholt source/_integrations/keyboard_remote.markdown @bendavid +source/_integrations/kmtronic.markdown @dgomes source/_integrations/knx.markdown @Julius2342 @farmio @marvin-w source/_integrations/kodi.markdown @OnFreund @cgtobi source/_integrations/konnected.markdown @heythisisnate @kit-klein @@ -236,6 +241,8 @@ source/_integrations/launch_library.markdown @ludeeus source/_integrations/lcn.markdown @alengwenus source/_integrations/life360.markdown @pnbruckner source/_integrations/linux_battery.markdown @fabaff +source/_integrations/litejet.markdown @joncar +source/_integrations/litterrobot.markdown @natekspencer source/_integrations/local_ip.markdown @issacg source/_integrations/logger.markdown @home-assistant/core source/_integrations/logi_circle.markdown @evanjd @@ -245,8 +252,10 @@ source/_integrations/luftdaten.markdown @fabaff source/_integrations/lupusec.markdown @majuss source/_integrations/lutron.markdown @JonGilmore source/_integrations/lutron_caseta.markdown @swails @bdraco +source/_integrations/lyric.markdown @timmo001 source/_integrations/mastodon.markdown @fabaff source/_integrations/matrix.markdown @tinloaf +source/_integrations/mazda.markdown @bdr99 source/_integrations/mcp23017.markdown @jardiamj source/_integrations/media_source.markdown @hunterjm source/_integrations/mediaroom.markdown @dgomes @@ -268,10 +277,12 @@ source/_integrations/monoprice.markdown @etsinko @OnFreund source/_integrations/moon.markdown @fabaff source/_integrations/motion_blinds.markdown @starkillerOG source/_integrations/mpd.markdown @fabaff -source/_integrations/mqtt.markdown @home-assistant/core @emontnemery +source/_integrations/mqtt.markdown @emontnemery source/_integrations/msteams.markdown @peroyvind +source/_integrations/mullvad.markdown @meichthys +source/_integrations/my.markdown @home-assistant/core source/_integrations/myq.markdown @bdraco -source/_integrations/mysensors.markdown @MartinHjelmare +source/_integrations/mysensors.markdown @MartinHjelmare @functionpointer source/_integrations/mystrom.markdown @fabaff source/_integrations/neato.markdown @dshokouhi @Santobert source/_integrations/nederlandse_spoorwegen.markdown @YarmoM @@ -295,7 +306,7 @@ source/_integrations/notion.markdown @bachya source/_integrations/nsw_fuel_station.markdown @nickw444 source/_integrations/nsw_rural_fire_service_feed.markdown @exxamalte source/_integrations/nuheat.markdown @bdraco -source/_integrations/nuki.markdown @pschmitt @pvizeli +source/_integrations/nuki.markdown @pschmitt @pvizeli @pree source/_integrations/numato.markdown @clssn source/_integrations/number.markdown @home-assistant/core @Shulyaka source/_integrations/nut.markdown @bdraco @@ -359,9 +370,11 @@ source/_integrations/random.markdown @fabaff source/_integrations/recollect_waste.markdown @bachya source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/repetier.markdown @MTrab +source/_integrations/rflink.markdown @javicalle source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221 source/_integrations/ring.markdown @balloob source/_integrations/risco.markdown @OnFreund +source/_integrations/rituals_perfume_genie.markdown @milanmeu source/_integrations/rmvtransport.markdown @cgtobi source/_integrations/roku.markdown @ctalkington source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @@ -401,6 +414,7 @@ source/_integrations/smappee.markdown @bsmappee source/_integrations/smart_meter_texas.markdown @grahamwetzler source/_integrations/smarthab.markdown @outadoc source/_integrations/smartthings.markdown @andrewsayre +source/_integrations/smarttub.markdown @mdz source/_integrations/smarty.markdown @z0mbieprocess source/_integrations/sms.markdown @ocalvo source/_integrations/smtp.markdown @fabaff @@ -427,6 +441,7 @@ source/_integrations/stiebel_eltron.markdown @fucm source/_integrations/stookalert.markdown @fwestenberg source/_integrations/stream.markdown @hunterjm @uvjustin source/_integrations/stt.markdown @pvizeli +source/_integrations/subaru.markdown @G-Two source/_integrations/suez_water.markdown @ooii source/_integrations/sun.markdown @Swamp-Ig source/_integrations/supla.markdown @mwegrzynek @@ -440,7 +455,7 @@ source/_integrations/syncthru.markdown @nielstron source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185 source/_integrations/synology_srm.markdown @aerialls source/_integrations/syslog.markdown @fabaff -source/_integrations/tado.markdown @michaelarnauts @bdraco +source/_integrations/tado.markdown @michaelarnauts @bdraco @noltari source/_integrations/tag.markdown @balloob @dmulcahey source/_integrations/tahoma.markdown @philklei source/_integrations/tankerkoenig.markdown @guillempages @@ -462,7 +477,6 @@ source/_integrations/toon.markdown @frenck source/_integrations/totalconnect.markdown @austinmroczek source/_integrations/tplink.markdown @rytilahti @thegardenmonkey source/_integrations/traccar.markdown @ludeeus -source/_integrations/tradfri.markdown @ggravlingen source/_integrations/trafikverket_train.markdown @endor-force source/_integrations/trafikverket_weatherstation.markdown @endor-force source/_integrations/transmission.markdown @engrbm87 @JPHutchins @@ -470,6 +484,7 @@ source/_integrations/tts.markdown @pvizeli source/_integrations/tuya.markdown @ollo69 source/_integrations/twentemilieu.markdown @frenck source/_integrations/twinkly.markdown @dr1rrb +source/_integrations/ubus.markdown @noltari source/_integrations/unifi.markdown @Kane610 source/_integrations/unifiled.markdown @florisvdk source/_integrations/upb.markdown @gwww @@ -491,7 +506,7 @@ source/_integrations/vicare.markdown @oischinger source/_integrations/vilfo.markdown @ManneW source/_integrations/vivotek.markdown @HarlemSquirrel source/_integrations/vizio.markdown @raman325 -source/_integrations/vlc_telnet.markdown @rodripf +source/_integrations/vlc_telnet.markdown @rodripf @dmcc source/_integrations/volkszaehler.markdown @fabaff source/_integrations/volumio.markdown @OnFreund source/_integrations/waqi.markdown @andrey-git @@ -499,6 +514,7 @@ source/_integrations/watson_tts.markdown @rutkai source/_integrations/weather.markdown @fabaff source/_integrations/webostv.markdown @bendavid source/_integrations/websocket_api.markdown @home-assistant/core +source/_integrations/wemo.markdown @esev source/_integrations/wiffi.markdown @mampfes source/_integrations/wilight.markdown @leofig-rj source/_integrations/withings.markdown @vangorra diff --git a/source/_integrations/aemet.markdown b/source/_integrations/aemet.markdown index 23360cc717b..205daa6ba74 100644 --- a/source/_integrations/aemet.markdown +++ b/source/_integrations/aemet.markdown @@ -10,6 +10,9 @@ ha_config_flow: true ha_codeowners: - '@noltari' ha_domain: aemet +ha_platforms: + - sensor + - weather --- The AEMET weather platform uses [AEMET OpenData](https://opendata.aemet.es/) as a source for current meteorological data for your location. AEMET stands for "Agencia Estatal de Meteorología", which is the Spanish Meteorological Agency. diff --git a/source/_integrations/apple_tv.markdown b/source/_integrations/apple_tv.markdown index aa350e296f2..a65ef27ce56 100644 --- a/source/_integrations/apple_tv.markdown +++ b/source/_integrations/apple_tv.markdown @@ -10,7 +10,6 @@ ha_release: 0.49 ha_domain: apple_tv ha_codeowners: - '@postlund' - - '@wizbangcrash' ha_config_flow: true ha_zeroconf: true ha_platforms: diff --git a/source/_integrations/aurora.markdown b/source/_integrations/aurora.markdown index 8e8a9d8dd41..5ed8efa5bac 100644 --- a/source/_integrations/aurora.markdown +++ b/source/_integrations/aurora.markdown @@ -11,6 +11,7 @@ ha_codeowners: ha_config_flow: true ha_platforms: - binary_sensor + - sensor --- The `aurora` platform uses the [NOAA Aurora Forecast](https://www.swpc.noaa.gov/products/aurora-30-minute-forecast) service to let you know if an aurora might be visible at your home location in the next 30 minutes, based off of current solar flare activity. diff --git a/source/_integrations/climacell.markdown b/source/_integrations/climacell.markdown index 3424a519c95..bc94e9842bc 100644 --- a/source/_integrations/climacell.markdown +++ b/source/_integrations/climacell.markdown @@ -6,10 +6,11 @@ ha_category: ha_release: 2021.3 ha_iot_class: Cloud Polling ha_config_flow: true -ha_quality_scale: silver ha_codeowners: - '@raman325' ha_domain: climacell +ha_platforms: + - weather --- The ClimaCell integration allows you to obtain weather information from the [ClimaCell API](https://www.climacell.co/weather-api/). diff --git a/source/_integrations/freebox.markdown b/source/_integrations/freebox.markdown index 25279632a3c..364250df6a1 100644 --- a/source/_integrations/freebox.markdown +++ b/source/_integrations/freebox.markdown @@ -9,7 +9,7 @@ ha_category: ha_release: 0.85 ha_iot_class: Local Polling ha_codeowners: - - '@snoof85' + - '@hacf-fr' - '@Quentame' ha_config_flow: true ha_domain: freebox diff --git a/source/_integrations/habitica.markdown b/source/_integrations/habitica.markdown index 5556797b08e..314cd71b805 100644 --- a/source/_integrations/habitica.markdown +++ b/source/_integrations/habitica.markdown @@ -9,6 +9,10 @@ ha_iot_class: Cloud Polling ha_domain: habitica ha_platforms: - sensor +ha_codeowners: + - '@ASMfreaK' + - '@leikoilja' +ha_config_flow: true --- This integration allows you to monitor and manage your Habitica profile. This integration exposes the [Habitica's API](https://habitica.com/apidoc/) as a Home Assistant service. It supports multiple users and allows you to automate checking out your habits and daily tasks or casting magics using Home Assistant. diff --git a/source/_integrations/keenetic_ndms2.markdown b/source/_integrations/keenetic_ndms2.markdown index 75f0fec39f4..a51c2778d34 100644 --- a/source/_integrations/keenetic_ndms2.markdown +++ b/source/_integrations/keenetic_ndms2.markdown @@ -1,5 +1,5 @@ --- -title: Keenetic NDMS2 Routers +title: Keenetic NDMS2 Router description: Instructions on how to integrate Keenetic NDMS2 Routers into Home Assistant. ha_category: - Presence Detection @@ -9,7 +9,9 @@ ha_codeowners: - '@foxel' ha_domain: keenetic_ndms2 ha_platforms: + - binary_sensor - device_tracker +ha_config_flow: true --- This platform offers presence detection by examining devices connected to a [Keenetic](https://keenetic.net/) diff --git a/source/_integrations/kmtronic.markdown b/source/_integrations/kmtronic.markdown index f89a2f4dddf..3b928aaed45 100644 --- a/source/_integrations/kmtronic.markdown +++ b/source/_integrations/kmtronic.markdown @@ -1,14 +1,16 @@ --- -title: KMTronic +title: KMtronic description: Integrate KMTronic devices ha_category: - Switch -ha_release: 2021.3 +ha_release: 2021.3 ha_codeowners: - '@dgomes' ha_iot_class: Local Push ha_domain: kmtronic ha_config_flow: true +ha_platforms: + - switch --- Integrate [KMtronic devices](https://www.kmtronic.com/) into Home Assistant. KMtronic offers a large range of IP-connected relays that can be controlled over your local area network. This integration maps each of the relays as a separate device, enabling you to control various areas of your home (e.g. using each relay to control different garden sprinkler areas, or controlling the electrical distribution of your house from a central board). diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index cd4dfa32091..8b0a700733a 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -25,6 +25,7 @@ ha_platforms: - binary_sensor - climate - cover + - fan - light - notify - sensor diff --git a/source/_integrations/litejet.markdown b/source/_integrations/litejet.markdown index 1491659bccc..440fad44003 100644 --- a/source/_integrations/litejet.markdown +++ b/source/_integrations/litejet.markdown @@ -12,6 +12,8 @@ ha_config_flow: true ha_platforms: - light - switch +ha_codeowners: + - '@joncar' --- LiteJet is a centralized lighting system that predates most home automation technology. All lights and wall switches are wired to a central panel. This central panel has a serial port interface that allows a computer to control the system via LiteJet's third party protocol. Home Assistant integrates the LiteJet 3rd party protocol and allows you to get the status and control the connected lights. diff --git a/source/_integrations/litterrobot.markdown b/source/_integrations/litterrobot.markdown index 96e769609ae..5f9bbb46e29 100644 --- a/source/_integrations/litterrobot.markdown +++ b/source/_integrations/litterrobot.markdown @@ -6,7 +6,6 @@ ha_category: ha_iot_class: Cloud Polling ha_release: 2021.3 ha_config_flow: true -ha_quality_scale: gold ha_codeowners: - '@natekspencer' ha_domain: litterrobot diff --git a/source/_integrations/lyric.markdown b/source/_integrations/lyric.markdown index c274d0328c0..04a707564c6 100644 --- a/source/_integrations/lyric.markdown +++ b/source/_integrations/lyric.markdown @@ -10,6 +10,11 @@ ha_config_flow: true ha_codeowners: - '@timmo001' ha_domain: lyric +ha_quality_scale: silver +ha_platforms: + - climate + - sensor +ha_dhcp: true --- The Honeywell Lyric component integrates the Lyric thermostat platform into Home Assistant. diff --git a/source/_integrations/mazda.markdown b/source/_integrations/mazda.markdown index df055881afd..5fad5e58f68 100644 --- a/source/_integrations/mazda.markdown +++ b/source/_integrations/mazda.markdown @@ -1,16 +1,18 @@ --- -title: "Mazda Connected Services" -description: "Instructions on how to integrate your Connected Services capable Mazda vehicle with Home Assistant." -ha_release: "2021.3" +title: Mazda Connected Services +description: Instructions on how to integrate your Connected Services capable Mazda vehicle with Home Assistant. +ha_release: '2021.3' ha_category: - Car - Sensor -ha_iot_class: "Cloud Polling" +ha_iot_class: Cloud Polling ha_quality_scale: platinum ha_config_flow: true ha_codeowners: - '@bdr99' ha_domain: mazda +ha_platforms: + - sensor --- The Mazda Connected Services integration allows you to retrieve data from a Mazda vehicle. In order to use this integration, you must first register your vehicle using the MyMazda app ([iOS](https://apps.apple.com/us/app/mymazda/id451886367)/[Android](https://play.google.com/store/apps/details?id=com.interrait.mymazda)). diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index 5178442ec7a..8457952586b 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -8,7 +8,6 @@ ha_release: pre 0.7 ha_iot_class: Local Push ha_config_flow: true ha_codeowners: - - '@home-assistant/core' - '@emontnemery' ha_domain: mqtt ha_platforms: diff --git a/source/_integrations/mullvad.markdown b/source/_integrations/mullvad.markdown index 20c7698d6d4..b6d2bf1ab86 100644 --- a/source/_integrations/mullvad.markdown +++ b/source/_integrations/mullvad.markdown @@ -10,6 +10,8 @@ ha_domain: mullvad ha_config_flow: true ha_codeowners: - '@meichthys' +ha_platforms: + - binary_sensor --- The Mullvad VPN integration pulls [Mullvad](https://mullvad.net/) VPN status information into Home Assistant. diff --git a/source/_integrations/my.markdown b/source/_integrations/my.markdown index 32cbe8ac529..b9be6492f03 100644 --- a/source/_integrations/my.markdown +++ b/source/_integrations/my.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: 2021.3 ha_domain: my ha_iot_class: +ha_codeowners: + - '@home-assistant/core' --- This integration handles redirects from the [My Home Assistant](https://my.home-assistant.io) service. diff --git a/source/_integrations/mysensors.markdown b/source/_integrations/mysensors.markdown index 7509ca946f0..593bc3a79ff 100644 --- a/source/_integrations/mysensors.markdown +++ b/source/_integrations/mysensors.markdown @@ -18,6 +18,7 @@ ha_platforms: - notify - sensor - switch +ha_config_flow: true --- The [MySensors](https://www.mysensors.org) project combines devices like Arduino, ESP8266, Raspberry Pi, NRF24L01+ and RFM69 to build affordable sensor networks. This integration will automatically add all available devices to Home Assistant, after [presentation](#presentation) is done. That is, you do not need to add anything to your configuration for the devices for them to be added. Go to the **states** section of the developer tools to find the devices that have been identified. diff --git a/source/_integrations/nuki.markdown b/source/_integrations/nuki.markdown index 08faf670e8a..067ce8e359a 100644 --- a/source/_integrations/nuki.markdown +++ b/source/_integrations/nuki.markdown @@ -12,6 +12,8 @@ ha_codeowners: ha_domain: nuki ha_platforms: - lock +ha_config_flow: true +ha_dhcp: true --- The `nuki` platform allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via either a [software bridge](https://play.google.com/store/apps/details?id=io.nuki.bridge) or a [physical bridge](https://nuki.io/en/bridge/). diff --git a/source/_integrations/plaato.markdown b/source/_integrations/plaato.markdown index ea4e29c410e..8dcdee42423 100644 --- a/source/_integrations/plaato.markdown +++ b/source/_integrations/plaato.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@JohNan' ha_domain: plaato ha_platforms: + - binary_sensor - sensor --- diff --git a/source/_integrations/rest.markdown b/source/_integrations/rest.markdown index 94913b6be04..0e399f5d6e4 100644 --- a/source/_integrations/rest.markdown +++ b/source/_integrations/rest.markdown @@ -6,9 +6,6 @@ ha_category: - Binary Sensor ha_release: 0.7.4 ha_iot_class: Local Polling -ha_quality_scale: internal -ha_codeowners: - - '@home-assistant/core' ha_domain: rest ha_platforms: - binary_sensor diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 1d5c9ac99a7..dca87302c03 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -12,6 +12,8 @@ ha_platforms: - light - sensor - switch +ha_codeowners: + - '@javicalle' --- The `rflink` integration supports devices that use [RFLink gateway firmware](http://www.rflink.nl/blog2/download), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink Gateway is an Arduino Mega firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver). diff --git a/source/_integrations/rituals_perfume_genie.markdown b/source/_integrations/rituals_perfume_genie.markdown index 83eda80ce3a..3498cb20903 100644 --- a/source/_integrations/rituals_perfume_genie.markdown +++ b/source/_integrations/rituals_perfume_genie.markdown @@ -9,6 +9,8 @@ ha_category: ha_codeowners: - '@milanmeu' ha_domain: rituals_perfume_genie +ha_platforms: + - switch --- The Rituals Perfume Genie integration allows you to control and monitor your Rituals perfume diffusers connected to your Rituals account. The integration is compatible with the first and second `2.0` versions. diff --git a/source/_integrations/smarthab.markdown b/source/_integrations/smarthab.markdown index 18ab895bfba..a915b374f31 100644 --- a/source/_integrations/smarthab.markdown +++ b/source/_integrations/smarthab.markdown @@ -29,4 +29,3 @@ Assistant. access to your home. You can then configure the integration using this account's credentials. This is also more secure, as this user should be less priviledged. - diff --git a/source/_integrations/smarttub.markdown b/source/_integrations/smarttub.markdown index 685b833b010..0d2eae3e57e 100644 --- a/source/_integrations/smarttub.markdown +++ b/source/_integrations/smarttub.markdown @@ -14,6 +14,12 @@ ha_quality_scale: platinum ha_codeowners: - '@mdz' ha_domain: smarttub +ha_platforms: + - binary_sensor + - climate + - light + - sensor + - switch --- The `smarttub` integration allows you to view and control hot tubs which use the [SmartTub](https://www.jacuzzi.com/en-us/hot-tubs/owners/smarttub-system) system, in Home Assistant. diff --git a/source/_integrations/subaru.markdown b/source/_integrations/subaru.markdown index 12c22813969..d7ca78bbc09 100644 --- a/source/_integrations/subaru.markdown +++ b/source/_integrations/subaru.markdown @@ -1,5 +1,5 @@ --- -title: Subaru +title: Subaru description: Instructions on how to setup your Subaru account with Home Assistant. ha_category: - Car @@ -10,6 +10,8 @@ ha_config_flow: true ha_codeowners: - '@G-Two' ha_domain: subaru +ha_platforms: + - sensor --- The Subaru integration retrieves information provided by Subaru connected vehicle services. Before using this integration, you must first register and have login credentials to [MySubaru](https://www.mysubaru.com). diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown index a66130aea6d..6018b729ee4 100644 --- a/source/_integrations/tado.markdown +++ b/source/_integrations/tado.markdown @@ -13,6 +13,7 @@ ha_iot_class: Cloud Polling ha_codeowners: - '@michaelarnauts' - '@bdraco' + - '@noltari' ha_domain: tado ha_config_flow: true ha_homekit: true diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index f3886fd9574..62337f62370 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -20,6 +20,7 @@ ha_platforms: - sensor - switch - vacuum + - weather --- The `template` platform supports sensors which get their values from other entities. diff --git a/source/_integrations/totalconnect.markdown b/source/_integrations/totalconnect.markdown index 216ad3399fc..c5396d8b9c3 100644 --- a/source/_integrations/totalconnect.markdown +++ b/source/_integrations/totalconnect.markdown @@ -1,5 +1,5 @@ --- -title: Honeywell Total Connect Alarm +title: Total Connect description: Instructions on how to integrate TotalConnect alarms into Home Assistant. ha_category: - Alarm diff --git a/source/_integrations/tradfri.markdown b/source/_integrations/tradfri.markdown index 5968875ec29..70784b52a89 100644 --- a/source/_integrations/tradfri.markdown +++ b/source/_integrations/tradfri.markdown @@ -10,8 +10,6 @@ ha_category: - Light - Sensor - Switch -ha_codeowners: - - '@ggravlingen' ha_domain: tradfri ha_homekit: true ha_platforms: diff --git a/source/_integrations/ubus.markdown b/source/_integrations/ubus.markdown index 9972649c944..98d47915cb5 100644 --- a/source/_integrations/ubus.markdown +++ b/source/_integrations/ubus.markdown @@ -8,6 +8,8 @@ ha_iot_class: Local Polling ha_domain: ubus ha_platforms: - device_tracker +ha_codeowners: + - '@noltari' --- This is a presence detection scanner for [OpenWrt](https://openwrt.org/) using [ubus](https://wiki.openwrt.org/doc/techref/ubus). It scans for changes in `hostapd.*`, which will detect and report changes in devices connected to the access point on the router. diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown index b2552ab5153..b44b1ad43a0 100644 --- a/source/_integrations/vesync.markdown +++ b/source/_integrations/vesync.markdown @@ -15,8 +15,8 @@ ha_codeowners: ha_domain: vesync ha_platforms: - fan - - switch - light + - switch --- The `vesync` integration enables you to control smart switches and outlets connected to the VeSync App. diff --git a/source/_integrations/vlc_telnet.markdown b/source/_integrations/vlc_telnet.markdown index afbac7c32b8..c7844a4f37f 100644 --- a/source/_integrations/vlc_telnet.markdown +++ b/source/_integrations/vlc_telnet.markdown @@ -7,6 +7,7 @@ ha_release: 0.95 ha_iot_class: Local Polling ha_codeowners: - '@rodripf' + - '@dmcc' ha_domain: vlc_telnet --- diff --git a/source/_integrations/wemo.markdown b/source/_integrations/wemo.markdown index b270d6e8c93..62c398da3de 100644 --- a/source/_integrations/wemo.markdown +++ b/source/_integrations/wemo.markdown @@ -18,6 +18,8 @@ ha_platforms: - fan - light - switch +ha_codeowners: + - '@esev' --- The `wemo` integration is the main integration to integrate various [Belkin WeMo](https://www.belkin.com/us/c/wemo/) devices with Home Assistant. diff --git a/source/_integrations/wilight.markdown b/source/_integrations/wilight.markdown index 489cf160c6e..51713dde78a 100644 --- a/source/_integrations/wilight.markdown +++ b/source/_integrations/wilight.markdown @@ -14,6 +14,7 @@ ha_domain: wilight ha_quality_scale: silver ha_ssdp: true ha_platforms: + - cover - fan - light --- From 9bb5fd5177e26e832bf2e5f9373bd344c30b498f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 3 Mar 2021 15:26:39 +0100 Subject: [PATCH 18/27] Fix RC build --- source/_posts/2021-02-03-release-20213.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2021-02-03-release-20213.markdown b/source/_posts/2021-02-03-release-20213.markdown index 1c2a63b7a94..ce775d21a73 100644 --- a/source/_posts/2021-02-03-release-20213.markdown +++ b/source/_posts/2021-02-03-release-20213.markdown @@ -608,7 +608,7 @@ They are now automatically discovered, if not, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find Xiaomi Miio. -Or click: {% my config_flow_start title="Add Integration" domain="xiaomi_miio" badge %} +Or click: {% my config_flow_start domain="xiaomi_miio" badge %} Select the option “Connect to a Xiaomi Miio Device” and click submit, follow the setup instructions. From 1f55d4fc9f5a7254665bfb947bc2b9788c56dc09 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 3 Mar 2021 19:37:27 +0100 Subject: [PATCH 19/27] Update blog post for release 2021.3 --- .../_posts/2021-02-03-release-20213.markdown | 530 ++++++++++++------ .../images/blog/2021-03/automation-editor.png | Bin 0 -> 43674 bytes .../blog/2021-03/developer-services.png | Bin 0 -> 56987 bytes source/images/blog/2021-03/mydemo.gif | Bin 0 -> 1047840 bytes source/images/blog/2021-03/social.png | Bin 0 -> 253764 bytes .../images/blog/2021-03/update-snapshot.png | Bin 0 -> 19028 bytes 6 files changed, 353 insertions(+), 177 deletions(-) create mode 100644 source/images/blog/2021-03/automation-editor.png create mode 100644 source/images/blog/2021-03/developer-services.png create mode 100644 source/images/blog/2021-03/mydemo.gif create mode 100644 source/images/blog/2021-03/social.png create mode 100644 source/images/blog/2021-03/update-snapshot.png diff --git a/source/_posts/2021-02-03-release-20213.markdown b/source/_posts/2021-02-03-release-20213.markdown index ce775d21a73..b60557026cd 100644 --- a/source/_posts/2021-02-03-release-20213.markdown +++ b/source/_posts/2021-02-03-release-20213.markdown @@ -2,7 +2,7 @@ layout: post title: "2021.3: Beta release notes" description: "Beta release notes for the 2021.3 release." -date: 2021-02-24 00:00:00 +date: 2021-03-03 00:00:00 date_formatted: "March 3, 2021" author: Franck Nijhof author_twitter: frenck @@ -12,37 +12,29 @@ og_image: /images/blog/2021-03/social.png feedback: true --- - -These are the beta release notes for Home Assistant Core 2021.3 (and is thus a -work in progress). +Home Assistant Core 2021.3! And my oh My Home Assistant! -If you encounter any issues with the beta release, please report them on GitHub: +I'm super excited for this release! 13 Brand new integrations! Z-Wave JS +is moving forward with an almost insane development speed; thank you all for +jumping into it as well! 🎉 -- Issues with integrations, automations and such (Core related):
    - -- Issues with the frontend/Lovelace:
    - -- Issues with the Supervisor:
    - -- Issues with the documentation:
    - +For me, this release is about two things. My Home Assistant and some super slick +new UI features for everything related to service calls. What it is; is +explained down below, but both are just a leap forward in: making things easier. -Please be sure to include the beta version you are running in the issue -description (not in the title), so we can classify your issue correctly. +My oh my, enjoy this release! -Issues introduced in the beta are processed with priority. +../Frenck - [My Home Assistant](#my-home-assistant) -- [New UI for doing service calls](#new-ui-for-doing-service-calls) -- [Fan integration](#fan-integration) +- [New UI for service calls](#new-ui-for-service-calls) +- [Fan speeds: 100%](#fan-speeds-100) - [Suggested areas](#suggested-areas) - [Z-Wave JS update](#z-wave-js-update) - - [All Z-Wave JS changes](#all-z-wave-js-changes) - [MQTT trigger templating](#mqtt-trigger-templating) -- [Help us improving the documentation](#help-us-improving-the-documentation) +- [Oversettelser i Supervisor panelet](#oversettelser-i-supervisor-panelet) - [Other noteworthy changes](#other-noteworthy-changes) - [New Integrations](#new-integrations) - [New Platforms](#new-platforms) @@ -54,218 +46,224 @@ Issues introduced in the beta are processed with priority. ## My Home Assistant - - -Today we present you My Home Assistant. +Today we present you: To be more helpful, we often want to link you to a specific page in your Home Assistant instance. However, each Home Assistant instance is hosted at a different URL. Yours might be `http://homeassistant.local:8123`, or something completely different. -My Home Assistant allows the documentation, forums or any other website, to -link you to specific pages in your Home Assistant instance, without knowing -the URL of your instance. +My Home Assistant allows the documentation, forums, chat, weblogs, or any +other website, to link you to specific pages in your Home Assistant instance, +without knowing the URL of your instance. -My Home Assistant allows you to store the URL of your instance so that websites -can link to your instance directly. +The beauty of this? All the data is stored locally in your browser +and My Home Assistant only redirects you to pages that provide you with +information about your instance or help you start an action. +Following a link from My Home Assistant will never make any changes +to your instance. - - -All the data is stored locally in your browser. At no point will any data leave -your network. Also, My Home Assistant only redirects you to pages that provide -you with information about your instance or help you start an action. - -Following a link from My Home Assistant will never make any changes to your -instance and only a predefined, safe set, of URLs are allowed. - -Long story short! We can do a lot of helpful things with this, for example the +Long story short! We can do a lot of helpful things with this, for example, the following buttons will bring your places on your instance: {% my integrations badge %} {% my info badge %} {% my supervisor badge %} {% my automations badge %} But we can make buttons or links to a lot of screen, and even help you start -a configuration for an integration, import a Blueprint, link to an add-on page, -and a lot more. +a configuration for adding an integration, import a Blueprint, link to an +add-on page, and a lot more! + +

    +Screen recording showing how My Home Assistant works +Setting up a new integration on your instance, from the documentation using My Home Assistant. +

    Additionally, we have added a link/badge generator, so you can create your own links, for e.g., adding to a Blueprint on the Blueprint Exchange. -## New UI for doing service calls +Lastly, support for My Home Assistant with our apps is expected to be available +soon! Android should be available via an update today and iOS will land soon. - +## New UI for service calls -This release adds a new UI for doing service calls. These can be found -in multiple places, that all have adjusted with a shiny new UI; +This release adds a new user interface for doing service calls! -- The {% my developer_services title="services" %} tab in the {% my developer_services title="Developer Tools" %}. -- Doing service calls in the {% my automations title="automation" %} UI editor. -- Doing service calls in the {% my scripts title="script" %} UI editor. - - The UI may look familiar, as it uses the same UI parts as used by the recently -introduced Blueprints. +introduced Blueprints. This new UI can be found in multiple places, that all +have adjusted with a shiny new UI; + +- The {% my developer_services %} tab in the {% my developer_services title="Developer Tools" %}. +- Doing service calls in the {% my automations title="automation" %} UI editor. +- Doing service calls in the {% my scripts title="script" %} UI editor. +- In Lovelace cards that support calling actions. Not all service calls will show this slick new UI yet, as the integrations -service descriptions need to be adjusted to with this. - -## Fan integration - - -Got a big overhaul! Now works with speed percentages instead of the previous -low, mid, high, off. +service descriptions need to be adjusted to with this. But, all common ones +have been migrated already. Like doing YAML? Well, the good old YAML mode is +available as well! ## Suggested areas - +Areas are becoming more and more useful in Home Assistant, and this release +is helping out with putting them to use a bit! -Integrations can now suggest areas to devices. For example, the Hue integration -can now suggest an area based on the Hue group it is in. +Recently, it became possible to not only assign devices to areas, but entities +as well. And now; Integrations can now suggest areas! -- Implement suggested_area in the device registry ([@bdraco] - [#45940]) -- Add suggested area support to nuheat ([@bdraco] - [#46801]) ([nuheat docs]) -- Implement suggested area for netatmo ([@bdraco] - [#46802]) ([netatmo docs]) -- Add suggested area to nexia ([@bdraco] - [#46776]) ([nexia docs]) -- Implement suggested area in lutron_caseta ([@bdraco] - [#45941]) ([lutron_caseta docs]) -- Add suggested area to hunterdouglas_powerview ([@bdraco] - [#46774]) ([hunterdouglas_powerview docs]) -- Implement suggested areas in bond ([@bdraco] - [#45942]) ([bond docs]) -- Implement suggested area in roku ([@ctalkington] - [#46819]) ([roku docs]) -- Add suggested area support to Sonos ([@bdraco] - [#46794]) ([sonos docs]) -- Add suggested area to tado ([@bdraco] - [#46932]) ([tado docs]) -- Add suggested area support to isy994 ([@bdraco] - [#46927]) ([isy994 docs]) +This means, if an integration knows about an area/room/location place it is in, +it can suggest an area if the device isn't in one yet. For example, the Hue +integration can now suggest an area based on the Hue group it is in. +The following integration will now already suggest areas as of this release: + +- [Bond][bond docs] +- [Hue][hue docs] +- [Hunter Douglas PowerView][hunterdouglas_powerview docs] +- [Lutron Caséta][lutron docs] +- [Netatmo][netatmo docs] +- [Nexia][nexia docs] +- [NuHeat][nuheat docs] +- [Roku][roku docs] +- [Sonos][sonos docs] +- [Tado][tado docs] +- [Universal Devices ISY994][isy994 docs] + +## Fan speeds: 100% + +Got an overhaul! Fans now work with speed percentages instead of the previous +"low", "mid", "high", "off". This makes Home Assistant more interoperable with +more fan brands and third-party assistants, like HomeKit. + +Don't worry, everything has been implemented with backward compatibility. + +

    +Screenshot of automation editor, showing the % fan speeds! +Screenshot of automation editor, showing the % fan speeds! +

    + +Did you notice in the above screenshot, the automation editor is now wider? +The layout has been adjusted to give you more screen real estate when creating +automations. ## Z-Wave JS update - +We've introduced a protocol schema version in the Z-Wave JS server to allow +older clients to connect and talk to a newer server. This prevents compatibility +issues for the future! -Also this release the Z-Wave JS team has been very busy. Several new features have been added and many bugs squashed. Below you can read a summary. +Home Assistant Core 2021.3.0 will require Z-Wave JS server version 1.10. +If you're using the official Home Assistant add-on, the integration will +automatically update the add-on if an older add-on and server version is +encountered. Magic! If you're not using the Home Assistant add-on to run the +server you will need to update the server before updating Home Assistant Core. -- We've introduced a protocol schema version in the Z-Wave JS server to allow older clients to connect and talk to a newer server. -- Home Assistant core 2021.3.0 will require Z-Wave JS server version 1.10. - If you're not using the Home Assistant add-on to run the server you will need to update the server before updating Home Assistant. - If you're using the Home Assistant add-on and selected this when setting up Z-Wave JS in Home Assistant, the integration will automatically update the add-on if an older add-on and server version is encountered. -- You're now able to automate and change the configuration settings of your devices with the [zwave_js.set_config_parameter](/integrations/zwave_js/#service-zwave_jsset_config_parameter) service. -- You can now configure an automation to use the [zwave_js.refresh_value](/integrations/zwave_js/#service-zwave_jsrefresh_value) service to update a device that doesn't automatically refresh itself. -- Garage doors (barrier) and similar covers can now be controlled in the integration. -- Some heating valves and similar devices that can be set to multiple different values will now show up as `number` entities. +You can now automate and change the configuration settings of your devices with +the [`zwave_js.set_config_parameter`](/integrations/zwave_js/#service-zwave_jsset_config_parameter) +service and create automations using the new [`zwave_js.refresh_value`](/integrations/zwave_js/#service-zwave_jsrefresh_value) +service, to update a device that doesn't automatically refresh itself. -### All Z-Wave JS changes +But there is more! -- Enhance platform discovery for zwave_js ([@marcelveldt] - [#46355]) ([zwave_js docs]) -- Discover HRT4-ZW / SRT321 SetPoint in zwave_js ([@gsemet] - [#46625]) ([zwave_js docs]) -- Add zwave_js thermostat fan mode and fan state support ([@raman325] - [#46793]) ([zwave_js docs]) -- add name and target filter to zwave_js lock services.yaml ([@raman325] - [#46914]) ([zwave_js docs]) -- Test zwave_js GE 12730 fan controller device-specific discovery ([@kpine] - [#46840]) ([zwave_js docs]) -- Add zwave_js/get_log_config and zwave_js/update_log_config WS API commands ([@raman325] - [#46601]) ([zwave_js docs]) -- Add zwave_js set_config_parameter WS API command ([@raman325] - [#46910]) ([zwave_js docs]) -- Add zwave_js constant for add-on slug ([@MartinHjelmare] - [#46950]) ([zwave_js docs]) -- Return states list from zwave_js get_config_parameters websocket if available ([@cgarwood] - [#46954]) ([zwave_js docs]) -- Catch more zwave_js errors ([@MartinHjelmare] - [#46957]) ([zwave_js docs]) -- Add zwave_js.set_config_parameter service ([@raman325] - [#46673]) ([zwave_js docs]) -- Improve zwave_js config flow ([@MartinHjelmare] - [#46906]) ([zwave_js docs]) -- Add zwave_js.refresh_value service ([@raman325] - [#46944]) ([zwave_js docs]) -- deep copy zwave_js state in test fixtures so tests are more isolated ([@raman325] - [#46976]) ([zwave_js docs]) -- Extend zwave_js discovery scheme for lights ([@marcelveldt] - [#46907]) ([zwave_js docs]) -- Add barrier covers to zwave_js integration ([@kpine] - [#46379]) ([zwave_js docs]) +- Garage doors (barrier) and similar covers can now be controlled. +- Some heating valves and similar devices that can be set to multiple different + values will now show up as `number` entities. -## MQTT trigger templating +## Flexible & variable automation triggers -Added support for templating MQTT triggers. This allows for, e.g., making -blueprints for MQTT Blueprints (e.g., use a MQTT topic or payload as an input). +We now support the use of variables and (limited) templates in automation +triggers! This can be really useful, for example, when making Blueprints for +MQTT based automations! - +{% raw %} -- Support templating MQTT triggers ([@emontnemery] - [#45614]) ([automation docs]) ([mqtt docs]) +```yaml +automation: + trigger_variables: + room: "living_room" + node: "ac" + value: "on" + trigger: + - platform: mqtt + topic: "{{ room ~ '/switch/' ~ node}}" + payload: "{{ 'state:' ~ value }}" +``` -## Help us improving the documentation +{% endraw %} - +## Oversettelser i Supervisor panelet -We have recently added a feedback menu to the bottom of each page in our -documentation. Help us out! +Unless you are in the nordics, that title does not mean much, it's Norwegian and +translates to "Translations in the Supervisor panel". Yes! We have now added +translations in the Supervisor panel. 🎉 -Go to the page of one of your favorite integrations, and see what can be -improved. Maybe you can suggest an edit, or add feedback to the page. +If you want to help translate that into your native language, +[join the frontend team on Localize](https://developers.home-assistant.io/docs/translations). -This way we can all contribute in improving our documentation! +But we did not stop there! Now add-ons can provide +[translation files](https://developers.home-assistant.io/docs/add-ons/configuration#add-on-translations) +for configuration options and network descriptions that +are shown in the frontend. + +Not enough? You want more? Okay then! + +- The communication between the frontend and the backend now relies on + WebSockets, which allows the Supervisor to notify the frontend about changes. +- For add-on authors, you can now use YAML instead of JSON for your add-ons + configuration files. +- New update dialog that will ask you to take a snapshot before you upgrade + core/add-ons. +- Better hardware support to cover more devices. +- Passwords and secrets in add-on configurations are checked against known + breaches with + +

    +Screenshot of the new update dialog that asks for creating a snapshot +Screenshot of the new update dialog that asks for creating a snapshot. +

    ## Other noteworthy changes - +There is much more juice in this release; here are some of the other +noteworthy changes this release: -- Support blocking trusted network from new ip ([@elupus] - [#44630]) ([auth docs]) ([http docs]) ([websocket_api docs]) -- Add vicare heat pump sensors ([@crazyfx1] - [#41413]) ([vicare docs]) -- Add transitiontime to hue scene service ([@Nixon506E] - [#45785]) ([hue docs]) -- Add support for Shelly battery operated devices ([@thecode] - [#45406]) ([shelly docs]) -- Add new features to Apple TV media player ([@postlund] - [#45828]) ([apple_tv docs]) -- Add select selector for blueprints ([@EPMatt] - [#45803]) -- Support templates in event triggers ([@emontnemery] - [#46207]) ([homeassistant docs]) -- Enhance MQTT cover platform ([@thecode] - [#46059]) ([mqtt docs]) (breaking-change) -- Add hive hub 360 sensors ([@KJonline] - [#46320]) ([hive docs]) -- Add additional supported feature support to universal media player ([@raman325] - [#44711]) ([universal docs]) -- Allow users to set device class for universal media player ([@raman325] - [#46550]) ([universal docs]) -- Add Home Assistant color ([@frenck] - [#46751]) ([light docs]) -- Add rtsp transport options to generic camera ([@uvjustin] - [#46623]) ([generic docs]) -- Add support for "alias" in script steps device, device_condition, and conditions ([@emontnemery] - [#46647]) -- Add support for disabling config entries ([@emontnemery] - [#46779]) ([config docs]) - -- Show flows in progress when picking a handler (#8368) @bramkragten -- Fix excessive rerendering of history charts (#8340) @larena1 -- Add clipboard button (#8411) @KTibow -- Add additional weblink attributes (#8295) @cdce8p -- Allow to disable config entry (#8442) @bramkragten -- Add add-on selector/picker (#8422) @ludeeus -- Support binary sensor batteries (#8367) @Noltari -- Migrate to codemirror 6 (#8382) @bramkragten +- Shelly now supports battery-operated devices, thanks to [@thecode]! +- You can now use the color `homeassistant` as a `color_name` in your light + service calls, just because we can 😎 +- [@emontnemery], added support for using `alias` to virtually any step in + scripts/automations. This is really helpful when debugging and documents + your sequences as well, as it annotates each step. +- [@emontnemery] didn't stop there, he also added support for enabling/disabling + integration configuration entries! So you can, e.g., temporarily disable a + whole integration. +- Thanks to [@Nixon506E], you can now set a transition time when activate Hue + scenes. +- In the {% my developer_states %} tab of the Developer Tools, there is now + a small copy to clipboard button with each entity. Thanks, [@KTibow]! +- [@postlund] added support for repeat, shuffle and volume stepping to the + media player integration of the Apple TV integration. +- [@larena1] reduced the amount of rendering history charts cause, so that + will speed things up! Thanks! +- We now have a select selector! Great for adding dropdown choices + to Blueprints, thanks [@EPMatt]! +- [@raman325] extended the Universal Media Player with a lot of new capabilities. +- When adding a new integration, the UI will now show discovered devices for + that integration as well! Thanks, [@bramkragten]! +[@larena1]: https://github.com/larena1 ## New Integrations @@ -740,6 +738,33 @@ turn off sooner may use an automation with `timer` to set `FAN_OFF` sooner. {% enddetails %} +{% details "credstash and keyring" %} + +The methods of storing secrets in `credstash` and `keyring` have been removed. +They have been deprecated and a warning has been printed since +Home Assistant Core 2020.12. + +([@balloob] - [#47033]) + +{% enddetails %} + +{% details "Hue" %} + +Hue groups are now disabled by default because they do not have a unique ID. +Existing configurations that have previously saved Hue options are not affected. + +To enable Hue groups: + +- Browse to your Home Assistant instance +- In the sidebar click on {% my configuration %} +- From the configuration menu select {% my integrations %} +- Find the entry for the Hue Bridge +- Select Options and change the setting + +([@bdraco] - [#47067]) ([hue docs]) + +{% enddetails %} + ## Farewell to the following The following integrations are no longer available as of this release: @@ -756,7 +781,6 @@ The following integrations are no longer available as of this release: function, which is no longer allowed. ([@thecode] - [#46484]) - ## All changes {% details "Click to see all changes!" %} @@ -1352,6 +1376,72 @@ The following integrations are no longer available as of this release: - Add missing tilt icon to Shelly tilt sensor ([@chemelli74] - [#46993]) ([shelly docs]) - Update frontend to 20210224.0 ([@bramkragten] - [#47013]) ([frontend docs]) - Change Z-Wave JS discovery logic to adopt changes to DeviceClass ([@marcelveldt] - [#46983]) ([zwave_js docs]) (breaking-change) +- Ensure doorbird events are re-registered when changing options ([@bdraco] - [#46860]) ([doorbird docs]) (beta fix) +- Use dispatch instead of eventbus for supervisor events ([@ludeeus] - [#46986]) ([hassio docs]) (beta fix) +- Bump python-garminconnect to 0.1.19 to fix broken api ([@cyberjunky] - [#47020]) ([garmin_connect docs]) (beta fix) +- Fix missing Shelly external input ([@chemelli74] - [#47028]) ([shelly docs]) (beta fix) +- Fix zwave_js unique ID migration logic ([@raman325] - [#47031]) ([zwave_js docs]) (beta fix) +- Remove deprecated credstash + keyring ([@balloob] - [#47033]) (breaking-change) (beta fix) +- Updated frontend to 20210225.0 ([@bramkragten] - [#47059]) ([frontend docs]) (beta fix) +- Revert CORS changes for my home assistant ([@bramkragten] - [#47064]) ([api docs]) ([http docs]) (beta fix) +- Ensure hue options show the defaults when the config options have not yet been saved ([@bdraco] - [#47067]) ([hue docs]) (breaking-change) (beta fix) +- catch ValueError when unique ID update fails because its taken and remove the duplicate entity ([@raman325] - [#47072]) ([zwave_js docs]) (beta fix) +- Bump Z-Wave JS Server Python to 0.20.0 ([@balloob] - [#47076]) ([zwave_js docs]) (beta fix) +- Add support for v6 features to philips js integration ([@elupus] - [#46422]) ([philips_js docs]) (beta fix) +- Add support for Shelly SHBTN-2 device triggers ([@CurrentThread] - [#46644]) ([shelly docs]) (beta fix) +- Add suggested area to hue ([@bdraco] - [#47056]) ([hue docs]) (beta fix) +- Bump bimmer_connected to 0.7.15 and fix bugs ([@rikroe] - [#47066]) ([bmw_connected_drive docs]) (beta fix) +- Upgrade aiohttp to 3.7.4 ([@balloob] - [#47077]) (beta fix) +- Bump pychromecast to 8.1.2 ([@emontnemery] - [#47085]) ([cast docs]) (beta fix) +- Fix Z-Wave JS discovery schema for thermostat devices ([@marcelveldt] - [#47087]) ([zwave_js docs]) (beta fix) +- Bump aioshelly to 0.6.1 ([@chemelli74] - [#47088]) ([shelly docs]) (beta fix) +- Add new machine generic-x86-64 to build matrix ([@agners] - [#47095]) (beta fix) +- Bump google-nest-sdm to v0.2.12 to improve API call error messages ([@allenporter] - [#47108]) ([nest docs]) (beta fix) +- Use async_capture_events to avoid running in executor ([@balloob] - [#47111]) (beta fix) +- Fix Shelly RGBW ([@thecode] - [#47116]) ([shelly docs]) (beta fix) +- Handle lutron_caseta fan speed being none ([@bdraco] - [#47120]) ([lutron_caseta docs]) (beta fix) +- Provide a human readable exception for the percentage util ([@bdraco] - [#47121]) (beta fix) +- Update frontend to 20210226.0 ([@bramkragten] - [#47123]) ([frontend docs]) (beta fix) +- Fix the updater schema ([@balloob] - [#47128]) ([updater docs]) (beta fix) +- Fix MQTT trigger where wanted payload may be parsed as an integer ([@emontnemery] - [#47162]) ([mqtt docs]) (beta fix) +- Bump builder to get generic-x86-64 nightly builds ([@agners] - [#47164]) (beta fix) +- Bump ZHA quirks to 0.0.54 ([@dmulcahey] - [#47172]) ([zha docs]) (beta fix) +- Update HAP-python to 3.3.1 ([@bdraco] - [#47180]) ([homekit docs]) (beta fix) +- Update AlarmDecoder dependency ([@ajschmidt8] - [#46841]) ([alarmdecoder docs]) (beta fix) +- Fix Xiaomi Miio discovery ([@starkillerOG] - [#47134]) ([xiaomi_miio docs]) (beta fix) +- Bump simplisafe-python to 9.6.7 ([@bachya] - [#47206]) ([simplisafe docs]) (beta fix) +- Increment the homekit config version when restarting ([@bdraco] - [#47209]) ([homekit docs]) (beta fix) +- Bump HAP-python to 3.3.2 to fix unavailable condition on restart ([@bdraco] - [#47213]) ([homekit docs]) (beta fix) +- Fix generic-x86-64 build ([@agners] - [#47214]) (beta fix) +- Update color logic for zwave_js light platform ([@marcelveldt] - [#47110]) ([zwave_js docs]) (beta fix) +- Fix number of reported issues by github integration ([@maxwroc] - [#47203]) ([github docs]) (beta fix) +- Fix race when disabling config entries ([@emontnemery] - [#47210]) (beta fix) +- Fix harmony failing to switch activities when a switch is in progress ([@bdraco] - [#47212]) ([harmony docs]) (beta fix) +- Fix duplicate template handling in Persistent Notifications ([@frenck] - [#47217]) ([persistent_notification docs]) (beta fix) +- Fix Xiaomi Miio flow unique_id for non discovery flows ([@starkillerOG] - [#47222]) ([xiaomi_miio docs]) (beta fix) +- Fix Shelly Polling ([@thecode] - [#47224]) ([shelly docs]) (beta fix) +- Pass variables to initial evaluation of template trigger ([@emontnemery] - [#47236]) ([template docs]) (beta fix) +- Bump simplisafe-python to 9.6.8 ([@bachya] - [#47241]) ([simplisafe docs]) (beta fix) +- Fix lutron caseta fan handling of speed off ([@bdraco] - [#47244]) ([lutron_caseta docs]) (beta fix) +- Add suggested area for zwave_js devices ([@raman325] - [#47250]) ([zwave_js docs]) (beta fix) +- Update frontend to 20210301.0 ([@bramkragten] - [#47252]) ([frontend docs]) (beta fix) +- Revert "Fix the updater schema (#47128)" ([@balloob] - [#47254]) ([updater docs]) (beta fix) +- Limit log spam by ConfigEntryNotReady ([@chemelli74] - [#47201]) (beta fix) +- Upgrade pillow to 8.1.1 ([@frenck] - [#47223]) ([doods docs]) ([image docs]) ([proxy docs]) ([qrcode docs]) ([seven_segments docs]) ([sighthound docs]) ([tensorflow docs]) (beta fix) +- Add zwave_js add-on manager ([@MartinHjelmare] - [#47251]) ([hassio docs]) ([zwave_js docs]) (beta fix) +- Fix Alexa doorbells ([@balloob] - [#47257]) ([alexa docs]) (beta fix) +- Add raw values to zwave_js value notification event ([@raman325] - [#47258]) ([zwave_js docs]) (beta fix) +- Make MQTT number respect retain setting ([@emontnemery] - [#47270]) (beta fix) +- Bump simplisafe-python to 9.6.9 ([@bachya] - [#47273]) ([simplisafe docs]) (beta fix) +- Fix issue when setting boost preset for a turned off Netatmo thermostat ([@cgtobi] - [#47275]) ([netatmo docs]) (beta fix) +- Update frontend to 20210302.0 ([@bramkragten] - [#47278]) ([frontend docs]) (beta fix) +- Update ZHA dependencies ([@Adminiuga] - [#47282]) ([zha docs]) (beta fix) +- Convert climacell forecast timestamp to isoformat so that UI shows the right times ([@raman325] - [#47286]) ([climacell docs]) (beta fix) +- Bump zwave-js-server-python to 0.20.1 ([@raman325] - [#47289]) ([zwave_js docs]) (beta fix) +- Correct climacell device info ([@raman325] - [#47292]) ([climacell docs]) (beta fix) +- Update frontend to 20210302.3 ([@bramkragten] - [#47310]) ([frontend docs]) (beta fix) +- Improve behaviour when disabling or enabling config entries ([@emontnemery] - [#47301]) (beta fix) +- Simplify switch light ([@balloob] - [#47317]) ([switch docs]) (beta fix) {% enddetails %} @@ -1683,6 +1773,7 @@ The following integrations are no longer available as of this release: [#46416]: https://github.com/home-assistant/core/pull/46416 [#46419]: https://github.com/home-assistant/core/pull/46419 [#46421]: https://github.com/home-assistant/core/pull/46421 +[#46422]: https://github.com/home-assistant/core/pull/46422 [#46423]: https://github.com/home-assistant/core/pull/46423 [#46424]: https://github.com/home-assistant/core/pull/46424 [#46428]: https://github.com/home-assistant/core/pull/46428 @@ -1775,6 +1866,7 @@ The following integrations are no longer available as of this release: [#46639]: https://github.com/home-assistant/core/pull/46639 [#46640]: https://github.com/home-assistant/core/pull/46640 [#46642]: https://github.com/home-assistant/core/pull/46642 +[#46644]: https://github.com/home-assistant/core/pull/46644 [#46646]: https://github.com/home-assistant/core/pull/46646 [#46647]: https://github.com/home-assistant/core/pull/46647 [#46649]: https://github.com/home-assistant/core/pull/46649 @@ -1874,11 +1966,13 @@ The following integrations are no longer available as of this release: [#46838]: https://github.com/home-assistant/core/pull/46838 [#46839]: https://github.com/home-assistant/core/pull/46839 [#46840]: https://github.com/home-assistant/core/pull/46840 +[#46841]: https://github.com/home-assistant/core/pull/46841 [#46842]: https://github.com/home-assistant/core/pull/46842 [#46845]: https://github.com/home-assistant/core/pull/46845 [#46854]: https://github.com/home-assistant/core/pull/46854 [#46855]: https://github.com/home-assistant/core/pull/46855 [#46859]: https://github.com/home-assistant/core/pull/46859 +[#46860]: https://github.com/home-assistant/core/pull/46860 [#46862]: https://github.com/home-assistant/core/pull/46862 [#46864]: https://github.com/home-assistant/core/pull/46864 [#46867]: https://github.com/home-assistant/core/pull/46867 @@ -1935,6 +2029,7 @@ The following integrations are no longer available as of this release: [#46981]: https://github.com/home-assistant/core/pull/46981 [#46983]: https://github.com/home-assistant/core/pull/46983 [#46984]: https://github.com/home-assistant/core/pull/46984 +[#46986]: https://github.com/home-assistant/core/pull/46986 [#46987]: https://github.com/home-assistant/core/pull/46987 [#46988]: https://github.com/home-assistant/core/pull/46988 [#46989]: https://github.com/home-assistant/core/pull/46989 @@ -1946,8 +2041,71 @@ The following integrations are no longer available as of this release: [#47007]: https://github.com/home-assistant/core/pull/47007 [#47010]: https://github.com/home-assistant/core/pull/47010 [#47013]: https://github.com/home-assistant/core/pull/47013 +[#47020]: https://github.com/home-assistant/core/pull/47020 +[#47028]: https://github.com/home-assistant/core/pull/47028 +[#47031]: https://github.com/home-assistant/core/pull/47031 +[#47033]: https://github.com/home-assistant/core/pull/47033 +[#47056]: https://github.com/home-assistant/core/pull/47056 +[#47059]: https://github.com/home-assistant/core/pull/47059 +[#47064]: https://github.com/home-assistant/core/pull/47064 +[#47066]: https://github.com/home-assistant/core/pull/47066 +[#47067]: https://github.com/home-assistant/core/pull/47067 +[#47072]: https://github.com/home-assistant/core/pull/47072 +[#47076]: https://github.com/home-assistant/core/pull/47076 +[#47077]: https://github.com/home-assistant/core/pull/47077 +[#47085]: https://github.com/home-assistant/core/pull/47085 +[#47087]: https://github.com/home-assistant/core/pull/47087 +[#47088]: https://github.com/home-assistant/core/pull/47088 +[#47095]: https://github.com/home-assistant/core/pull/47095 +[#47108]: https://github.com/home-assistant/core/pull/47108 +[#47110]: https://github.com/home-assistant/core/pull/47110 +[#47111]: https://github.com/home-assistant/core/pull/47111 +[#47116]: https://github.com/home-assistant/core/pull/47116 +[#47120]: https://github.com/home-assistant/core/pull/47120 +[#47121]: https://github.com/home-assistant/core/pull/47121 +[#47123]: https://github.com/home-assistant/core/pull/47123 +[#47128]: https://github.com/home-assistant/core/pull/47128 +[#47134]: https://github.com/home-assistant/core/pull/47134 +[#47162]: https://github.com/home-assistant/core/pull/47162 +[#47164]: https://github.com/home-assistant/core/pull/47164 +[#47172]: https://github.com/home-assistant/core/pull/47172 +[#47180]: https://github.com/home-assistant/core/pull/47180 +[#47201]: https://github.com/home-assistant/core/pull/47201 +[#47203]: https://github.com/home-assistant/core/pull/47203 +[#47206]: https://github.com/home-assistant/core/pull/47206 +[#47209]: https://github.com/home-assistant/core/pull/47209 +[#47210]: https://github.com/home-assistant/core/pull/47210 +[#47212]: https://github.com/home-assistant/core/pull/47212 +[#47213]: https://github.com/home-assistant/core/pull/47213 +[#47214]: https://github.com/home-assistant/core/pull/47214 +[#47217]: https://github.com/home-assistant/core/pull/47217 +[#47222]: https://github.com/home-assistant/core/pull/47222 +[#47223]: https://github.com/home-assistant/core/pull/47223 +[#47224]: https://github.com/home-assistant/core/pull/47224 +[#47236]: https://github.com/home-assistant/core/pull/47236 +[#47241]: https://github.com/home-assistant/core/pull/47241 +[#47244]: https://github.com/home-assistant/core/pull/47244 +[#47250]: https://github.com/home-assistant/core/pull/47250 +[#47251]: https://github.com/home-assistant/core/pull/47251 +[#47252]: https://github.com/home-assistant/core/pull/47252 +[#47254]: https://github.com/home-assistant/core/pull/47254 +[#47257]: https://github.com/home-assistant/core/pull/47257 +[#47258]: https://github.com/home-assistant/core/pull/47258 +[#47270]: https://github.com/home-assistant/core/pull/47270 +[#47273]: https://github.com/home-assistant/core/pull/47273 +[#47275]: https://github.com/home-assistant/core/pull/47275 +[#47278]: https://github.com/home-assistant/core/pull/47278 +[#47282]: https://github.com/home-assistant/core/pull/47282 +[#47286]: https://github.com/home-assistant/core/pull/47286 +[#47289]: https://github.com/home-assistant/core/pull/47289 +[#47292]: https://github.com/home-assistant/core/pull/47292 +[#47301]: https://github.com/home-assistant/core/pull/47301 +[#47310]: https://github.com/home-assistant/core/pull/47310 +[#47317]: https://github.com/home-assistant/core/pull/47317 +[@Adminiuga]: https://github.com/Adminiuga [@AdmiralStipe]: https://github.com/AdmiralStipe [@Antoni-Czaplicki]: https://github.com/Antoni-Czaplicki +[@CurrentThread]: https://github.com/CurrentThread [@EPMatt]: https://github.com/EPMatt [@G-Two]: https://github.com/G-Two [@GeoffAtHome]: https://github.com/GeoffAtHome @@ -1968,7 +2126,9 @@ The following integrations are no longer available as of this release: [@WizBangCrash]: https://github.com/WizBangCrash [@adamoutler]: https://github.com/adamoutler [@adrian-vlad]: https://github.com/adrian-vlad +[@agners]: https://github.com/agners [@aizerin]: https://github.com/aizerin +[@ajschmidt8]: https://github.com/ajschmidt8 [@alexpilotti]: https://github.com/alexpilotti [@allenporter]: https://github.com/allenporter [@amelchio]: https://github.com/amelchio @@ -1992,6 +2152,7 @@ The following integrations are no longer available as of this release: [@crazyfx1]: https://github.com/crazyfx1 [@cristian-vescan]: https://github.com/cristian-vescan [@ctalkington]: https://github.com/ctalkington +[@cyberjunky]: https://github.com/cyberjunky [@decompil3d]: https://github.com/decompil3d [@denes44]: https://github.com/denes44 [@deniseyu]: https://github.com/deniseyu @@ -2036,6 +2197,7 @@ The following integrations are no longer available as of this release: [@macrosak]: https://github.com/macrosak [@marcelveldt]: https://github.com/marcelveldt [@marecabo]: https://github.com/marecabo +[@maxwroc]: https://github.com/maxwroc [@mdz]: https://github.com/mdz [@meichthys]: https://github.com/meichthys [@mib1185]: https://github.com/mib1185 @@ -2059,6 +2221,7 @@ The following integrations are no longer available as of this release: [@puddly]: https://github.com/puddly [@raman325]: https://github.com/raman325 [@rfleming71]: https://github.com/rfleming71 +[@rikroe]: https://github.com/rikroe [@rngtng]: https://github.com/rngtng [@scop]: https://github.com/scop [@sgryphon]: https://github.com/sgryphon @@ -2079,6 +2242,7 @@ The following integrations are no longer available as of this release: [airly docs]: /integrations/airly/ [airvisual docs]: /integrations/airvisual/ [alarm_control_panel docs]: /integrations/alarm_control_panel/ +[alarmdecoder docs]: /integrations/alarmdecoder/ [alert docs]: /integrations/alert/ [alexa docs]: /integrations/alexa/ [amazon_polly docs]: /integrations/amazon_polly/ @@ -2126,6 +2290,7 @@ The following integrations are no longer available as of this release: [devolo_home_control docs]: /integrations/devolo_home_control/ [dht docs]: /integrations/dht/ [doods docs]: /integrations/doods/ +[doorbird docs]: /integrations/doorbird/ [downloader docs]: /integrations/downloader/ [dsmr docs]: /integrations/dsmr/ [dynalite docs]: /integrations/dynalite/ @@ -2153,10 +2318,12 @@ The following integrations are no longer available as of this release: [fronius docs]: /integrations/fronius/ [frontend docs]: /integrations/frontend/ [futurenow docs]: /integrations/futurenow/ +[garmin_connect docs]: /integrations/garmin_connect/ [generic docs]: /integrations/generic/ [generic_thermostat docs]: /integrations/generic_thermostat/ [geniushub docs]: /integrations/geniushub/ [gios docs]: /integrations/gios/ +[github docs]: /integrations/github/ [google docs]: /integrations/google/ [google_assistant docs]: /integrations/google_assistant/ [google_cloud docs]: /integrations/google_cloud/ @@ -2164,6 +2331,7 @@ The following integrations are no longer available as of this release: [group docs]: /integrations/group/ [habitica docs]: /integrations/habitica/ [harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ [here_travel_time docs]: /integrations/here_travel_time/ [hikvision docs]: /integrations/hikvision/ [hive docs]: /integrations/hive/ @@ -2177,6 +2345,7 @@ The following integrations are no longer available as of this release: [hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ [hyperion docs]: /integrations/hyperion/ [ihc docs]: /integrations/ihc/ +[image docs]: /integrations/image/ [image_processing docs]: /integrations/image_processing/ [influxdb docs]: /integrations/influxdb/ [input_boolean docs]: /integrations/input_boolean/ @@ -2237,12 +2406,15 @@ The following integrations are no longer available as of this release: [ohmconnect docs]: /integrations/ohmconnect/ [onvif docs]: /integrations/onvif/ [ozw docs]: /integrations/ozw/ +[persistent_notification docs]: /integrations/persistent_notification/ [person docs]: /integrations/person/ [philips_js docs]: /integrations/philips_js/ [plaato docs]: /integrations/plaato/ [plex docs]: /integrations/plex/ [plugwise docs]: /integrations/plugwise/ [powerwall docs]: /integrations/powerwall/ +[proxy docs]: /integrations/proxy/ +[qrcode docs]: /integrations/qrcode/ [recollect_waste docs]: /integrations/recollect_waste/ [recorder docs]: /integrations/recorder/ [reddit docs]: /integrations/reddit/ @@ -2264,9 +2436,12 @@ The following integrations are no longer available as of this release: [script docs]: /integrations/script/ [sense docs]: /integrations/sense/ [sentry docs]: /integrations/sentry/ +[seven_segments docs]: /integrations/seven_segments/ [shelly docs]: /integrations/shelly/ [shopping_list docs]: /integrations/shopping_list/ +[sighthound docs]: /integrations/sighthound/ [simplepush docs]: /integrations/simplepush/ +[simplisafe docs]: /integrations/simplisafe/ [skybell docs]: /integrations/skybell/ [sma docs]: /integrations/sma/ [smappee docs]: /integrations/smappee/ @@ -2293,6 +2468,7 @@ The following integrations are no longer available as of this release: [tellduslive docs]: /integrations/tellduslive/ [temper docs]: /integrations/temper/ [template docs]: /integrations/template/ +[tensorflow docs]: /integrations/tensorflow/ [tesla docs]: /integrations/tesla/ [thethingsnetwork docs]: /integrations/thethingsnetwork/ [tile docs]: /integrations/tile/ diff --git a/source/images/blog/2021-03/automation-editor.png b/source/images/blog/2021-03/automation-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..c9bf67dd00839cc4ecaeb30604d12b52509d067b GIT binary patch literal 43674 zcmbTd1z23cwl3H}kN^#Ypp7RGoZuFmKyVN41b26mAPoV6ySuwPB#i}k4esu4vpMIU z``(>7-+43hb+UopRkdqZty=$*fBjI9`vgXXpn^aku%yICB@hUq90Y>TM1cpsVGhLf z0D+1OBtHtPxWVnuz#+keaKuK-K1fS|$Ywv*VGHSZlw?oXzWAP{Ld}|ju!voD)k`{| zdA0-s34xc$Kp+bO5NLuK1S&89ffQgMPzDqZxPt)t20;RWIM9Ix4W9q$?*Hh%RJzy1 zAPo<)i?yDAW0;iZy-v;HWsHg$=uIiaHmnA32kEir{@7V+>2@vop2I88ZqJrr)14{z z3z6;R5S)}tt|hGhveue-zRvnz|4Ie;Q)?ohG^&Tc45r`Ysgb20Y8?e8Pb{R$Oy?-c zA9xgZA6@l-AKTgb{yx65v}rAb^4j<9ap!B+#iYXqU#{~E;_&8u$x2meNcQ@PTj+FL z)b!rxattalSTJ-+5S5zJpH150LR6#3eUXDi znhyORj$2HpjoRI19}jLCIyUbfAGi3VZ9V-c{OILdcT-&krCSIu2Z)j!VITH=1NCVW zofnc_i_;9UyMG=_q|_o`HxSAXxsBl-ZA+(xgyEk&MhH_*Q-tnmPy3nJk$*XU3vS=$ zF$yP1V^S?q4?x8oO5r(M{}bKlxb?g9gUdd1jINSaz0Jc)AQ>K$wpsOT7%9JIp;9ie z#-Gv%7MopdX>d?qkJnmGi~ocWR=%MEb__LODF6pNU7|70XKV~Ae2)f>Mrd|B$-)uv zy0-h}i)eDc(ClhDoW^fDMBJCV-udG-un%8G`0Q6Z#X|6QnwU0{IjvXUFdwdVh4ARq zSxc{^uc*og(0X&qay>61qB=f7L` zU%s~v+Q)aA{w;WD>r-?J)HP3!E@69mI?^ni^D*6&o!bgIfS;W{UoI~u4shL;4R2`E zJKT1i5;X{XeK@gK+dgIX7v&AI7mxSJUh~nD(|7(SPX1}UhcmIuuKE@nUIZjT>T_*} z`k}9Iw~Uw%*u&E+E?<(q>h3H*{oKZn#$_fBFVIjb*X7?-TEE^I&!<-_OX0F5^^Yf5 za5-A!_qlg_o#Yq7#)cxmCv0u2K_XNquVYue&F%pu8>!*kjy<-yWJ?d zX-rWo{A+l>*NsJ573V{B*GY17&hc{1)H5rT&_|e4Kh0JdCv(}_WE#8+5dKV?BkKEd zognyOEnH9nc1(L)U948F)T`pq9ZDF2$2eDIENvo!hQ}a*`N{nUHkAb5)<9yle7eA9 z7nOkL<-UJp^iUE9eSDVP@8Cp&HMK0ms*Y$Pd~_b>+eK}$?6fWS2)Ic zN8dA}!6St*ZcLZyNXOEB1`d7V`P0?XR|>UX+-WOTvsEYh$}^=}T&Oxs_=AB{iqyL8 z_orwG?fA9)9_$7$#)(mmZ@h5e$CcEJRT<|rtq4FE#N0xfI&BSNHLh(YfMlcM(11oy zcOxMEQB=|=t6lL78otWD%247{sg<9KwHA|ewU){>9Dm!teii8Vgi5bSzl%b(8p#me zn<{1T`|*MPHYevYMxo6>;kwl46>#3v-F7T3Cki6phy?>9MtT46hYFjn{%MflQ8Sw? ziXE{A7FcpI=zI9%BXF|EoL6vS^wGfMxw8i@VQ@=iU+*KoBy`aV(`Ve_m?GY=Wl(aS ze!0>XE>LWFfyKEt{0kIFXq3wx0uj>7Od<75F zOHZg<6r1VLKn&tq<=NJ7^2SDgJo557fnj#5ose(z3YiQ8+4`?G`!#4q>TD8((~3s4 zc|2eKwcSP^u7;L)zoBlxn#E+%#on~MZzjLF4GVb_-7egsah}9n)s0P~^Ilvi6#;I< zNi5`TI1>vVgwtB5h3WBTi%h`SUMiG`E3CPfWf9#Z1)YkjHdt=7LP?1h@-DxYSC`$P zBc^dq!i<0}_bH9Taw^I#68A0DTPHMiY9z!c-7)7%NiiizUFXyJxIE=g26l8ZM;Tw_ z9*PqE&fw#_RVMOWx~B(|!t7rLrvB{cE!fd+v081`9`kEVXyBv!Cw6V#@6d2Qw1}mR zJhu?f6qna$BdHAFXufWHIR0c^(+=+o9X%z;P@Be@kT!AaaD#H`c$?-fc_FcMv*d`9 zggEQKTlsyLW(wwaEHZ)o`3mnPWxIWH7~?5Xpzp+I4zEwvOa#>5iB^EV51BB7K3PPc zW{L*pNympl--Z%M!#^N{A)RQ*!MM~fttgJLUTy9J`dGtaAjhDeK0vS2w*A57`q%)N z>RfGz!)A7auR5)vkQ4yLWiiSkk~dKI?gaUm0UI}n32%azb@azKM^Q00k_1MHZnO{+ zml+Wliq;B%dw+PxU89`Y3`J(#Eytno#C54p7A5TXwcdmfMFUix+kh5m&@ zkU!qvTSPH$I2ABWO2J4c>OP1_Xwe|;*O&7U?2F)g#0Cl5x-`Hv5{=kOD`IFV(jqNk%RQg_#*Vx#vGAtS?dwT zyGLdGbxYH(*Vf+;JhEYO71!F@AheHZFCZo)$vanFcK25h@cS3dycM!Ui+T*Guf~}D zQ%zc3rg2+#(Bozblf_YjIQL9sS7jla4D%*GjossGK}4kZf6KNO@|4qv!Ncu4h=T@Z z0zn$9d%0m-Zb8}FUkDx7dxh)97|f?i68W0ey%Q-TMP$d_D*j+a3w9F{rya;ZOuhx4 zski*jYe2CUw(2VpH%-UL2Ig-(4rzS}8x|o+gBcS#wA^pEa zVA`EEy30I&A}IVabIvbw%(y+it4ogB0V?tsb^O=J#n`V3-yZmqP`|_`<4HbqW{nDw zaIqs1N)n<}!q)47M7G2O+@=jb0;)>(fdm%OnOj`51W9>LyjUCC$)e9CrEo!w?@eCD zb)mfZSi4K=P=!9E)N6tP-=;-&J8nDDVSM@Jn`$l=W5Z6DXM{`ZyBmF_#&pK2HLczn zNk0MF&obKqDZ|}}(-m^0F`v^m)`r#bSf(g4Q~$#3kI?z9?(~by-2$>UoDbd04^;g_ zMIbu3;g?!=$KK}qod9-F@qy2Du|>rIs4k$dRs{ftiq!C3$+a_|$9a%51_7J8gFX#y zD?ja$-8p<^RMrX^_Qz@XYxr_JeX671Z+K>KD7$XR*=2an>du*t=}CBQjCk2HwFbUA zsW@55d_#q6hX;=*!l5RxRD5Ah?W@5deYqLZ$gQP7_yqoAV}|!DBdUdit?yE8u%-J( zMElPhbB2cvHC!B0_a`S zb@5`jYz<_*cU++zmM$V0vBKZ2zL7t=JrYnRN7`%5q4AL*_zAu8GsQlbARx3a3M(5- zN&bD@;pulo&w-Z)y>YJigMPw**o|nw8^t1KXODC|L9ho#$xwCINac0zQ&3X!lqzT+ zD9JhJy({g$dQjzAi=ChqZktWH@iv~d;#8Ok!bh<=bUkUy$@xfsovwn~{_eq#HB$lQ zoo6AkfI0m*`_GBZuUoN()w6FjPE0T=3Js+B-v8_*5_}@_bPX-$L`Sx32;8RSf$Kvd zva-_7sNd=J_g^HyR5z~h|8iLamH~b0fso$&&@c=3tl78f;(wzpRW06XPFR-vLHM72wg2Ib{nMFK|ECxC zZ|(?z+lh|PrpfmFRN>UK$nv?!Z;&)W zj!?iW1TO#hQyiQPg%biUiZH-yRD=N@qylgOCir{-{L1GG;6VbH|Jf~E7$x)QP6-h- za^;Oe5&jKQ_MN~;s!#i%NF4(z0ZFCsykh$RmODX+vRp=9ng@xfa(kO~tU zp;Od=I=+aYu!z&%zvn0c+|_^Yw*K1}e)em9UI9++wL_y-{k%!d%9=q4L>F+SIa+3| zlJE~)K5(?Wcy@Yk@Hn*Lo`2y5{9`+J1(@@{eB)_kU=Suuiw1%JLt6rbzrWY?6%=BSEY3hDrjik_I~{DCWY(lQ@kXe4a;#v`WX%dzsM5D}#)F{;w0LeXzLP_`e|2}ENrN+h z%$gVqWxzvQJN6Pdx@xvZ09FU=2@=naq_ZlY4(VA#1>9(9>uY|X?;JDV@x3+!o^rs# z(G_e(A#?uV@hE!l!h@M$`_Y~=xpaC@upcwNf1{oe2i07pQe7oY=AGc)YmYsTh(nj= zpFL|zg)tJ8bg@$HOM>ac-NN7?3Af;TW2>e&EBoLgG(;WI@PlilV4ah zN>%g6ch*jrkAN+lW40!sOWG}O)Rwz(iZ=G6gb!dE9=l72jNq*~iL69Oi$Ae#d$ojl_k}W!E~?SQL}OSgs#xOg z;jtQp%*e#Fo4h8vx3{OKt82J1HKoe1Twe$^F!ukjt{=+MO)y_!Ju|Y}MWUvv>XdWT ze{y`xOq>19v#B>fKcD?adU|?eVL`!il>*JWoKy~{OjvT7FH?4l1%kYcjGeNsF6on6 zFLa|pT3Q+t6O*#m+SV2r$f2>K0xK}h_|L>KKN%UBznVm?Ib&csb2ouesPzn|)yOB^ zG}t@i+=|M|@1HKu&nb;9+H`eva9u+_@bXGkt=!zWhcPlTsyp{~6d+uAdwc%?e^SPW z!C=}huCAulDhw#35v`})>)0nF00VEypWrgvn1zWA4)8*H74%gD%xBHea|c~G;}oZ4M>1gG=j z!Z{2KylXKb@!Gtbx%~J*c6N5CwM5>}=W&SYz{z|Oaudkj%o3qj~0**49YB%zU$K(lxxTt*sUM=WTi(f=I&_!_?HYC?zFj z{o3+$de}N)aM%l)5T&Z^?(VJ;1@3vr0%r$|og-=HVrXhgjRUOBKX({4YYXS=k3+{KV^E7=elb@JA7ILPnzmYz-w6r87$9UeWO7J{X_V>|m zTg0n(g=i;}?6Rx7Vl^QlXkzS?XmNzaBWTuzVEj`nH+}tYMqXD;zjIixN=r-O+N@!I zetyo*&L#6GgzD?U;D~;_f4xMqe_0umwGoCGP4stMdz?-K1lDP83^14_hsbDpy=^~5 zdUZH~d8l%wxw*MYFv1Vd^4jwAXIy(cba4C^SaESNG4Ovj5Z^K`KHm6j2lDFq9cQ4{ zFz6KRBH=jEW8eNh1ERIHwW2|7M`LAWB-NkZnzrwlv*>|-eh7p64ubsrI#w`6gF;1% z`Ri-$<``#fJv~f?U~qL*c5ADSH19R1@B8)bin_Z0o-FqT`>-h0qOuz@9?> zTb{5G6@L|2$iZpx*x1;#Rp0xjaNLfEhldO5L8$e%<{yo=Fn+#;erFE7WHe(7k+g2W z6|G&ymWfWykdg6%YvS4AFM$_0E`JP7Cj8$O`Tsqd3cv%$yAd8%!@`Xi z=y~0Ss|u@r4jFqF0+HkYk5-A`GsOOHK>7bf@cY3uLOVKiG5h=EfDu1JVXeFxA(4LFkr>#Xrx)_%G#E}n9_UbT8`A%|&Q9sM1$A71(?&}&iK zq|M~dShg3n^@25BE+Emu#jT&BMm$KeQ z_pr#EtL6Z!)jUYmVOv(ALS4O9LlZ;9{s@Z90KK4$h;W6&RVjKSl}l+$5%m$CLQ)C) zBiYIWfw;?29^cU_k6-N-I}n0NNo0HaVEQ3-NIuJ;KIq|-_`%iP_|ADe|H6jDAH~ZR z;V;yqof#`n>F9*)RwES@-^w#yPzl32P|`RfJOt8r)*RNnT6NoFk!Y;gA%73~mp+~e zqz`MAPMx^LM2?!p$hX27}UbNwJj3}Gk14D`!b88q>O z6fnZ$ZiM$3A<-6l)TRz^?Oeava%lAOhXQ+aF>k26O-PSfCeGcbR{R+!BhaIH;do4+ z`J0}bE>S^@T)uQJ_JP4{$TX=qxkW{O^MV{Qi|XK~pStCNdz9EShWFoiymEyixU;*Q zvvoE_I<(!Kn53}N=Trk#a$QH5@nrLr|4OV2W@FV6nFZ{1w$^DBPg=C<_J2S#2Kg_WW!=yeRmIMp{vmZ1pzJ>H*&Vr~M0;Qg>STJ2ylsx4vvqMVnF+J!3D${eo} z6W#?9q*3hr?KyaK{os@pAb(J?=$NRFu%?H?&0)?{ydb zDJgMrl|b-54OlN;VHKdDki&12HIRYVD)TiwN$clJT_Vm7t4&>9TrLN$1`f~Gmji!q zaPohgY5&^Z%w8aZ6*YBvxPW%|;x{IlfKUn$7$@fUP}v`y0|Lfti|F0wFDbnrZaE@6 z&NgK;62vn;k1#(xUCH90X8jTm#3Y-lT7T`x|Mih?=nFjy9zsv#8aqQw6_nxe@UV>O zaH*Zl8OV7Uk=wKYQAW7i>Awpt?$NR5*q~7|{daoc*ME}_fw;DbyYY(S*3i!H5wndY znlHQL<`OGR3+BPY9SjrO@-WG54G(FK(SFZpqH_W-%!i#PAOgpZmM;}6ZgvgCbJ6?1 z-NusV3pv@Jtcv~o+vMD@xqPG7?(;bf-mfI4!KJqo$-607Ts^IrZS-WV2mDK>QcLC1 zB2(KBFNT86s%Q9henJTA)^K|GLh?!Xr#QNKh|$z&$aMIWQ3$R@%P#XBkR#bK+9yUb zb`VPw8ZKJe$Z&CSiLp9iM={TH+X>dNz9B!Qz6hf5M3a(baM|RbvB_vdbJK~%zqBR$ z(9fGoCYQ)+Ja!zDE&?0#uN*eJV-*NM%!+4_n0Td`)Kh~hB9f={cVjWglt3=$2Ycx^ z%Fp9g3hxRVbO>J4`L3M5VGtvKg;PzeE#9VzBnAo-rwpd7Od2iB;H&=_P;YhcaCfE1 zbVkV_Hg^Q<8W8^fL(FLqC>n_I^0Ew$zXN=&yjsRbOF@Qr;hZT_(FF^{bS%GF{^ch# zAxN8vk({&amt)|LW;*vcPv2RH;vFzTEe_NfjBj zbKZA*2qk&j{pNIo?<;y+qpagx=5d^1)?PF=H!W`z13SmuOYza5`bc}oB{X~FQzlW# zIo-CV)XYAz)t_||ZaX2##n{c@bIO7&Q5qR~G)gx#kXRb2EUUm1=C&~3Xwa8TqT&^` zK-4MDMZF?iFc+y-se*0~#;+u9>~DGV5_?J=ymYtLNU`iKx8@Z&E5C93qp|nRCo4>| ze_WPksQ+NtmkjdQJ9Th4t5lw#y|?R&p=~Dve|@~y*c`|nZ!e<;Kbgu)b=K3*;|-p@DMDXe3uYq?SU_Gc`zTpfh`>+ z^NKG<(Ct`gxg_kR)aLBYRMqk8R`ybzcAp0zb;rVFsNBFqN4`Ln%XpaeIXQDRy)A;t zM<QkwTm6Q5vsao7c`b^TlI3MK><{0DMiBmTKI#@p^_qCcEpwWf;~axOq^}eYOW7LSX*&GK=7BwQBx{4x^Q_DBUUfryY;9QOLIP}4!17;?5w z=S_bNNW|J~h9^Q65+^MVdy5cCNj#Lz7}-zV_W`f&7o&rvhC;lj%?R5F9foZM5|(*T z-D#Xf7Cq$BSiwe;(42?aert$C(&jx~Xmv1@un!FuCGt1Q@;jgBWoXe)45-jD5WIM; zxl*@n__E~kP}YpV%TZ~4Eo23sy`}2pQHdmL#Up@|-Kv?~d?s@yW2I;*7&&Ctr6sNYhvxtv;)Nch^{aB$yca@G=+GHX}4rQMooMzgsr)*HPc+F0)9>HX&S zDV%iH0r$?{A`ptG&j$%`sSNphyxnNf3pxbv9`v4Ml}=et zW9H=B`3rN!)V|(#9!j9-t`)dGKf0YUs2Q5AhAb@dPh6HVn++FMf-#pqF4z$}?9&-k zBxlk{Nr{Y%19e-aUln{8C}1{B>WZwMi}XvQO)SSs9_GBZCLKF^Zj&VqDO1}<0pma5 zv1?y($iV{W%km8H`-uK2Jq60Q|BxO5@LP&Tmha4`;!O92$KhEkk}yN;-s5fjv3pvl zAD@$5|ICtewsTYLUhg0@;Asu0cb@5Zh@)Lr8RQOVD6Gv^o31sc=fHcYY#JHn&oErS z{GNJ^yk>@2&T&YjVrVz@Cn(Htg&}D=X@9edqv;pQT}5}mJ-53VK@>kP&FRV7r)h_p z-JVz77~p>7ewzNP>r4c`qOfjQP9isPz5xo;6ffF}cn_!7Xpen>Fys(3;?c^cuZogJ zfwGL@{&Yin8zBhMxd)pV8@w!W9;4}!q|qN^+LZ9oln(3LZEiiz>xIAbLF*}n?f_V& zsOKVhYnNmh@aQ~1$h!v09m!of)-q5Q_Kk@`jK;;Sl^}>MDI?(btcnaYQ!XtH2qlp} z!(MXe&9QrR6K5I(L@jBt14@!5f;$4{v8ZW&3M6K_jf!!3MPOp>gBel6{cYXm4Gvu~ zo5Cui%=oOl^g%yn0^2hetGx98A$>`&@W%Vm)s^$^i6NK7FJ6B@Q{2uL3t%~HqVQ~Yvk+ip;EzXV5n#=uvPf0hU1W5N?20*uYKB*Rg`H6Om#n5+U$&1*#8NE zp$v|xl01k;D2x3ncUVf%7X_J>Z$y)_5*9PPd#F8FoLua8X%gPoZX zd{%46ehxN2JYyIF9uwIv!D0uV_PYr5_4Z|N|Gq6SW9HiDX6;Yswm1B|<|iGSer)ac zdDRIFvEi%J%zVqPeLjytM_99M2?kG>NyK4h1w$|P-dYrNa}l?(Mm#TR2!Qo{!VO$w zyH9m8iLB-`(PsJdbob`$d{k8olli|z{aeM4qnB0i>$3O?Y(92)e4-jFP%$T^CVbS0 zjN^=$L|}LkKk?Ms6;7ycZ2*Rdeci{gL0t)&val_rI(nc``tT*}92w=#%sqrdqRytp z*2|T)oZrP0x$LeKxz=0HTdicPwQTLD;s@3#1>8B+jklNY_a<)rAHP<+1~wFl3WK0r zlD;MgZgL7n_O(`UViD@Zu`@Ost(2pVbB)1U|oWdt`US5Cl)yJx#iM(zgsO zEn;1j15R$y?iDr=j_g@G@e;rcgqc+Dth5OPicB0IxL8&j5OmuEPD+1^;CZ?n$}(*eG>5Voh`WE%rS6LbF)O{HwEa)%w^RFt!D?w&^4#FZp{8^y_ns3gVDreo5 z{v2s2P=iT=mAmy^hJFo3ZlGm6jStsZpUpl~uy}xrDkN9_=!-`l*Q}LCtNfMM2ewqH z3r4>EKdD;$b;hJ56Nj&VRLNnz5XO2@xndM}9A31XXs{t5uQHrm-kRh-+1IBIOd^dqKlTTlM{!9?>VNAaDpV@)?8 z!Xpy@V}Z|ZyAsCacWHcf9>kP5ndb5;wI7;hO}{w`ms?7o%m&+o#>;~(7ae#;W*WXA zO^@3z5~x{z2iMT2C=UPJE-YnuwXef59Jne+1%do_wQZe6JnXGx zGPgl#d#rFt-BCR3V8k$+B!6M)Eq1gYMx=T~v{tuctoRyU!v*P-8(K5|dt8=umdC5<8qyS*=b<7Th&iSs@L zJN%2H%CT(0zEzneVmIImy+X0!p6{#c$xc)Hpp}D zEf#;sm*F5g&+>5=NCU|I>uBiNPNglDf-p^Z( zxm`YxBzd@*3j7d^RQ!D-DGLQV;@bENET1dyy&=(N{N1Q?f0g)J%)&g7QT{aDA{uxr z)@r%3TOKQbFORXK_oaX_09DUhFxOi3&-<%4h4oH_W>Go%FT2jQIcF$N60u!EK5R~b ztK-)8eEo$nr=Y)PoVvQs-X`sgn(|cOyg17=GQ)&<0N9@zF{jU0C=26!&medDw`on`(q z%lx?|61+B>&$YiZ-a=w3Ix7E>_!!Rk z@A)B1jAO>C92&^W-WVxCczD6L$nGfM?2>@?zOE_O-TkN>S<%B^pwJtK+_tt>N8 zWFyd-C}TU3d&(Dzk9d4*`8pgJf*w>AD_;`4C9Dme;UUjBoj23TM3i+a&7R}tZeg>fh?jLt zU6lCV$+n(9Bngpl$2{htJX!Gq?`Z&S1L)7=@8q1Jid|n<_m9r9lW^9!1de?aw!3cB zSi|@lKqsq-NN%LV0o+oY#0w!9r!QU>VPJidVV;KaACw(POd~N5ON8ifTGK;KRhbP) zv4nMy@&AfokzNQ%B`6T*XSe;HW-=Ht<8u3rFzllLXMnlNAOka%7Q=-w;-!gWmd3(# zzPkQ}?+?=Q?t}ABUthUWe&CX@g0=Mfzx++9A+nStyQq6;`17Ml+J43Be+Z`4HS??e zx|t2mC|>6tlx~OarY{jw>)A#(??UaPI0ZU{YZqKooQ+RLwS!6)1jxHclMuka_qV?) z%v1gAh2KPI+?PB?3gSBMzI8bSiDnT5Wo@^acDXAEy%c^d(eKU3_TB=0L70ABtBde| z3|oIY$_D`Qf6}4v@NZeAig7)tS)n2|lrk|+@$q+!4g+)AD9&jA{zvq&b zxFubWTFF4mMwg2Vsq3m(*-##Z&kGMAkeZY0XGWW2WnTozlHVXZM+&*B24S$He&`7Z zg#VKTPtEc=UgyI*cmfnS@@>5lw9Mbg{AZOBI0|1}K5N?}OjH0#f=kPPW#E(wG~Q8#nh(a9|d4iKxL7yd&hW|xgar2bte*ua2FWrr%}?9QJ$ zZ6GyMQ=M?JoO07`b0G1guho62=ZH`AnT2L~d%n{XPDZwpG&VLCORtu+mX-D9VTzZ& z>4!TL2(+cBsW}IbxSy8&Fn7N}@}PwV7H(ef2nawzPpwpQ!>y{W&IMo)gTY|lvf|=# z#K*@+P24Hl;-VrTjpsy8LPCP**VNQBkZ9Bsw)4fnz(7*+$GFGYX!a-P*9*H7h00AC z`T0Ep<@qWqD(oB_J3AgajB4}4W1hXk!|&UIdJ81e($vTa-6!@xB1NrFI*4B$nwQ}9kWJ+r4Phw&_ zb(=Q9MtXWnKo}4i8QIj>SOWwKRfi4pUlIRnIwgAT0v|qTApf!=SWFTwtNat(iLOFhM0x%7y(pck2pk7hr96ek~4FZ{6HC` zWDpRQZj6nMmHI+bp!})S0JrF+#-D)!m7%a!=tljL&wRCMxHzj*t}@sb;F1>)Y3ii$ zIGO+%R~X@@)D<$2T@wb&gDlivH<`5jl8}{Ms45$nmKy_zO|Z5vKl*wRhX8hCc98c`kPXDWJJWmYG)t?o*W&W zjnMx92bxiapJ0BM18r?-nWzeT@>WgT6$oDb_6@WoJO}xmQ);0exvLJN({ZjA_pI$G z2_Mv8)dX9*qHNU0`46T*0eS%;DsS=iz;st8<_DcO<@U1mIH4Gr& z5x&4VU}0Gjo1UHJ*(Ds6>6&S8gng`N)D`Wp&{l2@i^gv1xNsgcJ_La}(y%k2zqr^e z_Y7s}l2=gk0fqF9pUMtMYXbEAxf>29rXkk|jB_pTx*x!()Syoqa2d;n;nx6=hG@T~S|urQ^Ebe1C0!myW2?4KScvdM(^yY=4rHJnK*n zD^1f-<=4E0)J?9yoacBxQY6R3th=4|kbP~roU?T1B9S&W&TV7k;pSFfBFzt2ubi$h zp8|?fp#J{b^znm^*0+bS?d@%#oB|gIXNDTkG#77+UXeTqR^HxvJWQPwCj&eW_Wn#~ z%R%RDp)>4FFIU&A!-eJx3}?}YeGQCfr5N4O(E(Hjs4Ei!OezzlRUmHj7P(THQZ_*H zrGg*x*P`KoCchJw&ybp}!zMUCZ)^=;r>h9=mV31j*D}Qqg!*u?BXd(+JJ&OeS z(Zu%?1QbE3oEpif=~>xOfcp{~j(~tL#Vl~Uovr6{(?yJrk6$cY+xMXxk|yAN>wUFg z8s~q}UDmWqcktQJ=U$});OSRA9jtZ}*;<*Kvv8DT)$VEQ6n}UEFot(3xn(QOvnFo; zJXly*cv{C*$KAcLaT6$m;Or_Ho>{Q(At5CteRy~<*&?|cloxxR6v@bL z=_IVjb6a01Asa)AD3<&!4ifPGwkA{GTlKB5XE}myOg0Mvp>~!3 znUIpQ@5U-9xHLXK9?HbWFTsXw;;mMVY*cQLU0dtiAIAt74{22#0BV`G-JkY~h;Fb5PV{fhg)|ihI%lkY%TmjV`?HD!1epzf36u(lAc6Z0V9Rb2y z+z3GLWl6wcVXh%bU_ihu8|Gym)@Da7bfYjoZ47xCXZ+{SpJg2PfRGeSlYAYz=uvD2 zvRi7?+w@}Ex`FFs15DM?uIYL6hqFuqq>$PC|GUhd|+lZ9S zaE_-862=;Yq&nO2p0$Y$*rc76Rmoxb4Jt|Vl%1+-To^#=FTE%;%@C zi40JUxgZN!gof4bTc;BFCg7xX0{oDPih^%C$dpzdz337$slb%Q4vGV`ICA-pI}jjN z6=Y*M-`}XeMTR_0mbDHG+?7lj_Nc?=vSsI`%=|d{i$;S0>}nOgi*_tB_}oD1v0vG9 z&c^n8?zsKwv6%kA*koGmZ;N}ic(k*4`Nqb^%3$vu})0+ON z`Y^$!CMMloU5vyz2oF<>!iGhYfI_U#PQ)d3$oRboZ`g8scL$h2rI|JL_4D)k>CH_| zylj8>KR#8?kiC8Z=&C$uPdFqE@{A1yD^D04=+7h;3xa=wOo4#{K;3<&&A@@ zME3(I6WCzaRMz z;QLQ=`ad)PFs?l%g*g4hE**GpfJX_4H?V$kqyPO^I3|KxAa(HmSNJl3n zCpXmB2k7{!p}xqspMpa|80(+A4&?an&K_7MKo0lz&@eHdX;n_!3Q|&ifV#4h(tLL8r7>(KJ`>9MYkb5HP} zuL4+-x1oWXR0Rh0A4#262sVTiWBeEtnKunw{2a1N&koN|5CySk1EGFq5IN!Y! z&wj-_J2|;=aIi2t+i2V$S5w2Ds)#%cz#~wu`s&rIot>R`0ohqu=jTA(&|Ym*b2B3# zDF!lj;9@neZd$-#cwPfM#=YGmkHr>uzytu!IdAsoMU85c#L1=m`})U1CW@61h?~TMZnjzAb70} z(;Pk{%m*xBt}+9Q8Rst|mi3OC1Eb%ko{J($*d*vXzkmOp2X%CGbk>jach1$7qyAj) z0=5(vAuN4YM@&gYb#r&ugN}-VGSgt6{cNj*hO|Swo+mwJR{{OztUnC4q*6y{1Kb#} zsoAfYO6bp}uTMH?u%y%xa(^9IlJ7{kth{{qhR~G?+`Q{}MCCsQd0A#)jrEGl$3_oO z2akDt{QQHD6h$*#A^4WWA~$<0D~f>e8$IVJ+qka@1DvsGyMWdaOW;`*>hXzPCSWW} zrL2sMj^W`Wz*OKZ^rm)Nga^)7_lxNY4bnvpQk(WA;3Ow#PHxS!cUQQdnN(M4sjC-g z1a%1a8BRk~H+Oxjs#tpYn3z~?O^x~!?(bh6UNx%j`1-@xCBSw(I-x<0QDsZc*h z2M4E$FMqI&E8kJ6z~+3^k(&lefq4Km+`z1eA&??xy^Asp0#&@dw@wy%r7u3{=5bGn z+I$8k{SR}}fJLilM~$PB)`$_II10BjDP{z0m)_ka>Je0=YTwXp58Lc$x!DG~%7#|k}r*~<|N=a3{0}>oNa><;Ge0*NL zZwLDY=V^C0H+76fz{osmyBm76R#a4Ua;j1FMMFg$Nc8vj z2f$eOqVQ~Xb~Y{q3WWmY&K77ftE+}RS84ZJ~T zbT%R{_;5awfhlmk{D(SSh5S*_({wp=?seBm`$o^9t?R*IRdLXZSX4?C8l@s^#URSt z*KZWaQG{L~W^`mLJPDD*!M`|e!Q3J=pR(4GUnXW|W4jt?bX66&JJ6z7?Ni|<9{R%S z!nwS^w!@5# znh2U$DXYE>EV{KUN!XHh7mm$OpwWU2wK9;X+t@%1L8%W-%^o%Dz20#`Me+l}B@P7V%!HtVn3al5rHPEV^{u2$Z83CNw9Adza4V*xem6F{klh8G{{ z-UY99)CeehgWkAz;B0-0pr_n0_zj;LH<&SHWPph>@p_reH z^3Ro+A2Ld(8Y9mMo*I1HL7&q?fTB1P7i%jYX6uHtNqz~r{FGBY#n@yQ>lX+pz9qip?X za}9vcN_!@IDCG7@?A(K&jlLoX!b^a@O!>m-yWq&d={RP`(%?@w({##$%ynTAPN=_6 zd-(dxt;G7xfXNi|1o$_RC?UBalAw|rOPH7t^u|k$D5-qX!o-4)RMd07U$=zi5_Bq* zr6NXTz?~?=dk0;xrem-qCRfMd4p^}>Q)P;)?kP7B;LaAkNM z>eRdt7>Jx!K`R>LlkYe>GBVPDhSmJZ04+!-t77aQpIaz(^h<08^cN(jNc`Z8aj2kA zH=@AZP1p=}(Ij2GzH@F!*?l^$MAQ)bz!E`9pA`+x>V}fd-?E?aikw*@FH~CkFU2z` zR*U%;EovKx+x#IUW-}LgY78N|a?_WakB=~*vZo;u(T?~jT{8wAvA{Pg_z@SG?i=X_ zyo4|#jkEy>O+wn729j$rYOMGonDGs5#g*gm&m9?;zndnoL2m)_WEqpHKZQrF-bWi` z=@hKzX&MtBEV+BO_=gD`eX>8e9|0ovSe?_d20#tf zWCetYzPn0}$* zc9#fpXeL%wX&9BRU{ih8;lab#rOwWgL^oGV;ZxBz*`Y$y94U>x3oUXvK9Bc}i;S5z z4J~ykbv#Stn7K}lAB_GazD%8kFGXwp`XtcP;`7jS2Tv;K^Eb3>zjdT^<$-C=V)liT zWth|^-xs#PN4E3nV?SifzJsHs_N`tIs#TX}S%Y}U(24stpfN85w>MJvpR_?XyaA3M zkT6#*b1HyfxrI8|w3D4BM&m`ILUL;3DgNbs!r9fd9n#0@yi(7)`$PdP!kpHs6s9w{ zG{LWF)yC@eRxxqrB^tzWUvpU7k}Zut1jw*5Inp_(*Kzh=J6S#oLF3LK0zUT%`RinT z#BqO+HflFqm}26SsEi301`^E7ZyBolMQ2SYuF_Lejr**oo?@$w=lyX^>lAvct11}k z1--5n-m~^U8ooTNw_P%M(bODl(;niY#d#!|m;Hq;c*13j&(^%CW()m+BPC%d{AQo^ zZ}Q2qRY;`nuvW~Ec6X1oYrx>b{=X>u3aF^QuWd@Ch6WK3q*Fk;OG2enP-^H-rAuN! zDe06HkS>wVA*H*!M7kTkgTLSZi+6o%z3ZKEAT^v}?S-NyBVb$hCJ-`TAsB8BSgctMFv@7>v8^ajztV+8UEoHo>?k5}Qi*W^4J) z80CIbXZ3ei9ve1DvW&%=7`riIP8_Bw>oz1dBwcNp7*}GM(L=fLc;meRGn}~|dxUkU zC(gJ=%&gAm&im+Hj@loS_#eX0l}hS(2@s-^Yq)UM-q;qK_Phx&wkw}aBW9hND_m+| zpSGFu^qgv?wn@6;il#c5@`2rw_G7+`-0%hA?6poTbq2qqLr$cxBC$uGCJK;8Iul=| z&{Pm|B6sxN96EclHD|nB`YKTfn2c~W_>F2=k;9btV;F0gM=Yh7x6X&w6ZZzE-_JYs zPxvlp(+GA`TI;5)i))o-MCuq=MUn(agnaULZ(ivB@F?;O_DIX1%l(C(JmbFVvC0riofLRM>wL|6m^vVC1i~0Xe?!Zcx76cJ|;S->d5gft5`ak)je~6#! z={)s1Yz)!eLqkIs7d7{ZB45&5%CY_K?(T0H+-3iKK;Z*JKpX#f3G%jz5~gU*^(WqdFwpFGKf0^jrdlFHaV zNOsWscmN>wE@1b~5vC4oxV`*$$N8}M9uq4B{*|_9*s9}WUT`y#0Ds)5U`Z3Vs@Jq4 zBqXFq`Jd0S3YR!Nss&6k`2_@OSpPkytCj27{{F$ifoX-xzfFsmE<8nRTHg!m7HNVz z8yNvyD4yBd@wNPX(~7CpHzDnk{~p{esB%_|E#9PJ3BPSlo8aG#)p-Crak!;>VLdcB z!0xP$H)ka8U%Mzl&I@p1iQlq^^fj^SS#E06FxX?VNg^C=V2H1OQJKkdi~dl$at z{QO^!M*lU$!Gt~f@|5-XuED=;PDyQr?n$`+9TWFld31juO^p5SD+q~+-5T#<@jpUe z=D60*M8ge6lBPw;M8c&SeDodZmAI4!Q9koiDGdqnrm5Q#G%7JtK(|cbl_#6uabB{YH0K7a&5-tC z%gXr;z|#bTjd9tm$k*A2S2wPR0eirdjD(-p94|B~TK%<3CXlECaHlykAU^ohrDK*K z_{moe&h7bQUeobAluUR;^Cik(c`(xqbOLT1A<18CLo=H`@u>qOlHMm3@t^GLERoZL$kny zGjYnAzC-XUc9MU~(?ogfAh?*~rh5Z#vVv=kEBnk2@rZZ@;95G?j9JnF=7-RHm8&qe z|6QL89vgAUfMT2O4j3tH@wp>;ZLm9=n9h}tLhYJtu-|7_-)C+4bo#&;Y?t(=FAwqc zX>btys`cW1$kHk?Zu%z%)jajmezcX*pkDF6=kWsy40z7&8_?oQ)i^xxQ!%$<%6hU? zyFS0eGjC$cr_2SF;xR3he6UW5%a}SXkTYaVlWcoeiM&Wb`d+{EWhfTe6Z+dpHnlH z=+e35GH}*w{pQUhZ!>A>2Mhc^pn&rU!W4i(2)L6V1`Hx(kAr-WqoahZdYYQ1ZRk*?y+l~zxx)Ysd)KhWMTZAX`?prx%1J!1@oT;JZF z+B~HUHEso|hEx+_9uP-xBYyq#RTS+jZdOuaNC*t9W)Mn1{Puq4`N!9*fwE5XUBdnmsL~*(Yn64$nbJ@ zMwLC(&wIzW!z=?QsXE^LEeRQ{Ss0XI`WW^U+ z(D}bTmxgzvTraiyHIe(n8E!8x{l-e4eUc}?Wv_qLjJd)~1)-^qX61}TreB(>s^UYI zFk@brogK9Mvhm*AJ2fq>>Bo=v9v*U#aJ9{EOM?|zS^hFUK0bhKx|WFGPEE{;QL38p z0sl|)iwBfcy0^!xFtrjxZuv;wgh*>$xMkswS3Sy)&&^0--Ce5$wC(SfSwAjQstrs`x& zks8SA@S>YaM@Oek;De73WknonF>?#7iHMVefoT6`=2MG&TU=%EAD9LI1v4J0sZ#TJ zSBP;DZ7I48{39fw)B^V+c(BwgBmLe!L#5_g;QI2i|12)vy}6k?`4awncef*+?&nq% zf+D&_!Yednt*fP_mcl+-Zh5xxr$l`5a?BtGxSS#=AYkzdp?4dk$Ihkg%dI`ciH&q3#CILwOFX zUzwArMK`lCzH;@&akFn7;E#<=sC>$4qZkW-0ov7Z<`1i$bD*1tL}QF|!5$;HD@F|| zam0I2ko0cyVW&Y04}Xn5?t$dKqmzUiGo;(dsGhd8Na*RMR^i{#|nGGwr8l==wukfKlF{nLl<~+?g$~tFI5_pPbYB0Hu2= z^`Yj+&9BiA{zFz8H>O>!rz!>uX)8S46OLjX*Vmq*u#qBQ;kFwqR@t>#(H1>7mIFJa zH@SG&88E)pDe=?JdB4DFXaC!c4YLJF+EAuRZ0y&-l+PppR5XNpYR?eG%Jv z#&P)kTZ^G7HtR8v=lGt*PuA{mzFW;`9LfLX<(HSV#BYovSJkx0m$@qLw!3-1g-mzb zF7_RvsV30VW_b$;cwJQ7iGf@_q+kivviiwb9>lW;=mGPwhG$1QEr-@vm;Y z1;0Ai%>i|WfejE>zWK+K(1fEeFfXcH{o@G~!YCs;y_-s|!8{ZMhmycNC(m;NKm-st zIsKMx?hT3$U3BB0e0oJEoBW>^(XAov)J(urVfH*qqF1Dxi2;d-K~C^BL8C^4cJz0p z;TED!I;*y-8HIay$NUR8@~6cl46&vn{?zaQux>>4jr$JeNtrLwU6K!G3EbM5Y`J%V z#4EsIi{Ybx%4+I0F(N$hDpfsebPjWm|9Xdm*x(RqwI34R+TctS+iUEtHdjWGMYUU= z6P$S6EdYA(vDe*QvKpKRtG}jo<-?)Nq4}KpTnVfXhUlx5228T!oLu_^Mm6E~nQdYv zyp5j-xB?UUjvKCvN%zLtpSnMM_L94IF)u8Qk1i2%1XfkL!k(Lj0dS3j>SjbQ>wV$dV?)>+BxWEp*Z8%YjrHXYZ&R}XC ze?LtIpN4PaP8{H|pTR1GGGG9p%`FG^Pm0{6E~b{FG6GPE zAFd=?283X`^i?_}_uIF&+vVRwS%6Fzzkm$qkkY8InkWX6X_&yL1Fn@h+|>UoK3GRR z;WQ5Jk_C_`us*h(uYXKR`e)L-Ov}&D52U+6CgwBc2VEZ!wFFH?KmgX$6C}Y``G+Sa z&H&QtY;R$przbk%eIl>TG&tJVloW1-=nZc`rUS@{>h!1odUDnj=5VmK5OF^SxF2k! zx$q}Kde!z4wvsGVT?<%fFvf<>91>Z9&&H`+XH9Uda0>2ox<+3#nNqYdiO-VBPAJAxVGH;*)n(-oN z^$dtdZq3$kA?aGcfz)8s3<$lGahv;MX`wchzO#U%eJazX|Ao5%fbq4})r7xe_D@f3 z!EsDYbL1oO$Tn72(f(txHY{GOZD%3j6TqDFINL1(q)bQ0@*hxgCLDk~dZD<@Pw}es z2b5dPpl+rqT?om|9+3?8%H{VU;?UvU-JQ>4A_B0hA5hRm)3PP725r`ifA$WRx(F6^ za9DIy6vpKK5Yo!As0WRSn4BaLn zp$#^KQ4i7t7b2!LM2V0EkY~~;(EJ_AXaHB90o`2biz&^Ka&@h?F8jiDWPcMJjP`#T zx4;Hc1pHswRln8InFV<}gM#PJpM#@$07QfP_GDRTXefx6z^a_iG42mhf zkUIbycwnuiSnA(pC_0-i;m;9byE9$sC=~Y=eu&5aWa$75YGX5w^|6!fDFQ3y#bxu? z9VSCGLqJ&7oR8R$09;=*n}k8wr@YkOl-O9htl8yeJ=bTP2A(*1V03-&die7Z|C~c9 zN(+Z35Apxr8r`PaxRjoh8roKC?#l0d&5v&=%fj)W(Q=qP!?AyO*lJt{vWtcepTMX- zVwd{&Qsn@8rF80jOjyJ(eljw{B9hY|X9^DPynS1YAO9FPYI!&9{8aY(&U^1r$1c}`laE%HNTXeehd>og zqOd1W=u582(ETt__lFQj;y1m(-7j=R zd|v8j`>nO_BI7WE+AMhCnda*AQ9YU8H!a&~mc9_WklKI5c;zhnQvUuv0=@Y*yh?v# ziS1mxMRX{>O8dz%D#lDWRD-F`BroVW?<|{&qT}fCa+1Hc_b0n@8;iefV#}eD2^br1 zpcoD{_{-d68rAiZg*gRla)ELhP>kpJhWAUt=;<;*6Et9FXIFvzuDu0m+2iB)Dgv2V zSs=>w6k`djN>*0XRA*yjjxSHPmgkedKgi$u@TvtBUGtlC%wyh{>V+nf_y5Oa+sFT1 zF6K|d7V6zV*zs{^L~3d(U=BM>YKeD*$fQCdlFTcu#>G&Gz2+OI4qMl+?Zg#HjKupWQs`orkz3 zbef!DY^?Q%fMR|@gN0Lyx-3}^WCUgb2N`3sJJUVZgst%*j%$WEm!96Tw~3=8r}gFj z(u*2ac6J<0%&h%FZYkf0OnD+7vv<;%SA-`IlQ>um;7UBkRxk!bd+4kIkeQB6vhM6h&bf@&B9_= z+gusY(Pg=KHkB6=NmLYEbT>Z~o{NNmXvW=IyuRhS4*&|#hc*`T^PwSyJE?(-Vgh?@ zM77IZ+n*jwlFncZ`p_#ruNQ>4-6(J!ZdxFzI_7b_kKpayT}6)?9yBuJ-1L3H zpGFXfT*~OEdWR(P_#lV+!>Jd|y#!InjE@7~g!qNAtBUjjV$ zFWI9;vN@?lMz@HFh=(jF4qC4O03#|2UwL?8L7x=4P9E9a^ffEm^LBebwLo3~VF*|r zLW6Po7~&_s-j(D^%goFKNQ6KbQ5mIF+(lbQ$D#4sBOLL>3vg%bS0Y$t%BLFt!AsVQ zroa9vz@=BFLS7SZ4aL9NcDznzpwSbKDa0?T^KC*)}*z}X%V!m>qdq*NTFwY{W6FtTK@!X^_uRk3M#3o32%}J61n3$T| zfcI1Sl<^bo#rQkB7BgyUNw|3F@0>-_b&N>#NQOvtI_#G*F)_x!n5dHI5CeHyL>W^S zCE@lNKd6u#zCAzbl{g1+M{E=TCWeX%a=zL``|&XfB1BjHa4sbJP;=rVLXgsfJ=x#G8DM}Rn$E% zAw%USzzr}Ox^LeypKx$fmtC(nmq1iM32*=TlaFok*HAeLuIyz3QY35jN!Qf!HSVVg zu>inyR+8u~JhjwG_E_Cp#G(P`6kb9R^wdP0y2sT|F{Za!0VxRr2gH+yS{ z5pf~8h@F7jWrqlMqAVwc=L?g=A|=^gofyZfid^R@{3uCwC%=IyXw!Lm?nQKBEwt)Q z`&#@c+V5Fp5d9E_yQjx@gC&mbYG0HE{wqwju| zy9Z?`HWKe^xX$oFjTamw$}?kF5GzN<>CThU%o}C{m(K$CpyMoea)q=A%-n@>z1kY~ zYTu86BWX#xZi-&uY$e{%7W97UEgh%(Gn?LwrC+~Zle322f($fcT6qG9IN^V8eQc5)KiU);U5WsyvO1{B3>JBFD9mhx!@yo`+H-e%-0n{`&GHjTG6^*qK#8IBx*hr$I zIztt1DGzDJqH>b?Kj`k!;SlCEb{RXIVrKp*G?4i zBbJBo0|-KzW6vM+KP#;AqK0!x-2VP!tdek?@PL;W(Q*z?-rXIU*4&+)SVSro_%tRm zotSZ^+?+j=7RZrNfG;|hpXFTQ>nrpYT%`UOK%c(d%y!LtbvUj3ZhNK5rMu27v)a>> zmAlnKqk1L(Y(QGhU*FCwR(kJjs^Ry`%qLk*iz-&+g{IF*u?4(je|`BaHsg%NubJk2 zS1?8aO^j%acHg*;mfP`C3C~j*;i#@>;%GUuucXiM=&qqV6%`FC&a>d(p1m2{%_x|a zG%RlD%XV2Ks{8T!g7ME`^s|<3LT4#cSenn%SP2HZ;e@1b$!Uy{8P3#p*ov=x_A3Qk zIyrgmOOx8otFKk_W0rBqbS4TZ7`CXz;cRY(+Eh`6VKP6(Vf7`94 z(EF=k^QY*HbwgEZbtD5%F_j07Zjb%`!V-S{)$vy(OKMIL`aW_Y+hzMZ*N1F3%i9)T zT&SJL;x2SOoDGgy>@+8@Y{fjPlqKw2-(G&_xqlYQJos^=FG&~>bZgCRox<1KFYqOJ zuP(Mh-_r>DtaPmaN{V`pa`9vGF$;Y_p3dx@oSOREy8E+4J*I4K!{{%y7hNSbgM1vS(!f;f7J| z&pRBntBbKV-n)yfst-)+9o2QIeovuAjR66c|~YGbHepVks^+)-smDU z5}V8{`HCK!;1i#%Rx0e^{5IEU0?an}cAm#o#5SsX-V$qX_r4eV%NCu5mFd;aTOPdS zfhaBfa9Q1^Gb~mv_c*v9{#wgExrOob=k~0wIsblJSU)nX$R6D5Old9kd5=FKRH{6_Nf zsW|cQPV7+jWA=tG^?lA75shCz8g{(3nOjO^+DM^iK*T)$>$rsiab>3%HPz80Uo zwwO$Z8a!%l=goggh!yZWrbrh!jLHwJkSv3<2AO|-Z;ko=>r%{Ai!+^ZnMV33C``;E z$DG6@2DO>a=Ba@na@%rCAl~yKq$CtXV;=6%AFt^2-*d27S3b>~=L;PU#qFO1niupr zMd2_N60b)D9BPI--g&s2F>ahb)p4f)%88Yq3&qFmGPXbXV?ol8`0Rb*vuoz8;KrV; z7Qt3~WquhwTD`tJH~9pv=fB%C@pb@tXcPeW)>c=QUl~S~+oE+_Z)PF71eu{Gm#^FN z-O%th&?|5!PD^&C)-Z1Hymp@CPA)9YXsH;sFWeHud+MmI zDy%8-agO&sKAMU}$$*|cIWp76xz6F0CcuSgwQNZ=2#yk6p+V9H9Ake$Fbi>E*}^WZ z2I$_@?U8+MgcMI8JL8RkPaTZ}I!FJkCCu|yb#Uo)S5(bJj`482YLe=05LEJI*!$~S z`y}V7jqj$bWEm?K;`CVqI@&GL|kpbWs&kB*+?s3~Qpr9<-QbK)2|& zz|kD{SEukxJA)mR*#kw57^oQvEJ)_p^uCFRZ)eY)eKOrzBH9iK7H0~8>S{{uC)?l@YFuh z&*jInep9Z!uJolh30S0>zCiRv3Malz!1u{ zM3k;R?Spbeg+DD)esHIp6nu;dcXxNm&%dindFEopthF4eBx!A6gK10vS=Y(PE#B2; zn~@6*P?gC*q;|;SE=>D*t4qOej_%iwVImo(iereB)SKq+iy!X83^XJC*4;@_-z5qk z(elru_WP@8`d&0=6^80fnY5CVx1B9?&KY&H(ebh`W&#N>nNwF>|B&`f3F z1+m+u4#e8JN95e~AG%TMAQgT#@%rp1?PXwgoFpXecvW}+Ir}{sh5EAQ(pO(ku9g0| z&ob_0t<#K8TAw{0X`}W!I|O#R$zSgCC>bi!?N$3zf;Q*yHsfihLWRRKrN?veU0R%a zcn}&?7PoQUcjfu(ZsxA7zxueUD0FrSef2`L3UWX$=PVtX(nh+#k;x8mmNMBycBT}Z zuH668!57*%W3m{WN>kJ&{*3y0?EXRhTtD6;icDgz;v^UztW5Pgd^i-34(URFN6;-s z&s7>I(ig6t)Wv<#;2C%U4;k;(sd73HJyW>IUH&sKmYK8ki^XD)L(wqIuKGnhFZX_k z%izOpk#wu377hy$++qyn+Duq@jyNaeq0NGuW;E;=JD1psAWehu?EPE(^X-J%UYs5*O zEc-O?Opd+GM%V=@E7J7jXy|3@<;li?e`Bh$yoMOi3E!pRHB!LJ4TvHl?P$e3|7E+%Z-)Z4 zxGc`k=+|SE%O&9?!HD|d>e23ODj^xr!8l!)qPi1J>&Dj|LLY|cr!nGYLdTN&lI?DBXSXwzcH5U4o6hTIcb|Im|&V7%#JSkWBZ& zI6n&p`&!kzwvR#nCW z4UccZIc$o7Z`w4tgRkCVfwMnHd_0>xVfB5r;0PhazebL)cYM%(_aH&4c`eNo;GulaesquvJBr6wI(2%hMa!F* zHfzGtCyI%pXR5A+gm#iz(5*}d?FYNxiO6bw_|5g*YwzO~e#mIu?^3?dqzdDH#fKmC zzqoY82-rKtOV9)WQ>7XLRY2oBBkNCVR zN6mxl*pX=$%Q>Hy0|IgkS({0jOXVRTivlz9vJGggA>w0JoEP6G|DGNspn zZY5LB2-#90aY4!FAXa@4(&xF6F98Q}obHz$Gkm?h`Z@{$UVU~rhrF{0C-H^FEnh>e zGTj=y;PqIk-dIYSsolU_4bbz!Fi z(^F}ey^+mn%I&Wo%|N}epu0bQ7EA`p=?RjEGKeJU4?h32Vfw8cic#=q%6RJY?0gJY zh=@x8SG;E$C0fWTRCFT#ER|xi5z)a$>&;TT;gV<)x(3vmgbdYy%c;C39>0C2SN@x? zYR7qUB0;!3e_UeQaPHC_gDM}`COo^(FXf zfA~xtSrrPcdol`dC}4+d8_e5(1*LL+wO;4@f8)?xJ66$K@sq+Z*Z6!S_eBUlj|6Pi zsR8BXnizy3F1qOwNl=@VQ4}hX)072J|Iz5LDOCuL~@0^MZcC9RY8HZ~-_DppdD z3yFCx!vb(LF-aa4x8ntsu&Hj znbYh`HJ|*e!^qqtq$>3#7uqDgi7tuYPjc{XXS9N!)}aCv5xn?IXK8(=bG8$=kML59 zMmAaF<&p^xDQS8*&rECz#yC3|C!&{jd~x;F&kG1YlF#EUBM`+oPKh5@NCXoR#a(LI zl|rrg#RJQr)~?*7kf0Z25SP1->3!QOr-E2DXyx0=85QCxe}6MMB_@q7Kz_wEFE|9IDm<8Q2i;HLm@_R#XTVPSu&BVm>aL(a3q{I zumLbSS4BXFm%+nj(Q<^i&EeWd23H#KCF95RhmPoo2z2=Ql23o5Hu$+JM~+?@TUO4P z4V-j&?Va|jS2>L*idcVyG^<~3NE-qW840D(mp zNK>2@)(^!s+o+>Ho-84{~=o8)z%L01La=QY0adDEaLX z#sMC6`i;p*jslAA#2Lu35ZD4)P??Xj*p#B%J0Q`dL%mRD6y$IVaJ*Q2w~eMCnWX!} zd?;U|AYFs~Ha$WjRLExf2ZW3l)B$O)&*BzNASr)83WN)@KdMzM0y+&S?A3_UmL}w4 z8*QP>;gIeNYG>{9v8cq61*h;>5l_t!kauUh5)SnzJYQMqj97Y#*y#=(PB%tRR^bE? zom&dQ_gw~YyiwsTeaU>u=09cv{5NS$sQ|ecrO%(o0(FY62~-FZIEq*g%aV;qdcXE7 zmfkT&8TEOw>XFJ1v8Kd?@z^kimS}1vy2$exui#GaXjyBmZKc<(pI&bB*3Lb28l~YS zq>T*lQKc=u!YycKj}ExE6LN4!5ql~H|eF-q6cv~Dnc)p80My#5E zTb`De0v$mg%@t(uY_EHR+FsfoSE8o@wS^ONemT}I_FyhdHaOr<48q`MAk!Gnri)QY z@*4H=J4{3mWuHDruDbL0QzQ=y!7vCv|MGla*E4i7dnuYhiA}eb+neZ%(eq+M(+@L% z5Ve4hN9pymrj?e%tUu+a^Dqx}Re++xC2al1_tONSP7|9SOoBt3?>7F+rx^Dqcwz1p z2du7ot4ycgYMVMDGj9>+e%#UUQ&fTo6vJaVNfy^%vIwc^guJYJJxLsAE}US==nTy^>+rU!>uY_6gD!LFX!@{eBzLY%DA+ z$x)izI)C5txdH6pev$nUATN(>?#?Y=3Oanl2nq3@zx_?(xC6TSyRo>4CO-f+(&oMz zPbXffTW*Z5iCl7t>j#?xO_jb121Z2ArYHO=pB1MXs}PEZP5-7He<7(d&edEa3kS^J zkQl+ZoF^3oI-f?8p1Xg=$LC-xqbKSicyG$R-TC6!<2{3;P_PQ=xbHz0cgh2$&pMjm z#jT^sEv!*wPU4|*NVy%vx)0|eykyf&6;%f zQ1jFN+7DZqU48P;5HTFyz&n-+%;9tWpG}(rV9|@OA_05;*JoJIXIO3w5u~oT!L%G1WUlc`!oaaXk|<=$3?xbMU(baPhd|-IIfqO#v7;7MdY-Rw z2=BXqHM9+N4}1Kq-afFjEp47spfWBFOQ_&=x2ebaSP9Ax!w^2yOgb3;BgcPBE(ByIlWW?;l2-Ldbt1(GyPU-3Ixa&fF?YlDa_a^(# zQ-?SzEC!rq_>$}kpZWe-l$L=zqD9upHEg=#dzN;M?@Fn!NNHn%LW3q{ z*J{N$jgIB2kqu`*BW}&sxs=Glsc@;uf~t@AsJ%fH4wu%EA7L!b*VX-iixTHOf{!xR zJA!0c3s;UZ(F?j38>?vFMJ?iqOEPYzaE+%b^>W8Hl8)(m6|8*x*y3Tb49MTZ9InG^ z_COvV6wuV_P4gEL=;B4KNJ6kp#b&SwQk>=Cveb5n@f|0^ehlf9-50bZSxvHlf4nlE z(RL~(J272(wg01wn8?x#bp4;c``AgtC7!i#hiypy>g&zj!Hx0%?tTVc{L-f6h2-Y8 zKC=Far-y(fyPIUMoZaiuIkr@o5JxZ*k5TN`L#EZ>&5! zN0BzQNxau4tpAJ*C6T#1d;MigoVpAR1%JjsyqIq53x8YEZZhwMB(p8YELqM*u<5h~ zk5W$d15jpXiBB1B7kAzhWj}u5_)yr6yoVEt>P2vRoW~ zBs`vVa~)6nd5!LYM&gixAktLTdw|XV0EI3l4!L^_kVRMs6|lP=o|L zuv3;mmf*kOBW-}|u2wxiOZU46YIOikye2%hHNGdC^1Ut}MIIB_mJH<{#r0-S#<^-{ z$F#ytnBs#n*cSEQZRzl4Appf=OAgG#qr;>#zV$&&t4K3CF9q;o>}mc2ur>&boBE{1 zzRzv2_S1o#`3M7exg~%mt3O=WJ0tJrUCCeS9yKiMitGx!|C;0eYyPw(xe3iVy^;y6 z^1f=z>YTV9lb@X{Wo+GRl=}a`%u~rID80Le?ewT4cg{5{lYZGMXfS%HW`6w_wl!?m zV8oB#87;9IkivVf$aFU)^pK%uoE!U&pl;2I=4W)s12+x7jcy{1R3TBQIS0!n7`P|*qsUV?183;>CI zfnb){@Ruf|=#I%F)SG09Jl&ZrwLS;pN94TLlU_l<#fV|nz!393S`R}fn&k$$^M9I! ze3>dGT9#r?;kD7?6*l=rcy$WIT>vYv574SZk=b(;zt)0cis$F9E2TCwylDeLt!(;@ zDS(vHxaQUhTs);z;R`@6^7snov)(kZv;($Nny&&*umJMgxdc!o5ll}2KGW9$WPEVL z=s6pVyQ4}=IetD}-d>}5BIcbEGJ|HRcg(D;tel{PVI-0@s&d5M{gd{cwHU?nreTVm>8l_@jwTs$*nd%jQ4bahq6YYR%A8%gz?H3su$IY0C7@d06fg8_733HfeN2j zfU3GK_>z}dr_xe`P1-2B>F%};6teB0qNj(cfg_9pm;i9mjtoK5U8J_4Jmn0evt?@Y zGCY7JF@{S}lfjyGK{q)>r-7Wry=T|n{#DH97NpKUyeI`;aPJo?c)3ZB4w>y_X@ z=Q+opdzuMfPRO?HTy1PR`$K|G9&F$g0hju#6`aIIT|LHwhV4EHFO`T7unE>9Ibk!~ zdq5N(P`Gb^^3^QcN3D{Dy$v2S2d@d()7ixD0!HwM`0lKnjGU3suveX1I>AT1^JMd#yYe=^^I2wvTX zh!)t^Xr2+y?QY%P%jlQ9b|ejYweOi8F*I+3crEQL(6I6l|A_RU6pGIU)Wj!%nl}-) zRJn>1KC}Ej7@@epBBj<^yuI5*inPR5NcTPr@V?)nh&Ps0LOtYHI>MqAJ*aZXT&WXV zx~KQStVl4$5xD}cfAj?hC=#66vr14Azf*l)?XZGBbx$f8)Gud3+RLVJ`fK-cD9#s1 zZel$YGtlANMr}=NoD{G84k@)<==jeKnzE0CnD2tj(1&5q4G3p7w+|3!Cpj+2Qj)oO z<=^lp8Iyq?rlEN%^rng=@8O*tr1yZUtVtW>0tx?3*?i)%GabA9%=muvfng{toHDo# zKuujD>2}DE2@5sHVLQ)9ixpCZ6NQbAAMwqV89ijdq;u(FX?ODc29`rn?;}4$)XHR| zP+c4dBHg@pX9afo-H*)+lg2*pfa6m!JO~9+U$>DU=bDc*ok<|BW72n*KAA& zjjF8^b>R`~ZQ+dYfl**C!ZiQBaH*7JxoO`om(Q}iy(XYI^GLxPb_zRQ^TB3*Wh%H! zBCs?oSsa7`q34?miubL;>y0&_@9RFKk$5R!#r zJ4`$FW!Tf2RtR#mmjn%_YGPi)$}YHpOlZP|T=xxlkxbkQqqwu|eX4={8cQ1P8|TVN zSASe;*4-Ureb1qtTlP0nK9$r-kJLO5thrmLP)w%UID_9${tygs1@J#61z2Xymjl%4 z_nP_YpB}|{9pMfu5CYtYHIQL5fp%}BO^d#xM1mve|LnD((5 z2$`@}x_{>)wsk2>sj*=cmPB*dKiI+-y1si$9{c-EyU1!Q05au;(KnOa`AAD@!wH-9qD+wt)0IGo>sCyWdM%N zwbkUqlvM!kMp{#gyTgL9&)76&CnCLhK-+NE^yuK>_Tv?yUNhgzI96>ERvw3C zDZfGMJk27~hEUP@dMFhcaXHlBSQp&L-Cxb;>jhSRhvHJJV>RL4-Q=6M@n!2r7q>OJ zX2p2nZAXjON53Wflbg6~oQCoC_u(fxwK$vlRd6HGt`Dhx>duSFQZLpKNGvD#dlRve z5laROmDzo|&B<)Nwsd6de{|A;hNpANal)V;s~p+--6uK#05jv+^+jWx6~o&AIo-90 zS@3@FhE12^BBgnx>0fFXtlf0Ki`aQ>gmy%sOxgN{-mv*wb0Pw$f1%W|55So6-wkR< zz`2$||NJpO(5|x8{rpGx$3G_qo^<8lH&jPj^H)-}e(1i%*kFlPkv*gLV%#x9GVuGx zJs5LtVYX35Uh+n4rW8z3Q>D0)iTILW3iHLb`niw%(4inPZ7Ql}Xy3Qr zxp8P31#tJw_!DAgFq8gmL_mgZ9peOK&%lTuIT-rsJ=@^H z_tPx8;Cn3u2j>pQ!=+he4nNT0T4(_!LtIsvT0_N_*)QrP9rbHnsSK1^1ixeSTCq5x z@P>glS} z7s8pCacOx6-MqcmWt?(|q95Z2BF^*B<#ynpuEy%=>yxqgMSuSFTDu461JZ8_XGA~^ zKaiQXUdH#xr@Y?t&H{D5mfeNkis6(60sc;nT2?j^1jk0Jv8k!4wl*q2hMPSuF7EmX zHM;56#^`9w`c_a-(91}y34D?$2qJ{rM=W;1>l@&2FqH4Q79=WF2@A+-a3HpY^<;E>+G|bJ4H^_R9APM5skEGWzjg0 z`!l7F@Eg65{r$7H)-p@hL7bPcBT(`QIeBk?Kj2Ws?_#{*e(LdMOAkS3LM5l${KYA& zgs-*P2T~eCbWk8Jr|m90adM>d^UtcPFiyIWV(Egl7D@zs6WH_@1_p*JZmfl{X&@*u zHKh_b9Gnx;7L~1zKiTXpSTVYJaZqDzYg?--_Y`U(cO>vOoZplP{VwJH{9?IN{=P$H z%N`j;=~}X+0Q@*wS8JP@^=LXYS%TP!&;zl0|9u&$5W#$nfO)I|BRN(A+`hNR^~<8? zpkg*ksQ>%^4lLdeQeT8tD5@XR7pu^T;?GS_e=h4)5n6e#Syf)H>K^ypB$SijC6LG{ z6%rNgcP^49OM1w)Y6eOq*1mkLaLL`v%QkaN(u!0fZT03g3WN{eoOL~XISyzR4h-1? zqG5IvEc)+Tf`NsQP*M=`PK9=H%eCqDsL5BC<1s1QaqqgZ4E8wfB!lW>1Z8BW=NzDX zjsUNH&6J2G0&E-tw+dzC?-{8pE)8gB;wx2gc=jT`ySAx`630;tm$lCQQX+L7lXi7MJ>=>d4H@%!WBX=$Yy( z_&;yO0JApL+!9RLTal-^-7e<*I^EuH$m=P{yNI7)IJuU+fQKq=v=?Y_(5?Nvo=As| zy1KhhXFykjzfL*|L5b-Djp<{LB=lUOb{ z3Eh=1cyO|juaIIwm`v!zT`Gn+U527`{Ku_)>$@FktF@0_wqcsn>Ch=g9@=~!b>@jo zuOL{1vh5N9Q(uS=JtS8(Z&Y9G^?y!Sr-RR%IaKW#0;7g9$5SEhZ3^N%B<*B|W_@mp zs)zfz0$5d0&dH!ZF%P*76t$#DRagpfr>tT&KVgTQ-KlKrK+RA!2+Gj?Svq7Ml$r_| zTNB2O)#j#C57wIlh^(C*4o38CeROnm0=l0%3v1G}zS0unL?)!qf9sdn=;IaL)XUaZ z$uyY2^5LTHD`l-X9uu5Ic3L#~Y}{B=D|S&}v|nnxwgdO` z0%c}e>hEt$25Rrol%U0qNZXScPE0r_^L^6(th_Nz^#b{(C z19=N41q|-BDrFI5e%u6r=Qy#mWWe=#vK4E)Har&DSV+#k_#tiBX3J{?Qm&SA;$^{h zN9Lh?H{8emZy%IQ(BpWKp0b+IE|bxb;Wpv*J?zZVe^b+ub9B$PZ==Q6Opdi0!RuPz~IacjecYrO?j<+T8z1pd!ktzc>L zNeK0zq;L6bvOh7xfri@dGrxCu$zpKHTrj&zc)@_E)I-3mxmRcaEcL%(5kTgyrnnD9 z{7>Q$|3$1g;d0`?t#hol^3O7Uw{X>p@6hATQMR1yn|kfK$9Gx(^v3o*q;oZF$Kxzy zrR2Oxkma6I1p4-g=X$wL`dqPkc>n|^0D;TC!m|41(jTBr0O&>Eq3dNZK3-npM~}er z`H3A26Ti$Mx9*?TKu(j*$`xo=^57=(M|A9B+%3PpT_wAKZ(R&$9|*PG9|06{X1C<; zDF=yxs_=^|yLU#0XB%%0^%#6kzj}I=y?30|{)dIMKdTJialQf`U{Un#X|#j?(pU*N zlW^N*gL4D3Yghi;zX2I#xRV5=6UgX{Ty3rmuPr{DIE)wTs>6A$U!4OYC^vuOEZT8I zYD;RjJ}$GfF8oBdo$N;wbJv@Eaz5bN{JTj6g@~o}m{oPP_i489T)5TW&NkPBz>zCZ z!6edHh&jKRI1I~HvZ|iwj%WYNRpTfD7Gl$mX1rsmgSfEk$l%H{D!Lr1z&!-8Qu9rRB zzQML0wY`c8!2M~4ihxE%`-(a+Srb0yU;XkviY2aQS*?{=?ebx`*uLy(#(mul56Ghh z<6`R%A5IwECTz(o_lC2xSmq1oSOr~kK#S%j@_akUBPL;8-1vKGFzRag9n0zu^kCeI z-=;2XTUCn!@h)F9HkA@mJuNMB2rC;~J`}-sT4ukFR7g1b?dU#GR^DEmY&$T$-=FwS zYZYp&wHgwF_(LU?W^Ef!nD%}7Q4sFNOX;iOGA;vS?fknCfAa72j&jElzWcw;13o|T zOg&X#A9usAaVG%rH{Xad{{hOnyX24WUyqm`K+(aj2PX+raa-2H-nme+u2>{%K?Z=b zE0@cDz_phU1O2f>EWIeXEEwC|)PZt>{7;yA7H&TB5!I(A@)5NKd3p@5vKCXcSte`( zHJ-k{zLS#^=eiq5Qv_ewGb?IItGJx`f8U)_NDrXl%EwtoS%VKUYx zmV7z#1H>)3kP*OTCJv=<7 z2`Si6C?gh^+Fb1HO3)U*e&i_C^?(|frN3NtO<6*#=~^~~yIwxkgsT(W39KVDKN#O1 zA0H1Oq?l=e6N*x_NF&~@EeQ4a%-xJv%$3}-)f^_zKk}Zty1wB{yBga{(m$YD$?A9* z9`S@yl!A)FSgXSW8BWjUcmAH>4UmZdb<}+?zwK|5vMDW9A-BJ*=ELQ3AZbayo4OcE z)APE3;`fw4eT1f`uzs)Z4mb#hh#gyOg+f$Hp9Sqz}Uz{E_T;li+ zaPfve4DAeEjtrp}b;2#UFW^2(9T-AdoY2}XL=E%6qYBu&JJ5LbkgxR93e@O3R@LW- zhYs8t|7_~nI9>OZ>5!k znSI7Bj0p85QOdVPyprFNFPWBxqT9|dQ*e>>f)zw>Yk0R0+>3bYekv`@&Qm1gHW{52 zSCWmh>)|^t?zdpRVT)B)e;u1Ye~Vbrj*;g_;L)I04lRfNEfLZ26J*f62HHxyAC|Ow zerT)G5PZ3GcLaNCUilWq_*#-2R6^IKh{#b&)75d{UUuBi{{SMTnCRGgc;xlgLz(SI zrUQv55f>qkiWW|GE@nPeK3n$o$MaZD0p0)i1cuZTs-PJdMy;)X$V>46dcvAa>j4$Aci1*R;8rjl@olHs- zzWeERhKQ`Q?Nq(#*!7p#9vAZZ*f@qa7G*yDpF}8drZ}cJ{ubXL*FzlqhQ})`8HiXF zO4`d_ug5YfVTp#;+WM@~6xif|adYX@OsR|g;HGnBa2@vl>glTEnqIrO3KGJkVK5XB z0i`4-N=zw1It8Rgim=fwaH&zFq+3cFhSDjFPAAgM=$?c$@2>a0cl&pr-_CQ+dCu>g z^L(H036U$GsraM@|jM;2P4IX8{&6j$V%*LTq zA~gFnON!H|@f}B{<-VO)s!xn+u|F%n(s|zgh#<02Dk=V&me6AXqn5*;m+>Uuz2MOj zsU5Y<58jx{1Pq8DenG#nJs~{ruj7O_@1!+*O$@BAl zusoku$;$S3ts?2!Da|bEM*E%cXsJuycZ830&upO&WsC6NX;BR0uBi6#JPfWf(=Hbk=DIIrp zFIl;xJA}F;U#4A@P+IXaLWegsePd%&S0^#gh}?)?;`-MS$hKxjXX|jHjD{rWKWBO* z$Xf-4cA`-7w^Fdh{E6=$c9kc+2&H@kZ6<_d3_&C>AlU2beIf>Sc58lv2J`MrM8E@> zR-juCB7xFGG*vU75$@4&glCFISLp~*1;=gOJ62ue2fs|~1eD3=XdsQ$q-QP?bEu+eSDmYW+R8tT=MR~Y)& zNpU=PB9#b7psGn_P;o(ZZX@fHr5=BFuBd*-(HV{sQ6By)+1j?B2LU#lF{a(BH%}G|YW{d9#;yBOBm3Fg9cs5#TcdT^ zG%cI@pF8W$9^Lnu0%4J0yN!91(KTZYTOan}51$74MZN2Wb|S$|2cet?k@BzaWznY* z-wr*SwcRYMSVOI9K`HrBP5t&Qed&7nO%s%8R2r;nH8$4vLwOUbTDKcoIE?q+re<`gac z6?Kq0;6G$pJ(fb3$RfvhUq$$6s`>Z5U&JzyP$ARv_swr7OiJ9Z#isTZQf=%bE?1aG z)XaCu#hTN9?b_k5aH1AD?AOw8z_MgE*vYvpw!v%5o*LPT6n?D? zU*x(_`qI0!bz@?jC>ADggCrmv0Yy91VW`n}f|v61<{UQ{?yXI5OLPVU{iW+JM$mCp z&k$Gter%vB`2+zYg#P|@z!kYO_O8i^#+)QZ? zQyyo7#+#0C;}p$@yNxfMmxRe;GTm-n9|}zFYggeTczR}=NhfH&PuTA|(ZAYDe!`&u zGswtiC|vl{X`anb)osd;%K8I0x+<@WdpqPNBoV$e6vCOr07jAvLf*Slm@$M9N?w7H z!xu@kakIZ;VY_YfoInT|Y+4#e+-PdU&z#3c=S{Ru27+JuOwY^P1o$rI4|VdkhPvz9aj#5I^=HK*@jf*HooPJ3$t_zOOHi|jh3dz z*0_u%=`vU{(B@e)aBw8fH8@#ZHc(hsoKD-CH0{qZRBm`)fw!INdk_W1_@ElwBLta!303dML>ti+#^|YV4UD@L{?Gzaj+G1GG90l#kLX(#|ZkxZea&Gh&mkqZA2> zGV#X0s|28+E{Ue2v|68I&+lsyPko=ccW&H!yY+D?+}unP-q}5ejBa5{pia=!Q0Lpy z72NrlvnBZEm|3a@cAYQN9T&|q1o3(FVSK1QO;zfABfx$YVc2v(@}cM|=9EDx2B4-0 z;v~6ss;#}d)VB1#A6@hrV<)C<*R7Q>Dm)g$Qn=Nr9y`>jCpq70Q^(=%a2aENc+T)E zY92wCnC)Ko-Szi9)|vGUcaKxG3AhU+%hHQ&dKvc-zczxe(8aRk*x2R1ho593oJOy; zK}0m7L){}P-Uizo&&PF&2*z{ekxOdpE@Q#{uRjbgx}DQ)7_D__@W?MtjM|~GCS9P) zO4MM*7eX^M2}3{^of0du9VDvOjv$WY?B6Bmu7S@oR#{z_ik?5YFR9Dy$?vo_hPHi5 zJZw;Yx?9mZ+w%vDc6iet z3zrH}Ez&--`f?2ELu3t!EY<}*t4_8|%XfPw5m>RD91IdU;b(@uN8uzvKCeibOA#gB zUsVi0--y1BvFN~xjD-;}j61v_>p)QP69TfaaFy;!f#h_6_t`mdROa(qo3**$(r!Z& z4u@VH!D9n?7i3gV@1{?*ULJ@bQld(JU6rmA5m57%~E8eLx6a)jZ+>@=XA zJB7DxDO!(@`g)Yc@$?Xa0uB_Qu3^a0p9Ct@{GJTaMQ-6DkxZxKbtV|eXrtEvEoFl^ z?7mbK#P>d&2l8bU5g&O%_A~6~23dURXz5QkF8OFmK=J^hUo96STt8GQR%fs@ONYlJ zdhExlU}jcAm28=vN82#jlpy)sHafpB*`R$e!wH7nfRE>*pyA7g3uCIfM`ETjGzOv)WQ?* z_`2IQg&;Ak%GRcW?9!Zqw2f$@wA@cGwUQDP?_#orTFBh2!d?U|^A|rx5rSkHg8?*O z7C}P9#-bHJ0y++6UX$JD61eLJ>KZ?F7E-mcK>JI_0IN!UtpvI+qoLcMQBS=pFNFEFgBQDB? zsU@$eR<0Co?lm>qoWT@W*enWOEcw(K-FyQ7{$`#wDc*E`$Xl@UpY(b+)K6;{h#}}+ z38vl|$H^$k@3)8_$HYXF4f?5xMy{W}?VG)C_`ZXbh(02Yo?aK^mrqFXn)UuKqmd6{ zgD&O$f(97p&r@<>WlD-ZgvNB=G)lF=T%Vr*CkEr6_WI)0q`*|^orrdK$vY*{=AH5_ zEPg5GlFYP(&ct_^B~P+%>(JX>cRyt3>NAN?4hHi!9n+miis2*a-J7yNPmsI^pA@Gl z`bMj|vUJ~oXIrcH`Xtv}MkckVj*-FCH2;W#zHVP(!}6J~qMxUwy?24?gDswl@u#jw zZpZ5npZkc5s~b;$IPWT8@wqGr$@JPnN7Etih;xGQUy>yg1Sy#^A%be}1!YI;45Cs5 zXpe@$VAuZOfwHO-%P>a2s>bHPy=#;FCtmyTh+;nb<1_Vu@#0}RpZ?hl+mwo}wB#FY zV_1zrFQWUef2yJ$#OXP_P@8*zC~)Go-edoBN8U2j71&Lo2zNt`pb8rAd+$)??yA+R z7cfUaxOZxfQ;yWcE+gDjzCPHGEu05Me%q;w>f_?hHKXg_ks9%x?XL?-F-{o%Ql!M4 zU?GdsFI<_Pn`#sgAD8Kxt`ne2eqn|F9FNtR0c}G-YLs(QgqmC^|E!&ulYE@M8Lc7! zV1y|40<&}MocI@9UDcXgt=6`lji9}wL%2tow$nBdmuz^YEDMen*UtQ8c4BpYv=MsSDk#pBp!O1)=A3_YC3w>y&Tne70Va|LU*_4RPK@!N8sSqW^>j5fbQWbZ zza0VKY9;`O{l*|L4~e;4%Ba#rTkU-FzvPePxCY&@nrZlXv!YG65>{KteYIP`Cng=D zr0``i&zbDp3>~^PZ;r+TA708-={v7dKz3y%??25UHBM}-9?rb#bLP-07~>zje6M&l zen8fe{KinyR{yjxrGK9J4R{UfN~Wtb^rYMvA7E^EQ)BnC{5sS}ti5jej@TopZMf2% zPfI&_Qd_PUE9eW+O#c+gb}V0@C7L;(KNC@$nTV{7T=pS$=q9Hg!2I5Zl4Y|!Crq|O zH_mI_;zm-W2>Gm57GyFGZm@d!d|5R2V51daX;}R-qrt9JFjUAaS+u$_UcBe`dD-7O zJkzIfc?Wm;#1D0m@1EFn3|}lHE$NO*`@MN^DZb+Hk#z&1^t-2FS7}&kcSfm8CCzC5 z@RG&vN^az74}ui$UrRC7P!t|{LyVbpMXT|a%~Wu693KSNZ8t!@nP=}$2uKN@#Qz+B ziewbW_0XsRtZT=y8_1l`4oz`u9CA!!CH*H1nZ5T!Kd%SI+U|LyHrKJXYR?-lj){4) zJgV2{xX4(1CGd0`x{*w==W}nPO?(s|&@LE-FXOloZ+^PGVWl0|6xg58GWIwRj2x}5 zlbm=U<-#faZ;fB+3{u@h5#>*#py=)PA3k_Gqw6WBx$yaIEf){mLJhPd_&c6F>Z5q+ z&S!xARMW;5;>;bwjPX0cw3Qxb{^Z4wi(9ydKXMLFi(4rzye{GyO2Pd&P?AR)oVO8+ zy3ZYNh>pk49_V4vPs)6+j>6sN%9$WummQS{Ccdl7FMW){c?+N00pIrL?8cH;aAoeQ z3~zk5-=B?^()r?xwfC#KaFqrt;{!UrNVh-(DJo}u(fHYC8^Rk~vo3AJezP-8A=($H zjZYd-!r;1(XMnxQLqOBGI7`&J=XiIugQOpz_<7!N^Z(mcb+zU$?O={Vk&Q^Clxu*CWw7bxTW2Ma5p&fqSjq zEmtbk^y)0pv0Z{DGc(ysHvXXFN$V`OZ_Sm^rtVMd(RbHe_VX<3%~M`K)DZ|o<~YJL z?DgM!^)z8a`S-FQ7QZClJn>!|9HrrmS57q)^c-ujAp;MjzIkTu)_H>KH}N_fi;F^f z=%~`_C2?=uoTLfRIgo#`k63x39ht{e1Y>_@v@?u!m|+S6PNSQ0~T-ZowR#nlhuDRtWv+jX# zYBYubdEdeXl6yWNYb9gO{{J3a4COS~E;{$?^y>u?V6iD4M=0(pCkUh1`(O_IM|Il> zYLbyD;2Z&nD7h~C1RFqQrd@%ybZAghkECZyq*Xj}-IzJ}n2X4qVLP~DYn~H#`c@K1 z+~W8X$CBaI75a6^Yi&SlPs(dOMY7RVMF~rYVXN1i!Q)Em9$nZ^qO=a0Ax>4UM*k^{ zc!L*I6T$Jxu`GfE4^6*AMplto4SmJ0K(@&GfY35Y@gW_6pyZuLtsQX2qgyhE%1V^Q z4yg29*;q9FV}u6zT+bX?| zHfLsL=4e`{bO~+P=z{`7OY1=-0F1sITG5i)+Z4TUc<^NLh_&Dxibm!L!ZSw5xiU3; zH1kx%s%PsFDgA`4^faSUhh~p)F`E%-RxifIq7)ZBL$<994Z@eHk*56|g+wLQcEVX+ zySK+y{_7x;I(`IjspQF|2~@p$5l3k2ebO8(r;WeD8cAqY2}YE`sYwPirE6z%pva~P zJ`hnshBsAE^5}(XZObTJNB0O-+`H~O2a4G8=OWB)o5qP-j|)ldxF}NHo@@K^n78}U zd-?OBV#qe-ENZa~guY*@H7r@dxIGV6ULfm94VV5q40QN)BXB)Zh5!|ckI$9xXxpa~ z8>QvtU5f&EaatyA-!`)H5t_ls*&pD87Uh(xSIJHaAaD!b95)hBx@)dITU2;ge`Ut_ z<$+-M=fXMvCIcq%E9-fi--=cWn#|-|reefgPQ{*mo=JH%TiY(4vciO*t`HON{<1;S z)>`N-6Umbtn?LEzQmar7V_K4j-h2(T=^dStp7lnlAamA-U!-0kc&4Z_y~?GAjr>HC zAJViWgq5t!vKD|@)X?xwq4Lrb)GIK#!_pwKz}ZVFgP_EVM*p6;>t4Si6HnbmsTlj^ z^4nZMxyQTc=qhB)DLVlF1(v^CeBHV_7G}u3to>-{o-gkDL^WCl@mZS{-?=}V_8TmTVV7^(;0q0?Xa~8 zZ5l1VFVA>GH4OR-#nItDEavjcX(0-``<5H|f|9KLrR;GR%1AI>n-j+{Ar7i3EH7$4 z_YY|}Wc>N{dSB1VyLTtjd2^}8+J~+&hu6W*THl%uy&+`!?foN1oX%4z+yL20Odi?4 z$!EaHmPw^u-O(}1ND?_>8e_%$_3I`FH#fIBds?%S=CD<{^vD@)C z)vcTtth$ke52V#YZIeJ~yh6YnmUQ+l2Uq%QCLiQl(Glk}XZl0ATe%FznV9Ogd;Zqx z?zp(&X1#sfb*(#5Doh>Aou1~)Yw7i{$RzloY=Bq*EgOax6y{<-YbUMG1 zvUT7G(Z=UysIK*Poj@Lkg(>Piph-W;Zf7RxZeMheEdr`?lS8ZxU)Z2)L%_WFCpg7< z0c#_?#H6sM;`G3v zFr12ASYIs^=q?9D;AJeW!b43RQ7_W*k!FI@OgSus)?y0V~4#ywqxh^BH+A^E@rxf)>rWr(_L1evo2DUF2hq(WnR{T=iN zx-kSEY%ZJ1*MUT|!~nEY}nh6M^q&2V=L*eDQL z+5K5moP=0K5Y}i>9U5hseJ2S#P%trt!dpRsCOG+imBZ3c8ZJInD{|VBcPqVsXV4G=@jcX{h9ns zQGk;BH~!}c7IoiN!(!AQm;Rx^#@|vD_^_j%Mn+7qqmia<4bRh5!HXnT^dks(F%{7x z>EZc*o$z*$Wr$UTI}0Q1$M=sC>)@GrtuKP`*S`1K4s`yt#r=q&I+vv?HS)Evee9}3 nX6(b{cfrIA3HzGd(`5kA(E>ve;agFa#RnqUf?xtkI+XSBVyp1MUUMn+nO z0++=j9w7yAFGKN>kOC0JPmqAKe-8nZ+w1?`;Q!y@;xhEGF0$3-LlVQz>bArQ*nYmw z@$c(PCGcLx;i}JfA-e^QnxlB#@^J*R_RDDsJe!!v_l@9U^Pqe2gwnUO^59l1-N)!g z$+vavt$N^>qnTe8Ew3s}=+D&k`UA^uYpZ^{bhLrp0uNVBTxObQJq(9jJ;px^e@Tqy=03Zm3Q|VS)|{sxiEJ5Za5XJ2 zH!M^_ejW11cc3l#qfA!y?BLB=r%RnK_fP~RD$0~9bw0o7VmJk@?@wDkNCF{TSbM)6 z>u{EOb;Q(F4_9G}bD|%ZpDtGuyJPq4RI}-ZL`Td#lKSVg-7M4+q)>MjZt;@e*>)u0 zGikQgK*UWp&aO1Y6Aq5eh(t$n>-}}3>tNLif2k(&r^`(g0W`;B25XUq`ckch-L z8Sp-a{VH-*7rKVX3w>^t6qCI9Fnf?f?b+?FX}8b)Vl0nmXw9p=DdxY+Ck8&9 z;@RVc>f+_JEy+n8Zc}sf+pC>Nek`g2sYuv@E~AvNw5V+9{v-|XvYLa8-P80X zxpz+9x#;a2?BzvE=@w%e8vkiLtOSw8SWd@&s_S=J9G8FCjWYw?8 z-JjCG(GAR#$OS~bWU_RS%0>ILxVA7SoZg-i<>fL85Jv6)8?k(UqoH{2gIJ~fuD_F4*VT<3hg~^FdZqJW{^nzT&Ry4w%Ag)A;g?DVk?R zZqQ?P_r1V{+&9WKjHbpZDH8NCwUP=>JDO)yoo9J(K4Kk2emBn>{UB$Bv}0MLr8rewYYJi)LK21g1` zVPa0@6Cco~mnmtMMaF(-bm)x`yJ;{ORwmB%;`dl-!)9WrE3BP=$1VlaPwW-{WXww- zyr!|gi1pJCrM~KP8WJV*85~HwAF(?4H%Lp6@P*u(=eWh%f$TIo6YjS%Y6~N#P|*}= z@y?x0l+DKD& zFWk?=&y93d8&}ijr>i@iAA=NIVq1+odtZ3SCuuwUs^ugL{auMtR1JydT_|-3_enFE zc=UgA@~6=U_TmLDtTP@1itozm^nEhdk%Fyvy-s4>g7X$qfzGnftn*h*@K>Sq8pAA> zK7%YCSZKD2mk8Z?n#Eeqamc3^IifMy7#8g6aVPrt_QOZu6_%Q!<-F(EGGq}dd8``| z_D-O}(LyV^)g_H+p)>h#rra(I3hO4CA2VSVAb9E(C6Dmsnat!t31s8NI87!0-^jzQ z;(Se&rUBLc<`=_DLbj&coT^8#{%eqvWX+^AiI{T-PtZkE(C3onnK}Htg5swIv9zMY zRBt8cd}=0JY^vxmD^!G^?tX1%Iuk`YIyY4)WyDG>=$y5@5u9qxP^b%}+)A5jbz|*U zas%jI_uhB9MF~t7O>tv;zB~w1U<{eby`vx(pT92RtZ6Lk?2-wAVI9~*Oiv$BsY8E`)_$QLD0T7@G0uFB(1XR9@++||K~7XyER2c`upuwPZGO( zod3S3T{*rxvuvbJM@5>LHnHMcyrqZLdfu5IvH7mU69w<|MXmqikAvsouO8!V!$sfF z9`ne7m;Ts>>->@~b!J95rHDGqRr>RhI`K;J3~$~A-&ffmMZxp^NNb%1_0t&x%4**pg#0)E!^`ahlX1KZbZ>(;GE-yL=C z=xn)iVWWq_fQ%CTQ!o?)E*t|#GXNimR0&UjkLd@=c*x(S8*4DS91^I)ITEp>lYhYa_*+<^c;gV9MCF{lTX8QX69Lb z-K_?j7=9C7s%N_CE59^1raB^4B`i2~-ZpFgO|@d{BAg`^Ej(iMJMrnsh|FY-zo#Q} zs7L1S>-IU^0TKZP^T7IYw0Cswo`*N(rlIpvL}oV!(9bfaPx@7v${K>(s1yZn7Ng&! zOW0mIe*9qiqE_*!caE`u=Ow+aAS@L8%sEqLBN(GuZBYBx{cE#^!^yB2gjFevGbvQv zK4wDJDZ4Q@TKo~)dqb)m&wR2G$^nnM9_O&1Z6oVbyDrbEA6*)D=q%r3=u5`%eXRcP z872$epu`ZLiYB8E9a$N98sB6Sh0elHDBh_d8c)X#tyELL+Wii_tB}}f+tb>T(wQGT zJGUt6hGk-7Jb~=05Cwm_{)v(wiWy~BdWvV(P+Vuy51WXnelC4LMPL+tEj;(~_~XK^ zUHc3P|7*$>418E{;kJM5(8-WvVyq-p?>7ae@XWV+^e8tx=^UF4WxKm7hg!>w9iQw6 zzC%SJ1cTynDl*+`CdHgg8Cd++O8fNcHILpq8851`) zBAe~JU=?x`oT5(FHnqaPyT$%{oW@~v^wLq2)#Uh_uXTLedM@FK9rg7+CBqx_xB4ai zu#KZ8TBoZR*0P$GjISeENASslYdUDO-ALLrUXkSUO4+Nd1VhD_Ed*cpcK4hJj3!cj za;q>r?lds`u}fTDgKlx0ZwfiH*bbEs<)R3%3${6a9?NTk2FZ!(SQZAZK?Nse&{z%8 zkB5fXqwBhzVv{=Hl?D7RpqHO=Q5)2u__;uAd9pb zv|9uX`#R6tV(Gv62iwMg53URHt?m(`Sr$EUUBKlu`qO38FuA-!aY(_)LE){fi%5F8x5dnUXfV5m?31ZUl5gp_4;+&3;~aXK&K${L#~IsO}Qp}xz*9EAL=_`b0TnI*&XU0lO`P)dn4&gbb%I3Y!+OMV*5tRgy^x0a&&0yJZ|cp4uMn}ej;}#F(LYL^f_p}G!>)@Z=-n+B zJe-YemW_4s9pt@6cS;kI8tf@xU1W0*Xkn385{|F3g?X^dnN zV)d0Kh8lcZ6Mc}IHKhi%K*`$2A}`YyG1tmlT~@_DTu6zPm+j!uuIQlJEueJIk}9h`Mvu)ydp@)h+qsz8l&nC0W-}`i+@dD zVpohjV3qVUSM@qZ^xR|Nap`_-z>UQmNyhmB0)L6*8;C)O#;Cif;x{8SZy}+Yp^t_O zGx9q$1(!plnu*-$0z%wcaXHo7DgIQboDL`MhhQ^vEWsy*7|pL+CA%tP4x;bZ_4IlXX-rk!F`V>Rbr4DYT@^z%dO)-)FJ7Xxq zs>az_({{)u5*5I=t{#KK)OYB49^W4oVI%ZGV$D=;y@@@dDtaC(s&8_?UjMm(-SN@7 zL5*E3<1WcD-n!jv$d|tcN#?BvH|R>qU3;>uv1`F5w`h72ugw#v7ODEMN4~B9F5nu2 za*kNtLdGxkK`l+In}$B(FGy7GcO%h^EQRQ*f&B1bk=8$}Qq-31M+x|QUkH(-60WfO zHIGzEa-zT7ANvQ1zKFArt6T!Yki8X7`Z?WelEn1U4GKEBwXcZ)uA!GWOW;@U^I`mK z+w2bvuVHdIl!(%=>5~)5vOSdVNc7|5DHGD>6Yd&wYDu8W=&z)y(Vci?ZbfIQ) z6NE*0a$v2p#kB+*57CDV>4N^aK5H^i18XT{aN+xJ>w~fePJ{ICru(S93a8^#_zIwY zbt2^#j2fEwSH)m#|gFr#TatLS7;LixEx| z;<#UbmfFpP62R(x)cn z*hIfr^@8p8HCX6gQKE2HMW@8#-j;ntp-TR3U ze0Ko()<7Q=w&l%qemAL~*+!vw14)qBlh16UQccqVVaEr_wttV5tI2K){|;Slp0{Yb z9>a*YAi%0Sk-poq>vnS3vHCBk@7p@`LAx&P7t$-;hiTAX{(MQXNWZg(MddpAfZPvK0GbGhE&nNmK9ZMls%#$c`2pQ6dlmi#j?)0>{0j^JZ)C@s@_^$0uk(NL z+druHKd6%tu$gJGh0T=_-XVw$x<(O_Mrjd}9^nq~l`Q{F&qiFO6{T%5o@X_1c4;w( zPI&q1v=KmUFsoLNyW4y3qkD%3ME3()`W-q5{5g28A# zG^6@YG+B%CUr6|W8U(ogXM?{$_#etPw9o%~o;SY3i(L$KBnhTWbWzt)e!08H{O~FN zDP69qoUFGbm>s~d6Z*2}2M0h@~3*-`VpRWypR)rAIm^}^` ztQMdRH9@!k7HSF$n1VJ#kkA${Bi%o@qwUH7x3q`7D0Bf_9dMndZ?ERzH&ctEG5Jj} zV9kF373~i?ZXscg1Z@r)VPIG+vUE*Y&092`?}WLsrI^Zk9mc(cjCy>C4j>^5VLX z_r;>i+6A&%iHo1ilAEm7jT`mQHU49%B&(buUbTU$IRGy_$UU5|RTyq%Po1W7SvwI07n``%{EF>xeG%|Q%2^LpQ1H$6$= zX?-`T&ywi8;3Aw!7pGXH`)Ce7T$U*zP$OQwAfb;z)UJNMs2Ck5b!3Z^lXL!n812{E zi32|d(xe?91$O7zn=-x6_BYvBzF@Fpt)XP}n2QRxRLI-hQD(tWiq`2pNB;C<=IFIY zfk?4^8_tz)FrA|0=>cX@kOEqk02T*{XW!=@R2@mA4@LLT$I`bwc=q#}4yVH2TdNc@ zWPJvYeoNZ6bPo@;GLXoFCJp5Oum#>3l$@Iv-hl3LF`wAil1)v+8o}My@m5}KOP$~M zpTCTFWVtWz#^x_bF&A`KcfIQ>?7r_Mnss({Lo}bi*VLNPvp9zfiUb~N--7WTr_i@< zXNlIxuo9woe2D?fq*@vDynl(%5sY5*@@qBi6e}*)V%5ocWb?+E?W1eNh09>E{TWQhC5?6 z^@CtF&&ZY_eF2DIG~g?`nl_&DvqWV^LajwQZN&)7ceshNaopB^5^P7#jc}KPEn&#h zo_W(=@R7|CxU3dF=dpBTY7e^SKHC^b?%9)hI^u>L!!8DQJNzSby}!^bkVW3V4q8EA zkZ`!N{vu|3gH$*=PT&&qg<=yo1UG{6!8F#>utxGJi*%VVAA(XP?NQ; zNRsaxzrqO$)H5SS^dY80P5nL>hod|+`?rXT*(!i-9+Ox-ZVyDcg3VM~aO21@d0uCU z`Ba_7(JP$yL7Kc)RXAID?Wam*La{e;sYN|CX}W6iMLmy~&v(YDew{7g>qI))rdW*j zR70G&O z6or)qI&7~|bo5{UcB9{$*$yfQ%fJ3nvTcFrsj0!ozgc6w|CO;etIzoPG3op9DJXv< z^C`+tpJw-iu{I-u!jTXx^4w?->8rIE2|b7@`|YHgT%$dU-(gcEnS0@O6>=vLrcHFN z!AEgIl<9JlvnAxA)OHJT%qYjPJf#FCH8MonqpK}|nX1r`xOIi^&yI*)Pz1!!Z0{6g zXYo7Ek$`+@@$$w>1zt<024j%;9d|rkrZ>yO`{Z>{JB|73xTqjYyO5xP;LQt(`x~B$ zN7_LlulnK{Rs8O6FV<-T9~I@DwRoM~lyoYB{SXKBJ=Ffb-BHg&L{`+{wSKqPTiO18 zhkqL1L$5X!sKM*&%AX|Xs_F3^U)EX=+zLn7fb%INqr6RE6d}j!bab>bG&!MUu2=pM3B8oIunaa zjcC?Q6+au~S-B!~5x?I4PGf;fE3-UJOCV_)7i-aWcWvLm)n?k}mpM$VCDKimayqFG zB9iMr9wb(oB9LKQ$`Eo{^f_vck+>7gwVEt`oivk8iuj4a`Ir`J7D77EjVSx{8dU?5qol^tjc!w!d9j&%-7WlQaV&NM#lmd0=ze{)88 zdrA|NCUoL%Jwf9}I5k^tZlF>vjn{T8ukXHr7Y+kfLtfZ?Z>sDFig3zcl)=RI_>L1h z%DNuZ89?+~qJrcz?G-K|+I_hAFc^8NJ(ET^>$MEev5xQ5p{KZ(!!a__KrnAMWhaV2 ztd2=`yUa4iGSxdw&j^JKF&}uG0@X9^x9SP)O9Jl~A9t-rfvhF*O!7~E+t#EG5%An! z??G}*^II)J9X3hqM#R~bFDs(t7~OGtK5aV7j?R7*SEJEwj~iZ*iA}Q@B2Z;BrWHae z?q+_mH|Eir5gsbMd|`l%<;61@`^*jgT91m1vC=HWRpkf`^vh1xY*i|!Md30a%Ic@i z^0PLj+3DYfPEjj^#3nPU?_ha*+95rcM5Xq{5bit6v!wL~3?+ufOiAOud=|eCPCOu>@uCm(j1X%mBIinOB;W zC+B+Zc5_`rVcViw@Fcv_W;o-U3n!SQP41&79%8%u3;8IpO0*Il3$SqwiH+M=mYf;c zlR=53?NExR9~>y2=A4)py{6&^mIugG97;sL4+xh97ipw}LK4%nj4jrT+f2_3^QeX# zN&6!qJ2S-u^xbGK>Bh3Cnd?zEhHM9-E29lsF7nAW>kWoy@gnzSfo!Vm(~Bp`hv5?7iv<;Y=`=hIVhH`ioK}SYRhjMLZZ;?1Q$4nd%`Nb(b0M8!p;Z zX$2>bYodhLDFb;xwPjh zvp1qqgq&3_`9{pnMCv5wgUVMzWNv36h+@~U)v_3uvX3y?K!bKyv6ve@VZVu27J|p%i`?h ziI=wUonYff$sSJ#_zOg|^s{C%xH0T?6~s*MsO{cQf5h}yhs`gUjXG|FevY;I$GHn9 zSt6SJD+ZOdQikWcj8Bx|8v+%TkiQc+wti2Bh)+E2sPx`ojOdA>9!YSnr=hSG5!H(( z)mPqq?-S&ZLqOWgAO_FBQ+urqmlf6hq*feL{6g><_g*Du?=x$bqmc$X9HF<|AEgR^ zLM@R7DXgq559VsMH4@>^W|Qp(^Qd=MSyBo3nef$qJs$v{Z)-`8d)r3Q`_6E{p1!KC z(a74`NCt5nRGp*elVWq|t5z^`<-+390lW74)yL|F6)!c~)lI#uk_Uv?42jej0hOzy--YMhJ&f+&U{b?KYhdXt51?N>?gNQK0HZ!>HUZExZF$iWPP-D+@?$V^9@r{VF z^lQC{(d1tejoiC$3pIP-vW1FN*w!c4S z9j@q5Yd}wXnj$IrJWDi#Ux-)FJDi$M3%5N?+?tDmy+fnoYX=+|&Si`;NopBQ`zN zu%{oz^-)$S$oZUKB2%1EeTBIVLbz0khY|RBc!PfiX4=QIq9@yHnVW3O2nX50#iIj< zuDI+8Rggd}BKTyz_h8f4l~;ZMO!B5g<&7z!Dc4<1qIeTC84IAa=D4oFPqJDW^f(J4 zb@F{s!e`aY5UU?Pq5LK$*)J_YiMV8)&_YLg#qC$1mpMe=dl(y(Q^1{HU8;kx&JRri}OI|Wd=djPrc1g zKY{Uh3WdMp|2`VB_KHIh9;s?QZC#{#%VK4+Li`)oH3?S-H&G~~3LFOROHkzeY_!Zy ziB$TniSI|C>kq4!In=$Jzw`@VJumed208?}x#$Fsw~I$>YrLLgbU1BAB_fcf9_UBm zcIa;c60YjGW@PMRBbS;HVT}v%dTtzohVjqB0Tro~i8oq@!J)qJSsT@}Qei}KRB;7l zZ1?)#B=3<)&oB9&VL?u1es4ZZa*OBY=pPO)PgD28Dn4a+Fn$j5jb;_Zd3+L*@PICW+t(McTC3oao3GIh?z7x1K}GDDYmiEdbZfZ=ShvV#x$eZAg}~ir z+pnw!C)`JN&CSeKy8Gml(9;ZdMh+=C_E}PbLb3{HMKdR5cM?iy_C&tav9@oSME=+7 z!lp@>Tk21u(szZey4Jp>X|tQf4qsj_x#o-Oa8BZq?Hm`PGU`;>{~Upt<$SREs331E z1Yg?!^Qw4Pk}zO}y^%QCJXNg$%}7Nh+3dEWii!z^*!jt)K+#I&onVm_b0|c)pJ!nN zvtYxv{wbh!(XBc+I@HhK`n})Pdw72S&}u4>KIBv%iKc@Ba2)?0o&Snm|BFxfCyxDx zMD`z?hs6J8I$Zu2mGC>{IwDM48DL7@v27VEdx=unmqNm}5zr}NfHdIckG3eQJwk-N zF#&I6guYEl0vd8*%DlAt0^^HbtD!+cYR7sre08x`l71BgOVmzF0(gK}ZNpq>6OQl4 zf6^WBh<{WFdGc=nWI7<1hiCrc_YaQbID#|P3(l@eAIKcw(e&2uXwj6q&I$NbQw-@` z`Q1txqwqjL{LX_q)f)+%UBgasfj);jV??t@{O@NQNs?=>B_22f(&Wmv)gHI|_PcJ;{d;N(ib5a24S@2Pgxb|!ul3+Srkg7( zUx|s`o~-qZkL$ojl-lygZ6De!FG+(Bj*gla4k4hn{&3XYz3uH@>*~HQ{mU1K@1uno z6MHZR{^q8pInNx2YEco91jPhV6{dtQM%qQXMY{bP&M#iP=%*nmEi22+&K8K7w&YGy zWZ>Z7&=q;`KohhC1tZ#|$Oa#^HEEShQegLtjm1BXx1)2Z0JZt`opgrcY);RIgobVy zkMnx%oOoK6d}GsNNt}j&k_R@-xJa=>t>l^poa#pg2XAh!c<{qhb{PFx8^Px0(&Bs9 z*M_wKMf5Pz>1mt5YkclHGBPsn`@7pee~iVmlZjHzTfNS@Gn~5CPKt_NRzo+pwi2a? z6%-UUEWu!tsf}NyoT({FQGF;@a^1$ax3`maZdO)SW@eJlySuyH-Q5WR+X3zsXPQka zWP@ZPIO+8?{SLbe%^uElXC?LTm%K5#k@pS{`S)0fBVPtZwX7>&2^xG&vztiX7y9au z@I*(=S9}S0UJ(r$$(DHf2>D^k+qEwzzwldD&suU9IbGfQrMfcWhaWAqWiN3*H6Ma8 z%FD}J9y9vjSy{aO4z<+(hI#GeDC98I7dT}w!LC*oRifjon#;eA`6Kd<;+-g_`m=n$%mi|T) zx#Ma$Mf6~AAO|{UGZojl66+Y4kdUysZf9?=0w;DSXXrHCQ>jws5EK=4DCgv9S{E`2 z(PhcUtgfzxn6^4M8avfDzhPr}u%RajcFWT)DkR=;HgL;>bsLs-Lnwh1M4BLZ$cq2- z9&nxekU{^1Ye3bGeApt8%!nRx?jd6Sy_fuDN`XfI8oxpPf7xh%R0x50nO7<@HFw2xsbD0K6bl?8p|7xfJ&wIxa68DDFF9a$qt4 zyPLj*7sXwtr>8&+dU$wwo-JFZm|}q%ls8CT7z-9r>H4p+DeS< zi{I6$++x+NgJ0XyO~EMd0pRI-_+dMJyg>BY<&tv|J`fBM9CVV!+C{{PM z1cG(9!D%l2badmI!e;j4TAq1^BL;<@OkhgUtkRK7@hg}`E<;m4XPf(^4a6& z=jZuF#l=kx3{Ik_r>5}3KaT;#Y{B@}*4DM+Qa~NsbwM0^Lf^aU{53&fm$9+2arg80 z_qVaxIy_XLPR-0z%hz`D1coaa5S(H>*4Ni>jd9&XaGrP?-v_1b zZf^bnc5I~2BxbaE`rE*I+tRA^xYH+1CG(z7C$lTDv$6d$e^th5btFny#@2|h2`>72 zcy#1;1LwVQ6_=0z)ox-@_Pk_c0}^>MnIlV;$&C#R1{W&`hyrG5+8-%F78Vw$+djIw z5;g)M+TGJb#9n8sDT3o@yFCd8&0!UOt3$J%PJUJlt?B$N?rlNlcW`jv=;#PJR5da* zJl!p+t(_Dfqi(vbmj>=#NRI}yO*@{Xwdnoyl_3ngU>f1Vc7uN$PV%H z^W$J)ai-{j6+s}>wDAKzJB zT@4Hj1Y!i(*b}aQI@}YZH?) z9z*b0WQ(%_BEGRvh*8JOt1{F zx3{q&ccE;2bRoV&hexNPyeekliI0MT0qBn@CT;XdJ)Eaq-%fB`rx1>cu49$i<%y`_y2%} zr+?Kb-v``9ll?H#-oM3H|4w`Te|&igbo*abTlN4XMcUm1)VGJ)tc)uArx_8lS`_UP z11NpDglMtMk{~)lNhEy9fLvZIMrHg!?XUQ{=3_Y#{RxD$uL)kKjxJbKPg^YQ`wSh{ zSS(!yJ|A>FO7#)Cw{?PnROt>4()5>A^Wm=(r}8gLvhb(H-Z7@8>s3q zI~I_jL=V<0A@afE+*0SKFFrmvvO#USV9{L3k zEXJpMT1=1XFN`7jpR&5%@g@ye2`c7m^QV954I-8;7>@%f#`98Ob0%YG8Hi`szhU!t zUODju;8~`6sHh_D=MzuWn#W_q=9M%7;vz)t&=4X3qdPZd7)z-aj1LT`K&I(&l$jE+ zL)ZKq_|q|hAH{9C3O^5tg9OR<9guas+t?Z6Yi66QGv;`^GPLEA%TzyqaDk|mZ~$t? zQ=sB?z3UyR6EcnUB#1fU6!l7ECvr{D^FpRQTEn)bHvfXh-*?@c;}m7%^OWO7tx>{kBALa1$6|pJY`Dkv&>oW z1>X)YW_s?s`F=#Y2Q?MhsqFk{wzDlMJ8UkWqcd@P|2mni>e;hO23cuY20CfQFh)FC zX+?9TSP(8gekGIp%EihDoBQoGjIaUV`T=nVfQ?S~QZaUnK6<-5dKH}KeR8`$A_}NQ-1jGnbS6{^ z3;5E0|B;)RYxqddMVriYQm-qY>St$b^8peC6O>zP(h~`O7s_ z;1%VH@2CQs0J(?9W_bOB+frA~T__Iq-9i1*em{%L%Fkft1iNezk7%nm>CT{05hkRXKV1I}v@l-J7ek1!Hmbbpv)B`AFo`VUeSj^Dz}CmJFzhXMq}{ zi()r4o7Z(yFe>tnLehLL3e%@x2Ki(!-b95!y5f?<<@ETDch zS)y-~C|l1}Z&E84Nxa}b?+5_HXoOoA5(mH(iW{DG;z%$b18n|0`!m!m&(&vc{&!bf zfTXkkMPO0U#wXUC7<|-nHr)4^<=qi{{{8f3`g`az_O2-M6xb*r0$pt+j|Mq;9m^pA zBKSlf1a_M?@wmD=AJ^#Y;GGt~G-aNx)-E%uf>06O0ZPZq8`v~x`~XlFt^h-yz^~{R zp!at^7cbpmyRTIP_*`Y5N9#n1y}SnqE$H!246@G>-j`3rUGA6s@4)~+;`YrQy(RZ! zmpEd-8gbO-9}lJ!{2)nE_)A>(5okBU>Csz`EdM(%K{l^61jiGY0t#sYETH1^PEp-Y zYTx6If^5HH)Y>Ov&DKL?a7((AGhoInNZxAL#!g%U658beae{^DTe=vZo0FdBa6mtz zba0uivU2s=Eh;Ev(5c@OX&q6~(9h^JK-B_&2Wy1XWY!m_0WV^_%d< zs%0QLdGXRsHb`-Xx04DVUqkNeKEbhC(kx?JQI^fj3=^v7qN|z$*wVCCDt}}}C2u2Rl=Jj*+tE^L?45RoU_CAsnp>IWqKL&Yk{f?qs?KSxh|h^gAGEr+R1ND6=Z<}K zIGq}5tICm+j$!h{S5xgxhB;mnA3~c%CF*b<3l07nbDn$B@l7aN%W_j;DYiPRP?`P9 z^H-SkW>E%ftmqA$;a!C19ZhO$Elj{b_7?Pnlt@-RU2ax)8+x z3}i*vIH=5=EX4aIzuU|}Mf`j-p{HUaEJ$rl zidOAx*ax%Ycccj+k&Zut2g0~E0lvl>B*^oo(P|*65Cg3nOwOHURU(D4Kp7(}OY#e< zE%26@9HTBJMNEXQ7^Q1!A48Uyyb(+Z(3W+m2o_h#0F`1!mPfB3wQ373)wHe4*NamQ7 z?=lJ$iK2_)?GsZeSp}(ZzqO-u$kUvU^*w66FlIAp;&qt(tHV1n!6#?*1t2^9iL8gN z0;a0YKbo4%(H>``_RiJXcbs%wr6;aRFop3F-RuqLQc*Xv}S*b{m64I$=D64qr5G z2OXY|H!#md%)%(gQz)%fX$A_uvzQ?{AuKG}GVmm%8{}SwwDqg*%@Qo>h>5Dymk+f6 zirZJI=KGT7}8h=(W*|AdR~ zM=Jj4f5hF~&Q?&r7tz=@5j+qe_=MZ>t`2QiO8aL7!MzF9HiFvE&D>8N&L{sjBpWpc z2yDzi>Srz>r*DFFD|yN>Y{;*@Lhhi5LzJB#La4kSkq3zPF)|fZv!B@-0CSZzLtD*( zU^%Dmgnq@*oIERi?OXEf`N*f)s{|#VyUVqh(*|>aZse53Ao(iJE5nFqjizq1F@f*~ zqUNMDJ|@{MOVH`kWxYUy9h`{7R$F+m6PT>uqP;VRpShToqrb^8Q{)~>nzZ}?#FoR1 zL^Yfk=7*UQn$e#WJV7NZS9l>k`3i++>BV?%i5X~k)1W6c5KI)!^VN4F_wRH~6Enl1 z-jJ!LI73I5>;Swkjhb%%Fs+SvGR zN61Av*N>F93^Tuz56$vDRl@ni^|j{hnA)K;`wlhDhx4DbZqKEV0ue4%kXOpYO+@>V z)Uz3|jIk&U2ivNDV@Z@$ zQViCEHgNSpV_n)w9zDUTOzS;iWnn^mYMGrS?3x!~JL7OU0G+ODuBp@vLrydu4T z#IF{cU%P}IMekT~Z7?7_^}PEbw$pfl?SW*r#+IOgjS~f<$!(I9wYGQ}!_$PiF%vFx5VR)yA`L1Ert5O{GFe8-BHUey-#X=&^pj>6pH$SaO`zjn%MNG$(E@{Y@PlKKCMO;}nuTSq8TBSUK_y=bZ@s(;&@j*( z`_$Sd9ZD}D`PQ~CyGGZnd{*005;>ygK1&X z7AM2Bm&(zWAbz{p-MlKg(5LqB*Pe}@#v`W~cB1uFYY0~Qr`Ax7h;6!{x8X^i6c+O7 zm?H5&!X#9YuLPQ(xcvn&wWv(9`X_emWG^S8u@;T_a7Eua25G8U$NpUfJ_yqDGk+u& z=(yD;@Ow-`t64WG92O`KUY|NLWGmUQ@1%*SJ2WHL>XP(B(ZJJphw(FptdbFY#OE=M zd-omey7GF1sF%7Tsq95Cj|77!JUDNM3_JUFpKZ1avaTj%Oe06#`gVBbD?~7@cKS?Tr=B(Ozw~`?|!MK$?H*jVIb^3FPRW3N+&X!w(rm|vk z<9{~$2k(9Q6)36}wYv?zCvR7qujJvvW)uDI?hb(cg!I?TPv$9yduQ3d<|o}_?O2n{ zhT|KQdA(pu*N+DeF|_8NGu_)9Ve=A)|3t!E(teDLocbHI-?_T~w-9vg7J4Na5aW63;M6^k}5P6!Lwv z_xQT^z}*Nkec;~geRp+qc!48(FKMdxsnW8P)E-6o|S=~$)8^c>uQ5|2CFlY zq4q0Zr&`0as}@6FKD>bI{wlUI+eYJJi1z~}lL%e^4~b0@e0!z;pES%rN-2VKcaQQP zmGVHV{QD(Z$z?8d@$vsKHg>>QnxF@^Mia!xTl2Tv`5yV7q?!e#9N==?|5}p-i#W#y&ZiG29u6MP|BpU_l=J9S<>MF5el#{dWAn2PDJC$Zu?ya9#fjuU z@5Yl-Gd|CDsMUF-9vX8Ej_;f1A!OE2e-LcmB18$mv`iZ1)~(f`9?;>UZxeV(H2eK` zpimf^=AX?GbVI8{5_mm_i6m*=N!O%UWNps2t%z?+@Z_VZEXkM3E3Qngm?(Z`<->^W z;xszdxVPb{CEq2%i6}^l_Z4;)+uOR+G-)rIDC}nvIz~YX6O-Q9C^|6z#e#8TlSf)6 z8^Wf2v!W7BKIkwfnWe`P4*F%$d%+Nn_?;}2!d%x$N0eti{3 zJ1p8a^qGAJeQS71_>LYMwXpb=6*c1LS})#Ougj#&zyCy%(mT;~I_KT@8)sgrPBXNu z3bE31;Yw!wN$WwSkt~qdbDF(k|Dq7Fm1MEw(}h>G#3F7_BteYB=P_a!rJBh%>fYtw+MtndajGQh0wf9^S;RUf?%VC-E#&Ef4#jTd*qB*COr8PVF?#w~J3w z7)CeiP3v-YpQa25nBh*YRbp`wr1t+i^(LPEvY;VMd>+YV`3WZAOO9*;gbXew7f#pC zLa7x5A@deUZNlPjZ)tx=gax(R4s{GJ#^O>BdXSR>Z1~C2#uNl;_K1FI)!*@ui~bB$ zmYpo8aWC)+8gbC||BPae!@tZ6WFH37jF5w+@&!&M1w`Xz`0f#f9wi*-3M=K7NmZw) z*5!@Gj6_Wva&^HVv#zPfN4?Lc&Os@R0WC+IHR93cGXbJH#CUb!hP?`UMvwROcXhegN7=DW0FXUyjX zp@n^7-U{$Sw*qXpwh*`S=mplQI%GloL@sMmJ>pd(uK2#1L~hlPq7+LxwA6r?*=f z^ZU@{*(E%jMswxjH5l-3GS0R}?)_`$fvOds#!#RbnS_XF1A2)UV)~gD&-Rvuoz?l9 z_P~WYHE+H}D}SPrWrOQGKF(C-^}CGN11Sc~R#!y>?F&m5L_ZEZUz3?IVj_;{?Y_Nk z=#stPt)X|?LR-K(YsSQP>%y~@Sutn~0^mHNDTL^*V0+W|0O0J2rfmMO@)KYsya8To zG{3*UU)ln4H1iSQ5^OXai;17H{F>3jHdh~&lX~;9|NZ6e%?NS2rd1N$6f*||5H&Wi z-ARe7^#m$0@4SSPmpVU0kK0jz+E`Yv#g_H9>)jHdf*G4i)U!91)>OWotX&2ukDLdp zt|4zKb90A6vB*Pcf)_S0F7{`2P62JtpxQd<30D8U%Giq?M%zzhQNYv4`?c;bQ0YsS zUcQrrpp*;aC~kk?CrgZJt|uNHQ_m7H+U`!1FVu=>&tIUc1y{Ikp5pm9OR_xF`vU93 zY1-02akMayY>`6XY=*r;V?9ppg=Gcm|GUZy*gpK%-N9h3p@pmCroD2Rk0fGucZeee zEv9T$roQ9ko8}{EWb$y^2$ZX!H^S|4p=51XT_`psnUFKXa}*AM6C?ctpGZR6lKF$p zV+NY(X&PKg%kt)!Ut9GR^nvdyC$bCyb-+ONFQ47SB|wZ|Jq?Lb%Mvv>HED7!GO90M z2Z~!;tOkfV>5m`kz&Sxs-~E|Nptkxv43FO266D(l(1vQKYU%voTi7(GNz>QaWC~%| z!p8Gw#UcnhphUaX8|JKbQF+Q*#9|4N^FGA;%?LVILDjORKjo^s!=6XpEAB-Sx;0oZriTY%^c5@I7J&}xe?sVm@jA6zZ$%L|2Ty9;U}>Doy_dj z>(2MoF4cBf`K~S|)&ctY{2nO1IX#b)nlWMDCp$|ZbZeT#p|8|WnPZq@cDhi5z^!$A zx^i;M-W~8zK&<4=V4%Ugx{e4%6R`rt$#E>Vk4euLRtWG|zGMmmO7Oh>eVAh_J1Rar zdNnpchZq^v&-#P1oiPPWBo?oi<5r?p_El!T8T@#I^w=p?1K0zAj+;1^&S}&ODAk{4 zwQW1N9X~zM-t->R1f#-?5Y!i;_N3HXA-ZvS2WzWP`U>V4?YkwDqFVC^WkT|o4pfbO z8?gr98SMv*wupkd)zwChU&qk#^L3>i1lmJbPQqJjU_4WJt&bfL#lqh3GR zzHbDC6&^gBgouW=+fw^({?+XM;@MvjVKk=#imX3=FC7L^%xzAxamM>9=#kqpYcTRM zo|~%|oB?~CeWgb1Y?mB1BgU+ViHwQx9}fo%p1A(t6}v7p(2sjMh_QL?E>$UG7c!$K z5Q+U5PAr9#;ea9X#DPrIcu9Jqh&Efn~{WCaX>46dC_C?UBDzbVX@C z288mrKpP3m|DfpbqXv~Z*NlZNrv?L(ri<^Sm3;7LH zx}ZU)U!__Y*Q)syt)VY+#wg@)y2v*wEUysA%B z47-BE>4Lofs`QK4Z+$ox{AGtB)+k;B5PSO*S12Mb1Q@nD74M5Fz*krpV{gxy*)F5} zf)R3@O#_G^eju^(Ggee1&~lE?wgtB9g##e!FAb4$T5h!8&i+se$8jn%2PkWU*#fgJ zL`Fq9xJiXQ`Ro*;#8D4eATlET`Wwd&z{tBLMyz%R1WJ|r&Fai2dn%w zs{5c|L=+@hEvcY)gF6U`1DlXMA-pgkR#OtN&zsn<|AtOX0j8)00{i!{uelub&5TE9mnve!#uE158Piz!Z1Wf~`SkdxhXC|0T81(+037@Q6J>aWcP&hI+?9McA zUZU=c_2IQg#~e^O8y4Q)yvGCHiuy_Az=Q;}->(6%xrJCFeAa(f+pNbVJQO(m4fBnE za0GnLg9%1s!M&j)f=ZO={7lYWU`7++CMwXa%=oBu6K|a+@EuwD&E1;mW`dBu^w}o- zr7&|J+j~4@|LTf#M*$KCDd80GJyT01`#USOI?XXttq6S(W4C#4p{Btjgi_aK4a`fl zj8b&pi6?qe>6ER}1@VIqQW$G)4Bho(h^gWx4AL5Ay=dwMT30m0dX?4a#=j1^*h@S8 zEue-(3hR#sKLfLpw84AV?dXr@jJ`g?Xfz@EAXEWZ+}UqHf1K~2)Iu#pM6$+$HKrd= zk5toO8pqLdKcF)*^J-EAWuV@*p)&3qBTJO@)+)6)TeFcZ5RBR;scjD-;`oB^Z@^S( zL4^jOCi)*lHSE;i5VyWf{fZhI^-Y~W4i&di^cIS@*zAXN-}DHei2GN{@{i^did1<{ zwmB7yK#uu4a6{Oc9euED@lA@=%7`@>kB5dy{)Rk*nPHbGggqOp*`;>B-oz`f=lhq0 zHO09hP@pD|CkszDNOG60zwybSQpS+;a_!}&*}BLeCqra+)}y`49jf(7=px3R!hd}= zr=3g~DQ%RFBgs<*CZ_Lva^J6#Jj5cJQxuR8kY)Hug{ul*?Ha;9%MqS?=jb%6utUHqt2rNto zA+FJtcY!p5HK>+drfp}y>DX_AWZu}jcUx{_oh0QarAvyLs??XW8zx;SF}yemdrx-s zxU=`>^I2lBdLcQ>XYVpz$0ab%=ad<7iNDkMfvd7D6<#}oB>hEi@W{SPP!H8Gb-&p$ z0u|2XevIU4iATrELSX58@_7& zrOq|i26ODIvm2KBR+rZ20lsQ>!9#dG&sG<|ll9%cqusmnt%&1LXu1GoK|9Je$xrKa zbS?($)hiL#k{dEWNgn^W-ywicQAD@$Po(r^uHqy#G^Piy5y(Zwy*Yi15z?Nn%-(4F zm_ep#wVut@ELiRBn1zU%)3X%CzCH?({QNQ8^fL}Ka>WYbO^-XHbG#0YNJAmXPf=8A z7~3;-Ly{QYU^$R~i1do+4G^9cL`v%T#OVkl0YBGSJ%Sj*O|@&&-Q^DshVNOGf=786 ziALf$sT6m)!J88`pAL7;I!2*@H{F9l;BZu2c&BnhSMg!hXIDhibIK%zL+?&r9$15v zwT36f=qqn58g~udXSI-L*YIIy-OgU>B3xQ?TW~%{+h?cndV_ISl zeZ5;vQ50{&2(sYNef=uOE5LjLfQt&DBpdXa;nb*BLj+rB()-ZiTq*DsU zYr}arTjOM2e%(A*`tkz>J<7N2D@qW>rYF#!`Tl5SONWFmCFl9#a86a`J(OoMxdd}H0WWckqUo@uY@6g zvxZD!=}tj=*Qui6C;MF!_%-F3!LDRw`TfK(^Fyr(6*o~upP21&y_EVoKTQr^Xn-E+ zI=?VCL4`UFZZ{dGRJ1C2P)_8hlW~52+8;K*SZ&d_6gIWZTagFsED{?t>q*h%v%Dn^ zc(^sLb5UwU0=s`MR*NsFi@`;&sx1&e{#4Sax!4uz+oRw3gZv`F_A+#GVmyyNCRGoQ za>QA7&eLd55WrNxPTz<#c1QtoE9;=YUceZ>WpU$Ml>*upYibfM^brWy(s z%57TqE)U)+*^3vfVtWPV}fw%6VM(Pz_xrn2i`4J3&T5i`bODID84=u1f_G z<%rILVNSx`&HjN@lA(T?RCKHbY_jdfut_Q$!8Gli%jkH1i)PueibGkf@Hn127NgA9 z#W?Npzo?hdb<;7B7{7R-86n^_n;h#d=ZM!X8I;pJ`ns+^;eQt#CLM(Mee|zlPsYPVLDu1tSKKtv9 z$>s1)JUYzAm*o$4LA(a_HweU zRM&)_{31;d50fO1Xcvs^*^6RS8W)0@@&F3I$_3q+a@0x4iYA;|DovufUl3BiTzMJwkT$b9OWP;8uQzZk?2;y+rklkvlL5STr!ZaDb)S=2Zk?;aomW2DNzw!3|rs-Zt~JQ{T^p z7GDa6Y|4nO*M>Rrrt5ZdAy?M-y>ee#KE!9;NMh1hAikZc#&vCF;9K2i@=rJ(yp3)8 z6ENPz&OQ93(v_?3Gz*XOGCTD0!r*@GfwRd%NZzJ!?`_+5_#;uWqE-gAw_`h-)Q}zw z{Tt=P>zZ8b%Boq9VEf~O9b=?Sv)YraT>xwCL5g_DVd&SV&9~K((?p%Y46^@2+I- z#VP{!zg;z{UfCkt>XXt9G; zKt+(h!Yb}Dp-Vso6)aNGv`ehD4;U9CL~c)(_EhPF(+VGQw4d%S*3`fsZsv`E_+q9S zXgb$@5u|jdWC4hue%@4UdIF-U$xoXva5t|fhes74hG5CR|3C?x-mS?lbM4;+_-R97 zg573eLR|$Qd8LBEU6IZU9oJS+hJy*u{QsB)Nc7 z&_c@GW+^afq7}wIAM&NtF9$Ib{4}J7%re3BTtGOd>ZZTNHgGH& z?)7!WWo?Fh_J+Zf%6zw^=56h?`U&9-SrNbMS(b$YVFOv>`9;1BLX)&({OrJojPDm4 zffR$$nv!zX#j%Z_=9-2?1sV)v{??!*^^7`rmU%{<0zgC{1^a6)I0wC74At;ka2)$U zaAU=b?L;&5Q6sZNPJA6qE-eCZV&A3bxnXsqpy95&U=6&k+=6dr9 z>Q~@^VMzT6gGbrm$HaYtwhjMLX^lp2>UHG!Mq*bt5gZ&vQAK49fVnU#vJamo82u!x zr1K;xilv;JRBiK+3O6b8PNPLveW1~4MpeCv!)%l^PGFIYVT#T0seRoCMZCJ2CT1vs zb*asR7yfTVh=6Gf?OV7UOsA>UdhMlhCaZQm2i^OQjQcVAA>t9k?Xl0iD^7r>4F6g+ zBzfNPuEu^#IvK4)BI$fDMvhJK1~+z7s8(q?d;lP27~^i?!`XOaZR_YZ*pOLb8AK=2 z4-FuDUXJhvsC%}7PjHS7BBN4J6Lq(%o=|&VTjh2kN;bGqFHTH|l06JRwgrd_F*uXw z%%N6ONKvJwo__`1nOqror|*}hV|35}(Ibc2iV}#=OLKIrJxzJ=$d^At@6ri_)R3Mv zQR|n`U#|<{@`BG@_Te%2GCCK!MiVj3C)I?x+&ejf6%?L`{<1 z{y=+Vo?WR+f@@U|zUsBZTtCZ+0HX(O9-8YJhtkp;q^()1XPpEbP4U=wK04WTpGXGM z^%x*x@3L(lFaGFgvo>?`DR4T=EQ9={?%22BvsX-69ii#DN?OL^4jZYljB=nXG))6r zD5}hE-ZJC1Yp6wr2Zb_%7<+T*|KKl?*&lh&)?K2jt{gskJ?-=WHR`=qv77N`P-d03g_HkOW3DAPK^je zOols?H>-38x%Fvds)*=Qrw+1P&XtoDvGab?EVNYmxJ;VjFe6r%waz;I_Ov@s2_!&3 zq{)*w8_huV$ymi!9Q=1k1}gU}i5deiAZz49QhE=V@$w7?_iKrKbpo9XfzkM+97n*8 z(TP=REjpm+$L5<6<;acfuYJ8r|L=po`6l(1e@cmvVf4f^h~{PL5T(7F7zq{^vqkm( zEpfs02=cLMZ4cJH5vU05v0GXDkQx0DllwtGHVjAKJ^&f*`=EcN!5c6|5&L(f@X@EU zL3;x1LgCx|-kfnWXJEdz^DrL~W50$DbZj(U#;jsOecBfJQThrfmCeSrz}`>}z0lcO z;G$n{D?al%7o4Bs)be`O5PuB8V|G4WF2dq_Yoq9Q zj*Lk*JW8(8GU~}#K>YT!k9KlfX4#7K-t( zilYpxSC|y1@-dul;wC2{CXN<(3IK+e|GO$_WyX#LK=OtGH%V%sAmRGGG1s3d80U*N zfBYqmqdNCNl4J(CWDKUH>}m6Egv0~o9AV1o$k|RFvfebRN%=A9REI9)hLh40V%fdE zPe57l6G|aSRhB;#uay66(IoQ2QW4f$Q`dVAth)pW9?HWG7eXYt^7P9f9Im66vGz;z zn9tbIFZ#XI%84d?rFsTmO?|5aA9DKkc?(pM?d)wnJ{7@%HMXp;Sj_VqNpPaLOsx+? zZ{=gGPvg0?dS2%aLq%fpBc*LVYMOR-8Me;^#?F>WL%(CxeWwIs?F%SrGf9h4)CiT% zUT0mIM6O2GxFbr^%m41sawM7MdRpvsx2t9Gcj)NRQy#4`t)AEbWkLS+B$>R2hg(WU z(>8S`y+ALab>MF z72f$1!>qhhw&ZUq#>4azZriKmhC~Uqxj4C1Tb?4M3CAl|^Bx4=6nn-tXFqk$L|6`i zMf<@Jf+#%5#8cr%7OlIi+*ErT<)QK6m*#I{t`eMoe~%(+<|rGm88eV4ziGln)NU|? z1H2st>4b%198**iOARd6-+!{awoz@9YY);=ttMNDv--?4?{JM{r&av*7JVqgpg9?1 z^pL_?fQK$Mo|UA4W+_p^F8&9y-cT9ONMzmG#g1=7qR8&c(~HU6(opHK%8hmtTYcOw zXi4DTLt*+f*V861_m=U+S*fk*9DG!&i_eP~+rpvca~d1|;wIw#)q$88>LBzAPZ7%8t;mOppBAFZ zLB9N^WO0x~mwI-^Bq?G?sC9=f*M+t`V(|65C=MzmI2r;)`7I^?Cb4DGzT(Mph4Fwb z-bQ8DSE3PFIr+ApH1SlatI7wmEcNW3T(+c&=5;0Y5P}Tl)E1Qk9`4=6LH8>UItn5Kip*KC zN+~E>3h6PVj;>^p(;KSTacFWR6QwvyLL={-cr@a1MMQ{PSf>K;Kv9sKz3pvdL&Hv6 zyY%$*xB1)G4-XF)7Y=&@UN#(#GULdlmPf0}U3!}cbO^40hN+T^OJZ=QpkzRK6|aD~ z{f75oc z9JUmY%>UUoDI56lAR*Z;*$pMqop#9Ku$67c`sG8U^n~l_`LYhmPvXi#7Wf+hRGcj% zyd7(#N3L0;J-hQYGX~5j6L-exk*m3b4T4p!)ufP?m$d_w$e=$5D^H)lZZOxoV;z6L z>t^B@oD_lCjgHe6YO>xuv_(YEd|e%8cHQp8U~i?X1HW-Wl08k;#I3G`j}Uc~8!lRL zy+WHLAg8f4+M~em|1E7G0e}46u1BzYfO{MZKOKL*q1yi8)btGo2())->9O7WK(MM* z;|hK14pvHmG{8we72>|qElJrae3*BB8ZA&C4c@zn3keCCB*I`$Hi7jmmO%i}Efq?J%|!pm2$?~!N{;Cy zLDYfCK`1-F)7~gq?OVXJozp4Z7y&#uTS_L$LvwRk`rR7YL2TmF)p9_A$d^b~w($Gg zW!m6Bsf?C`7!oF^SUh0pv4EqPFBR77+d_~W_`Sq>Q_r7ynUVqDaN4z$*OCa_e`X>k z@;W;?#Y?j@1^;l(N+osmH24O-O}yssSb|46KdESPClB4-3xh1)>d^}K?*~x}3#jqc2Yb>AxO3N86DsU(4oD$X#ONQLI`W0}k2n2E8qSh5Rn-EOX;9cuFNB&@ z15&~(@Lp6?7k%x=@l9_|K-hDl8fSlCEqj}L#{b&dS4E& z(!H6lKCl!^``8#rWT9qkb+RdxmTC2g`SW=lw;F?(t}2lw>`Y2&7Q&+x0dHN>H)dyC zsZFoodYGb0JX%+{rX&{2p|G=e>sPrQHEW)<^zYpd z7~X6hN)86#BcXk8HbAPUvbTD;kQwE^MWP!C2~#cOXDrAfPEv=K$5vONyPBy!D$U7| zHFjfml^2^MoS$tx$xEx>m>y|Avrv&DQRuB<*B(-#~~A3S|}leit>A%r&yx~9%_xrw0z4_ z#n}`b%!6HmjlqJ7q$^Qg5y8pQ{`o~;39W}>klHWWodAo2k|>yzkbqYIbVUm}XPLCb zrgW+zd#d2rU#epl?m8)2N4FKe8{=#!N2>})I^l!4<;m>5>KQ|ARQG40l|R2me$IdCxh5$kh0Q;_F%gyO}#0W zkuZ@zhw~c*y#&bSk(3*32{wtx_mdT!EiNqMeUzj(Jq&pZ-jPC!p`(a|C_6*yQt4ni=*J$s`nCGVqGU z(oj%*xO~Rh@q>((*-|5f)oqV_k3arAZJ;%%#OOoiY9ePTTa8gLs>50rO~e{u8wx2V z;M`5ugEErR^M{b;Dz#4HOULo#lKUItra}a6K=5D#>@eT-#>uV`Jj)dwj4?6vgOQ=5d4Xk#xheeTz`({b$_ zcH9<1xqfv2D(VVxP)C*CxhB=U>Hzc2Rl0j)_-9aRM7TGE1F1LpF-AG2)4TU&Ga2dq zb=-Hz#sSg(xPXfELFm7kwqkA) z5ZL*<*dYm_R;M(v!eVv%GkmN@$c~@${Sm+*GTKLh)rVp&*uh9F4Dg2hR-d1Q zj_9n!-_!eG^!W-c2OLcpVpJgy;%K*<%jrdh!#kkiokO|jceVLaR9MIe2F8%Tmo~4S z4CqW*g0#{bR>#TF>{oFbpKEaPW9K3&FEiQbGC?zrtkK3*vB30*b7X?uehJGA#t_~_ z2jWi?vzrs$(D5n6s8l`8$GdxC49{zdU($P1vuNZGK7R<4!_Y{**h)u!ixN}@0yk7c zCDSHAhoj@g$g;&GvJ(`hyV^LE+)M@~`+Ew$R^0 z(cwXi?`$j*m=I6XjCuZD{l6y&=s5r-z<(G2b6B=m$0F?pI{1;n%IwL zDr{%$R{sK&s!Z+~sz27A2 zWJw=7hq_~Yk2#i2%75YRnLRHJ7`$OfojSv7WEPy1QhPG8+D$?r*@GKbKRUfUG_7~g zg0D__xc4nt(B>UyGv6RNOjR9*5CoZQAEGEIb8+yVBSL|r34#^^8A1k1D9v$5VN0n4 zxtr;KtJnd>@*z+SI=ZmT0D{sj<-E4_I$i%gL2XWqg2tI+)HnRHa~~y@BaFpqrVg(P zHP^8;rtLedb;#+l(tdo$m_U>k~>IDUoc_bP5-(z~#Is?{WHJ&8*U;#{~W^c_I1T+bl>@^(6Zdai6 z%e=wFhD7euyur)ahM#on#M8>{T5lI9g3RaP;q3QDs&2)!TMaD!&ztr+0;rR%r>-Xs z^1Zi5HWM$YHyno0%ClP+b2)09hCSFEMGqlno~a5#+;|>3z^=0hhhj7H++>PhSeP8J zuAB`ej}u2|B-94fwES#*HtC+se?R==QBk>!->__Q+Uw!)vG`AUrU2OYI?=9>-AhsT zgY7nZ3VVzDDr37jK6sucatzYrF?@Srh90X52`9;W(=S%W2qg`x!6iC=niiLOy9+P(u< zSdsR^tAA)Y47K>nM6f-CEBMm&+_JEOu@~J?fU_t`OP-@3nMp&qLA_l>>U+0l%U%9d zN4EoW0Vz)8K_7LuQXXW!(f=`13ID&Ys|x^x^b=s$ z+}TP6&p#HU11HG?T@S#gr`5rK|E5G3c)eDo_-n~3#`vGP>HozlepLX^0Jx$o$l<^2 z4A=j_IR9<{prZcER`$P~Wjp_WZ~1xVTiu{12;eVeL8SFPJRVbTS@1)zih%G04-XIE zF7t%6w*&MpQcn=lzt61S+}t$R09>!Sy6?}$)=OX3?gaSx-R^B8BO-Wsc>~vg?{av= zelvP67qfkm``Z0@xp-p}Irrhel&5-O)=S4#E96(HYaTcJ3<~LGC#0si4~_`wc)=mx zrU#bJyBVn4FYK=NC)%HHQaxM&hX$a~*J-pf7*66OVAsp@R~G<3Tme=K;8=Pn!tG*v z08oYhS!rpoTBru7hf4-FbHE8Cy?m10W;c@M1_!!=g2HO6nW}rGB^=x9EiQjHZR43#AAs|Az)j$n+T^SZ0p{v}^~1S}R{+4`^k+3)dR=K^Vgg`| z0Lc0Qz}X_8{~L)3L$J9t(hH+U8x z?%V&GpVz3zpb!pgr=z9y(^50vF)$ZYQ>!uk+&gkiU3=NSpbki$O9ku)Jvhw4bmEUHHH$+AufDFJ40hNR&jEbEHI4KX-nJL%x08ZK2 z+O~>r{GAjd_S!3x?bHDXZuz|>?w-BMG4&aTO#s{2X_JZbFkZ8 z2dL_m_vnTDWk+8DsS{#4oOBMTqHC=dVxr68(TJY_s>Q1X2*_pNGSwS^O4JGW7MGOQ zX1Qj54k+ve#PnI!avgqVVblh8;n>xZ|B@~uE+ifwHBAp8X<*)511y|oKrZ}zSycg` zW|ZvqVYvC|>FIYhnJ@sm5007UwjBqr72vnf?1udNdT+!mmq}krqWNqJe%tZ(qkU6D z85~XJW#6K(Fa}ju?5VOplK6pvx(kW#0N`gb>-|7G0`dodkB`QHQ~&@51&iZ{5To$Z zam|><`jBP<5w4}@g0s0trZ5<2p)~-w#|N|J`_T<>6tCFL_+RqfAgf08yvdND_coV^ zBRAsuyD05hdpz-8P}OVwh%&OW=hP&?LxtAfiu)r2SP|_6gMMl1JVVfv%+=9cWQxQO zaUk!23rV{}f{EJ|sVr9?aEh$c67FJe-yQaA_rMD3WZ^^(k&2D(>2)6mBUinzUHBFH zXRdlrq;Rz7TdE!$al~lv`xgrLt9>jR(6W3C#I(1^ngQXf)=oYnvgGr1%TpZvt0H+vk$=0 zNQdd)b(CowZWBaPo*$l8sDcj4eIm$bk}RfatpKP=XNd)v%=y|)1B)6uXk*-!!zW+tW{ML8$doa$F4r|X%% zx}bE3cbSG;{YWs_db?l5lheq8e7p~Rqu)toEW?-T65tPCz_DOBOVG<_A1lu44X(9jJQbROao4d2I; z@~!=nE-*tjfJm6_Wc4*Dh?3L3SJ%5IfrGA??%*EC)3N*(uzi_~hm|CQqj~n6RZBIh z06*F3H86hgTdk@WgOzs-C~tbw*nVDzxc==Bt803@wi*73(xvlFJo-S080WqP5pq@@Ps>e7%9I)Wr^qg#otcZsXvQfEh(LD zX>gd>mSFc-tk)(mSC!4}aIl=mWd;%kp1sZevHE>n3z@=&Vg+Iikfk~b3^d*2(03?W zfaK>;s}Rb#JdS{a))psTtc)_FtBdAiga+YO6(&$0J!}_*$>TfzVhQjmPFuZbbK?0q zGsq9~a{zUbi<;Fs(DO@^J77uDH`SR#Zgj;KnG zofTfSPJ0ujBiZU77rLH9a1QhB>3Czg$?;$e5F`-$?@j>YHWdyTFquQP+nni@YFy z-NHmod|8qpiq5WTqe5J{6|FS*K9$0+(1M04$iX?(SaP*F-N4tKa)j9-LYANb5JDTa zAg}Dd+A?6OD}ZJ38)EP?lzWB18G=5g@k0CBUB>|5RR2YwlyF)+P!6m z9U|r!Ju-psCpWpeZ_>ks?c2z73&m;kysz#_Du9U>U_`OYix z0Fn&02Z=>PbUw)tfvNf3RfSZ8o=kiL-yL$(0G*;A0)upSk%7}{4mfw0buP3tjG-th z6(F>E-xQL$dg_}->SVpyVJ`{p$wd7Y5V-#+L;oOXn@}Sj zZ;A<9K(SAOxgXadKFPTMXUQ|hHHjz8cLURqoxPCdxI1hw%LUNWTHUV?U*}t3(ODZP zy|&iw12Bto5TjKl{ZpC5ko~oW3<(nb{dM)*2cInn`y5x@++A8#0t*f;is)}(K zMq_!=VkzN!Bfv9Bkm<_yE|I1jKHq6PnvW~W>CoV1&=xm`-Q%63 z@4?Q_&c?>Z!a_3clROC9ME+xWm>IAHMn^{{4G|#DPcR!^p|-U_6tKHJ)n!1L0DYbn z&#HsRC2qXbaP*IyW!{-_j8GM~)=cRh(C0^~nP?=;h`m&=pj;g=Y;!2+A+=@^TB&(` zKPtG$?>ifreBmztQSN`&)ZEV$h|Xml+3!tLj+V}wJa&V8JCTSQmCz)0CzRO_kkwe_dc6J9Q=K!0n7A{ZA>_8HL(E``{DFUPZk&d%-sKDc)&T@+7j1qP z+4OIeuTOLlj##5?4+EblN$0(IAK-Dn`)0U(B|prF>uK}2eF_guIssO9F@&Rq(FKTU zXLD{`qg8IVr|I!oB5p02KZtR)BKaD4LOcrI@ ze7MCNI3|sYdIrX(caC#Gp`NF@8L|p@Hzy=k<6*FELk}{bPVjC-WTY?V{xmbO&~UCC zZ~!)H0U@rIg~l)fr|(TSQ;f$H(p%z^Ww9ch!eTF3fYtPf;M8ybto?ktt0LLadl)I<=ysl-Au(dN1UlIBAI)UdtB@ZCmmg|B(O#(wCSI9X zOq>B4*H$#LE?2s0|7KQRyqCy`D0`%gWYby(ShcUbVbbr24t(c{HtR;hJ{vmjOEuk+9(4abF&))xP}9=<(b zkLIw89SVSnfQ4763Lf30T9m#&q`P}{1UCu;Qv61HKaMvlLo2&NKO574?FhvX3!z25 zgRy#Fj-xE!>+uhW+H00By4h2zkPZ?u=k{A;d|HE|pW#P%shsdf_83KB#3}oU)<1GN zvc)0wt-iJt4}+gXDzaG0cem|=BxijQFnWcd2xahn>3-9o4xGsJ?CYILpo#Aohlgu! z4?Ho6`9VG%k?e=Yz7Ocgh9$x?G@PUtzJ(^e^KEH$ojRji0is5! z@_BZiP`%OFD5s+H0scX$%Ywy7`V=680z~{3QBc03IDeh=J8c~h|D|DqQ&00OLoU7u z!N^tqheL7?2Pdc6+Ud#vT~{+#bOpF;d*p;w*8<>RF79gF(egbAZC3C6B0VQ4UCFNQ zDxW7T+nyv9g&NoQK59%^a*W7-i{ndcQi5tDDEl%b`~`LyB$Xgbdz4l&GR?|8U0xrWsAxzl zdP!b9?p?6cOt5UH>yNstoglbted&%go$!9`;WCC8DLrF#4VH_DTD>%p>`N$F9{JSe z765}sun}SpT^ZlF1`TE$74!6QP<3p^ZDRlU(evRd*wirZNeAtd`)96iGzU)=c zZEia95FIi-ymIp+9Oo^=i|zk9=zZo6Bn1MK4vW{j|J94l0Z$oOmTFevp&F~7$iDNG zk7g7B&CoeI$z0=2+7+I6krtPL|F0kgEBBqN{Mb(WY;K%m+Igs zaoSn%zAucHPc8d0D3>cbDxSlQ&XZ=BpXA@k_|B)al6%%TgE1Drp)}2&^COcy3FtXD z>U8VX4PGoIGs#G|raxZOqQiTR9niG=yFP<>C8+JMmUu2Ds;sOeQs6G1mJ%te*s!Xm z-p!{f%L`UG6nJMW_S4gm+pvglm8b7E^1e4;KXPV(3P|75atrZD z{_QCC;-Tq$badIQzplr9XF7Bts_kWo=qa$RWk-=T2$t`ujk##)yY51Tx0Q*n0j-P! zGHpcK(Q{2Krnn2wFe|^kP-G)+5`V*HqMOB&NW)LTbLAxHzwm1xEqf-G8|&UhBNn_~ zRqr{=+e}m-XqOM6tiS0w?VdLwxK-M|wS)$uYyUx({=S|W7glKf|DuBbKuiAsMgK#2 z|3BGL{>Rt;UryNn0*!xPMZtf`*#GbA|KWiD_s4V2Ezbam=?n-hYCHl^?H80;h;z#d zUj%rqA#;;T`1ID}ZzxhI@Iin)l7fQbv)B_Z?7#0ub7)BzP;mVG{6Qpa>u)++uPjJL zrk?KHN|cM&;gKy5>5uk9Jcf>o{y3!S^DSD_7kRsy0_h-Jvhcf41>4SCI5(#JP%N~k>_-SDUsXoT3co@4; z&O(49qDtHw9$sY(nE*)qZTo(riz_>YfS^nd&Td3>FCciL9tQ|2lV?B~4977PaU z@C>mp0F{c4iFwBi?AdzNYKswJ*P~CauC@#H6F>M<2YuoIn50o=xbXX8P51%;ZAn5PHA0?;$D|X>KuJc%57Znicn&%Jb?AN#lgIRJqe^6JV94$xj!sV%ud}U^J||**jgEHO1}=?UsX;?t3KwhdcVJGIfh?noH}||Mi+kyHLn-b*UZPiPx6&ERVIT}eID)#IK$rVli!Q*5K{8T& zDGcsYujREJbe9|iG>mO*ic`HzfrhE$NW7&mCMb;r?gUW5VYPQ@36d_^MqeVV-{e+P zYTX5NRhlXb%D_+%=jRqL6L|f3tS9A*@Dy|jS@q9B0uOllm&`rW&?rz{8_pC*Jb@D= z`4fla>Cwu@1O^Ao8bIo`K`FxSZfW-eodVTd$Bxo6z?=5>^CMQe{~5#-?nvZYji z|NeaoOdXJCrl6~9uAT7;+5KVGrqIZ;_#TIx0R#wqD>f0?g9RJ*j0d4}g8JXV&2OD( zAfJK?IonK<>dMNI?{_|8*2G;#ijOGenrc9LSr%gV$5;#-wTmzo0&F+W!+`!dfW5UM z#_#uQ18Ja~mq1HCy&eWMJ(3U|AcL(8<*An@6#1^w%-tFfic3E`4?W3^ikZZ)GBZu* zFI)4{H9X%Op?R8=1+1bKF{vt?g$1bn~%+{6pV{{oM(t{KlKIpd@!q1 zs+qnU1L=C^4>xct0F)UZ`Z+&jUA8+5)bimHxo_p=`+@R{c$Tq4BCRqq9;=ve>AR=L-3+B;A~E5R zK0?3SyZ)-_{U2}s>ZRR1vHtT01gHLwZ@J=w7?y`e30Wum3%RCdlhl!|v3(Y;Ddi{4LNt9}w`F)_;0Kp9 z@s_Te!j}Wh5IM5XWSb{cFek*cObBqeyYjd_jjaIG1S3d<{gL?uB5Ki}~$0gWv?%epFo%@GbtrRtkX|V9tM-|51^#Hkc{| z(shSxZa^nM5}=xiEm?U=9)Jup)I=8`O>R6Se)6s!Jj>OZ_xN4*^`{JB*6sj$AJOF^ z6|iqF2YOo-#x*Y?|F95Czi`kk421sHf4i8$rXvE>#lSL)A#JW~x~VknyAejrR+ymw zEYg_peTb)+!ha|=5hPcmS{ZI&xn#8ySTKvOR?rK)6BDr^b*7SItb7 zd6C!U=^hAzDIWsQ>hBaC6kbEi z@&^=bs{2}M*c6Ph-k(TqiMv}fP8zV;F{A^+Z(x~lK`qyp>c90EFQx8|gK}4xn|;}L z3T!EbUC<{zpmGzjBR~U&;HEsoBS2zFBH7J$y4?GcCJil}9q0V&!a@06xcN}pK=ht0 zgsKdk=w0r|<8_5Nt#DyK4p0J09#Wv?3H7m@9&w|JQ)BZ#D(fk9yR=f}!ad)fU^-L_ ze%bt>?RCS|%VV(LuMei~47k15%~GcSpA|9`3fuM9yI21G`*$qLH6`?ugC+7@Zh1!A zYuomygd7P`tV_S&W3Sl0&%$>4z~rzGn+>K|h6fS6eIgc**gN+|LGJ`{Ny|~1!~n7p zRhK$jH%qL=Us73YRcSzgt5BoJG2S#@cd@}`C`X&4+gCicu7U|_cM+P%NJ+o0Q(^39 z1hlOD4pnIY7>)l2#4p}NklB)sx^j8z;6g#|04W|F*PmdovwlneVYoSS7QjRyTXIq? zPvzTH@qc*LO@YU$3W2cZAmY#OFPXvyk;`niNxz~6SoMDlQ$3h&mb9>yH02)7#WWvU zwupEN#O>Do=w6OJaji;A#wqlBosJK^6X^mg0fD&mliz*&440~b*7;PxJ&fGv-R>?| zQ%>(=>Nhl{ZzHC|i)7~9ETag>FS@r7baLMwqG+7o7Puligz zx(IwxLUkG{Nu5NPJ&mT!a~4caoSiK>6SAbr2MP-DrSKZ}v-kMDdMm8Dd)z$8db#%y z;E_g z9Hh{L&JSx1YZbV>MIYm4qk5QW1{zvkl| z#eP#F-$!+?7Fc4K#MaBx1J+De?DLQH!&+0)q0C-oG|}Z5P8~a?r6}6pCMir4h|Jo=&QaGzbO)=0EVP%;*G6m}Bs_87}MsiNE=v2M~CKbj* zI+i04-vST)EbQA7cLau?59~ivje%G;U4weX?Q(hsHZ_nompFfK{pCw7a{_OD-+Ltv zF0u*7<6S40hA?=}xb@QplpQ(w9ia@+>S(C4 zwq(xmh@7G3jz*P-FSV!k!8IBOQQ@e+lST>ohPv~5L>#07dC3UDq=Bx0j(pn~jo-OM ztH~mhgSc9!NmI)Zkhs~UlX_8ORe_+#;1GK7wgJIEy= zntJ{@u`;GXK5BXL-h91j%lw)*TxQP<3)WWWy-XcPIf$=DsLkVF zVTK)WRIZGIPPc1Hcq|qxiccrE=xkJY0>P5r&!35~{umEAn|;C-f&X@LY^@b%$yJq zs;^5Y$FUf|(y5IOD55!;PG6qxf9A5Mc=T)Y?9p3>ciwRXDAGvC_ajm7Zz7`w^W%O- z%8Z#`>P$7!;jp($4`E3_qO=pa=I<3#TiguzLgzc=*JTIi$OUQ)KXmCKYjY->A86D zu^D)8<5Tse8ksR)@8~t-T8EF`XnZTRKG6UK8fD1Zow<<#3oc7m`p?^N8!rP{8}vJK z`8QZNa1qC+oT+mi-8&i)82_ct{Fk(|W1kI><6RHxhRbNJKS~2zth3=J2DO~_X>CFO?6HSVpQk8@6>nNgsv389)UilT+ZHR zPk|7HN6JQBVWAy~$)EFcBH}oQaD-s0B1fR0)*W1? z$4iEG{H_1>NEKq#Y%H2K^42{_VGLh`0D1EJUL~`NX?!0oOy#f7DQH|jtK=$a+Hu?! zzf&K+@?&W5m?Vk-b6iW{Zs>K#phoE{XcG+P35>e)sw|1!JMVS+@}I|g_lo3FPzL(@ z-;w_VCjNhZqWb?l4w(P{#VADEE-x>;y1Gs=4Gj$!7Z}-kcG0w%E#KtK(rSN-z}VSQp56PS%i{fp2q&2P$09m< zdJAA?kP13lEWxh7sbqt&3H|Q&NOl*na(o}+KE7)^MI(VhL0gk0b702>PD8+oQJcR) z0=xH#Byfl&-gy?6y;%psxR1yfKBu)absm=Wp6JG#c2u{jKB_``2skOIDh~4!_A}k*Uh`fN6 z6%rx`DwT4TvE`@$#lr|7gv$+Fks}8*bo5%=IfCdXUVsiFFWdO>w~rx&Gx8(b`@uAk z29T5tC_dI=V#tGKK(ZBr8k)0}h)+ZmcoFsz5LfyWxq$J|1^Nd)|AV{%h*TS!n}O)S z3jG1BLBO?W?`dpojAPNeD_%2}uhi9$@z4&4dt4uYKs>*Y(2C@^5;ZzHdgBQYSv_3t zW*;H?JJA)eNL&I*9&Lw`vi^Q~d_^m(!g3#_IdCO_wb`3Y1lH$MSIoyAk&G_HLJ_C6Uz#D?st`@DL8~>+QwWt=t4ehf22-s}q!QAl>MgTFe$2 z+j9&!Bd_QI9Yb~U*?y~wXn2LPE#O1(e+JT~*~=1NsHs3RhNkk{wHjk;itr2}T7|{m zVbNXA=;Qb|>@PK!Jud0 zL~_#7KZ{!dy8Js#S*H?aY+@qm2Yg+luQ_h4y|@FKhKAuBe8Ov=P_dGJGk_|)1lWFo zckLuLJ-uwSFYk>uB%m@xFva~Ar>r*poR2ItKd>;;Z)InPiJM5Lwft#k20It7N{)Xk zt|G|vnA+I^3Y%SkRSZ}cyXX522Zibouq@lf^z}*5Cd=o#Km}4@Gx$Wnmpeitwyl9V z?*^r;SB3;~3!{~B>8Ozh$=xlWc0}ts_5+q3IH;`>k1DSLVQebIf14G&+REsJcWL|9 z?`dZ{`xC$NmIn#KJTUp^{dhK7!)o|5d7wR^OIW|y4&Xo z1zKxg-X@4LZsYyCtuUE>XlnfQzJ}Y|*#V&zzof#>rL5p#c5NlUq*hfX2|`Bceg24Y zAl(AN)!O7>#(B>9?!mI`l9RY0J=SxBx4q=B=!!5(!wo=JnfO))uo zHXx55fo+a!@M-nMBw_1^79Z53I?lHHe@8lD2`wmDJwav-{jy~qX>O%m%rFrTdo8a{ z$Xi6u$XHp&TU=hQtp3PEp{8;K^;A)v5WR>IYu;$IfZ}c~X1NuxJ$?J#NL=^?)lIFi zEW@1EJ|sM8g7ELbD`15%gq(ty`gp8QvMRIy-r77t{BIjjXFD-B#6mp=lf|7FZv6!lM=!Pne!&@haFHao@l#P|9=-6~*zC-__1 zHYOhCh(R|C$)=WG=j8EZ74CovL=!nLKi+jGB(QsI3~vg~L{E=v7MGM1%ruAzhPti^ zIW;24>PV8=mO~}_2DkcyxVssFQdo;LjGsCD%;CI;V$ zQ&^ZJU4pFwEcCbbmrJ_~$VCb*1V0ZC?jhZ$Jo5P@8%aU&mHrh4s=B)0*Wj3=!eER7 zTsPXB9MxPc6$a@*MvcP4v%bO!SM!D!TJif(mlD~kjsE`PnT`JMH`XOHX8;-D*ahGR zt6?KQpkzK}(xm@W^$nkCtbccq@-7TNQ3o*CRN&+T5VVInkWR%5aAm?4O2Jk;CZ<3h z`Sq@4m90Zi@NlCCGhq=oHEU^EWnjz7V7px+gg%8{D=;u1046))gNhm1^V1u})_YRD zN$d-nEzlnZoS8O%?72Dz^KxSS5qn^of~#ow<74Jy0C6?~z>}EEtQbJe;1LgE=0jqv z5Lj^wKtZafg>sXwaNE5sv-ZHp$-K6@mG6RB0V<(riw&L-_KeuXob9{b zt{E19D@&|G4n)lXV-m$?`B-3vKNAN-I^mS1#J1W-$fOH^^kj){+ zKY<-#of3V7-mp5s%NY$|CN@U3N^dt(aQ>&Up#0<79{^Jkn|y2gHIjNOR4t1LcH3#y z9aQ)Ai-)gCi%^+!WiFfbs*uXV5dEU#M%roqXRp*7ruhimoB3>SFtSjBX( z7Q)Cx1f45NH~>YNgTr)L>f0TV^92?I6pD-F+Z*)3lILN)4mIdRI}}3a^)b0n)dw&! zD5m8E#Il0jyqOJb_||}gJiYnHt?nr5Kqh-?zzs#~&$ zi_{N63*n=3)+%oYF7{jR;axo&vePMR+xL+Q6gG0$ioR=a$%GbG|NaVdyq~+yBSZ?q9Fr1k zUr0pUV$NopJ0si@CEsH%z(t&Q6Cje$p_GEy7RJs&ZvdC)c57B`{G4@Fvu=ai=-HcV z@M!Fp;}BO73Y8Ah>l6l7WKBsD`2zGKF*NssC7!S|&=|@@DaANrq%6-_#Yw%qC&zj{ zi(>g!$tEBt9$cXp(3wZBqFiG1X)js#>`a@tLCvL>I(aeqUfBqLa$c>#DYFC>?Aj<- z$#2G5R&Rg)X=DccED#_;>j@IJo!ykXSp{(mk*6!vLmpKw{AV2(cd#;mz}G>xW>BTK z6dn;1VteE6iXcr=Z)(6NLL?M1VHiUGCx6rs#&Dq_+(;xz2}Qv%Em&@w0Qwu@WI9EK zb9x^Zn+ILOM}G7VULaFxMT4NTXNuuPnJ_;W_$Z;aHDlcmLtJsH@) zQ2C&{S3k^YA=@IAvNKYlg{q*W5i?>@C%ya3#1LX4+RsK_hqIsj7N5t0%<9JlZfPv6 z-yZBA`q?#~$z5t}_iW*7H1gAd{ln$d*x{cP2yN97^qYOps7oza+dHJgcrz3|e)4a# zM5iV}j3cdj(xbE3Dk$Q^RT%mjqK)$-TR%|Mmdija224diUbz{}KI)AsoTB^vMojbzM;)LBZuyLg|-2 z#IIFTx0oEJQ_Q=yiCdmtksr#0CISqlOUXe#Mc%P|PtpDXJ`RT|h2qx)rZ zV&H3&3>GO(`m+Ibr-M@CG)h)+#A#?b8YDC5Sz?gM1ZYzvg^8)WD)br)-=oihC9ZSv zDeYLs>VfnKA@@B242DPk-s$g0;;ZyP<=U&E+h7k}^6TS(KZWgz-byl%g3v$_?$);@ z09kE5W6w$cmgKvgQ}+EVe)b$xE_m&tT`B{);*7Ev@~D=!!TzhAUF2Mbb!@2WYxB$;`WMU`ucBf7is*0N z`H<7Z$z42$n|g!VvW~iFQZjuuqgpwPo=;@d#A>fO z=Lr_F*e-Pi7Gw?`gI_tCy?BDbk3#_OKwTkzTH&^AL}V2hnZH3V)}3z)N1X-~=|s!0 zEWOu8GLX!dQTt5%ZzkryG%G@c8G6AgpuHBu_~}N_6by3%XHCKQzrLEP?ygH1^<9APdj+Dib%=5>yCX zCaq@~);plNMvls!X3O0QIp(nq(Z_7&SlpQF|6Kt`x6+VX(*r|!{Qz%zEUj3o(Ko@e zw5;v934DFlXJ1gL=)XtVKCnqZW_5pR$*o#0&`cH$Xkvhxg)3-qBi{A<%_b(Pz^-}f zw9Ipo*JWe$K)mzk^F7H=j}d>`3jaJrP~}+AwLj3Mr{NO}%xBr?tDKfd%9E-4qf9_d z_@3tb_-acK#f^a%#^{gxl9t37lJARV4JNTsINaBJb4Fa%W0DL6qeHb&MNhugsnVM* z%rM~@KKMQoFTibeX>y;$hiU}rD~8loAG>$;JG*Ct$0_L#pXIQH%0dvMs6U_jpoSGF zOP?Y$A$q?AiO)Az?)d3d(%A>XzFML{?Xr|xU1TKmN*@iQ+RTqs-g9bRavGVm)@N6P zgr9e%tdO+swY+XEtsl1&4hdjp;$J!W?`U8Hl^XW-dnZWtED~7MgPDVc3Dlv#2IA%)QdDRJEW}N{jWAxc zd!9;Y`KiOv&h%@v_2I;vXTR6(tXLQd2QI40pxgkGe1;en))Fs87K2W&I|)J=fsOQ2 zVO$G9XMYQj-5=Kiz}hRQ20*;-@WEIA`IHdJYYDK1rflzmsduqxq*MV|EW@$oJ$E;k1wfB-o* zwgR#i?g;7@kn~^xh5-h`Tl2SXGXO#ImR?U!@5mWHHZ~Tp#?v-*;!x2sm2%ZJQWFy| zns-C~WzNkK?(JM$xW0d{=&us_ZD2qF-=3d?qXN_daw%kg7B)CIm<14KX=!O~2qZo} zDJjX#-F;0dz_LOc%h;b%vqd*JtGcG9q@?6JC7+ax45Sp2k&rYtH}~CKUtb>`ah`%C z$y>S0)(`LJPN%1*!Hu)CQ)D3+Ue(kTCKVPM+D-Q_4X(P(3vCbcJqlD%MC9ppOG`^( zA)~7x2Q_sz7&L$lrkom+HpR1s16+bA*V}%qDpyui0Kjo#aq-cVtb)SA+?;~}VXvn2K?nwqMstBaDp4+~H)DJx?egaL3B=u7>PpHE0jGt|^P zg~NSeMnt_XR@T;QgSY%(Lcy#K!z>`mNo>gK8rZdE0J8*f`j8OJs0dRtGgfBi3^bsH zh0A#HCp$YE0D-_6-{0S_s^XdY|K;h^CVM^b#*O^BwbOd z+uK$oqFA$pIjrYaOVa`<3aCEp7|jZP8G)bgN!)++-~q*hoX_~k&tCbEQNYnqhw*Zd z@O`NUer8>Ago0S+z3HN3@1~Xg-TUWP4&faBa$oQAg1|&X34uIAwoWyy;_xn$R+vTe zH+9CVlxjMb_`XjUM%g286`yLNees@3(=A!|!v<8krK++CD~%G(FXMJie;fr5m09E4 zdJ@ZlHW}lq<5BRoL&3(o`W2hy_?xwSPNQ z%`n@&77fsOJX1NzX=s8cE2Ir!CKxb_woM<}a1=BpacN#!Id$SE`4lx5G$>$f26z6* z1d7o}{abRoa;K8qMGNo8=(WqH9$FYdG9RKGGvH(Vz$Nq32c7skku8ic5KDub>7|8q^4cWGXw$#PjvDEn3gF^dZ zKG~|O2YK0po<5|PciXDy-EK;V6k#gMz=3(k%YlPX5qJO$XM=tA1oc%dh+2(LHBRc5 zoSfI_53=2nl0J*=?05!Ql1~|=)C#x;ZbilyO-%_kd190kJ-VanoWusjmN?CNq}S`F95aq{4Qy^@E}}-IRkki0^L3DqH1v}z>7f)E#msZt^ zQ$TnhbaJ{T=$w+ukG&g0(-C*dw7zK4L8)Z(p?Ki)QT+4-lzY3sTe4?ep$!-%5p1%# zqbF`_T~gU2TaLZH)9-6r-jy{W- zY?4lK?|tO|A(e`Wm~${W2t*hS{qhj)TCux{o4sX5>ZOR4J#iC3=EGImfku{TGq0-# ze&iQUA3}ZqB9e{&X)u9H3=Ko_K$_x<5B=|Ji_{sxrrB3Mwl!~+kVOxEnW|`Vb-DxO zLGO7ZVN}lTxrrzfF&n8*t=Zd!ec(;DstM*J#_&735WaQrvwXkL>^WWY+9XWHUaW`(G%+uX`siDaTef$o-46=w7LN2j* z6-7?QZKWVu`gW+MOZ_}nCm@M@UKegENIy;tm&7Mv|5@3xrv$MNx+i34hM+IL?;9GO zT*vFBi!Prxp6%^}eg98Eep=GVLg>ZvBB1_Vp=4d%37-F~$E)|ecJrlMp=oFU)nV2| z?oEt~0AX%Jk3-1{g%q_Lpj&w4Vc?xDSf+|W zxO_DGr=;gcAHBT#_~R>|U#UYc=X>)MJO2mmQ{YhCADE`r;zG~_ilcnf9pZ|&h|c)g zIOqEsR{RJJ=_lXi;SMA{pKNs8k~4DUMeaESUZu`QHz7`!q|rdq(3{vfZy_MYEDLD} z{dY}dA&XuV#9B4GiG7+UKPMQPEk&WQx|QYuJgG-!o%#?vxMb_>7YS^_FBr(O6jU6o zk84I@j?Q9iG3gL!7`7IEAqQIZusl|M^+e{L25+~w5za5C3S}py{Rvf~#>BAQZM1)I+b`UmGzaV!4%>&1QH3!_4FM`i$^6N~Q5)J-M?KBJLk9_O+hCD(Jz^@5(;b zzWMAOy75K!gP?*eJBLhYM|p61fAJ3nVvV0)e;q3j8XH@5R1ap95sNXcThqU{9SgU3 zM~Fsb08hH-Z*zG6#)zzzs7>xdU)*}uX6f1bH;WCh%)&i%=jkeZxtS{HqL&P#v9vG? zn6oGYJ>p^NeB7iD7b;0z5gE|1`%kqHfX@l;j0r|4%LlTy=#e7rzBIvVwnL{8^5+4A zmlTI51L)UVY^a(fP)acr#vsjmZSnEpd=X~O!^ z%RGfu+;t5$XR@z-Q9X81aGct@jYF>(f#1G(fg`3{au_}mXk?T-47yoWet&)Z^&Okd9;cd|!a5 zubX~VWY&^6vXj;*2rDT4D(pPJNDMLxC3Z$438KLI^0`is?Be zT4E%x=NRZ*!@7ANNbjDw8#nc8rIss ztv0}JIjszCc!j0m`^NXi5%HC*vDOqxXw&-5aPY;m2))sG5)*d`-XjLD{;vz3mwR<( zPc(I=!SYv3e!;eNG8%89m=taYNcN~&#q<2))}!289o%8*^^YNAS2F6EHX7#Tl9T!-R>juuZvr;|DbK zX5`$XWLhbjYyv@VL)2(5URCu*-e*cu=rz3b_+uDtnW_k>e{b>>kAA!Y7g~4V1B0_- zKd5T)FOHd+KT_i}yI+z}miePb;cFbu3@U#0YUtSv?G9Bit>e61SBIJ0YFzTQ1jQR{ ziWPCz&-&h$qu=Qty}}6BGYNzh%c!N`NC6r3flzvr9C1>O|GlRacrF7qE4JXVx2f== z^_{auwC~BoS`^BWZ$ulV*l6NuRP~git6-{5wr-TJBI`r-hWeC({~4_0w~L<_Sp79Cf+d#E#{U~Pk199L8{CK91+I#gZ$R* zKT<~cB49tFEVHJW>(}5s)D|5c*zG04DV-#=bB;<29|to{SICA&dh*uS7rUVxF9xMJ z2~L0hO2L=VRd!T&)RwLnd<}X0?xOlJf|CK+*D|jS>yeZCR?*#F0cfLeo(VF+OUlQJ}7vGF)cenA-`p5&v%<4uNNl(Av4wTIY5hLb~&jlGbJJh_A zrafOUQ+nr-zA%)}FC(5X3T^Lu096?xTPzwhhXlQ~j02m5tnUj%n912;4?lEE@w6>j zT`v`u!`9v+@hg$vefR=BYSAvnXJ}nAhTe%>J-*W7ASQZ~>xzG*{ZVZKXU+0`*X-<@ z8isZ1Z2C<(TzJ-F+Bz}pOG`4SfUbCwq*W4^GkY(mQ@+N^>A6CFndFzrRB-WgX%)oi z_Iomk-Bn&0h;AdAs_vxh+Op#LO(WG7Qx1!%OrnZCC7wZO+x`Qod#MkO;~sTr4$JN4 z9BB|&a;j2|ZCSr@Dov8uz{47eAG*p<3-g;(C3sW843(sk?(=!oTF9da$$6=*s$Ehd z2l?{~!|xdZ-q8Z&5AND^bEXIFVFx2?{gaKDoJ8uYVr!NM_v+H6^xHS93+nB{LbEd1 z81QnI6SQ;ROW2Yb=KAk9nTda?8mPCK-R#YU1PM zbx0-(^zxz^{%PeyysOT!JXEA#eaYcKQft>g$Nb=*GMSx-^+rY63saikvk{jZG@a% zZtX6*v@IhdRl>G;t8CslEyv2K8Ct5@XSSV<;TZuGLYn%;ZbUGRJU>Xdxml%k#C)oVK^u zS$|xV8E(eSKj*1E&-h846+S1NBP57K3E)_*+Y8v zlljNgXeqvk{6vkBRyTG+eJV!FO?5v*j9W#YLS33dOeKi@vPgz*R3}-H?VS?zr2rvU zw7?39%ToXG)kasuC*d^N+^msrMnr<;jd#8r_;dYqz4p6fDt}yypX6pN`y;>2)B6Dd z0e~y}{W~uamKl1>-)s~5`zLFa^YG*VxbBgTPPzdkNTOBkGwPR?-OlHKA;6#Jlkr_h z$7zOsKr}And!{xDtI6^Q?0JS-QtoghwTH69Sdq|(t zi(${6J(FDm=#~mZ0Eqqp4X+a6`Go~1XJ>>5>@E~@av~xk0)_uB25=Ri>ZL$pM9r@N z2dA>KQk(e{fv|!=baX~uzM4`Plc$RYfFw9-Jq$3_#tp34NtGe{+P&{MHOcVR0eog| zZVtF&CnqO(cz6PQn*vTwP5`*WC@C#1Ju91XRFQFZcYhwyh2s4a=#7`|sBD)4HFQTo z5dnd%vrBR^GG-)6AVXGu6p2uMWB`E(F(K8~*2c%h#mMY;c>5dK*xJtI@9ga4S=JxO z&_(OUe`9xtK!AMvY-XmG`RUfu2gi(M)qH{4iShB`k`f)H;D1?fY%Hkic3Z!0ZVW@X z#50va(&7Dk0)3C!*w{3b0jPCaVCcorDLRW3rv?Ey-NeMipd~ZG&gSN@n3q?xXPkpU z-?RL@yy9h$jrcbW2Qc2`e#KpxYg#gX5kj=bIi!pX|Yh}em^n^!9Xh&FQeSQ7e z^XE>(3kxE=yzBZ0TU*4Wq&30M!69BjRUo?L-|U|CQeNlp77$&G$M56764TR%nqdH& z+(iKC@V_E+00_38h)+pL2@MUkcpgNECbu@SmIH6jB`*2PtO|_sAc)@ z%WH!QZTT9rGGP)jGEbnf=H@ob_#T|@E_a8NlyqjUzB*a1ET^!r&|dU7_rf=r)m$^c zeY;cYBsY?Yfnfx1cg))x*?ikSc*j~{;qHeZ|3~h5Q&Ms=&z>^Ma`wnKG?O1M2EiqP z=v==2$w-TW-XTOoNBp{En;W*VLIgl z3jW>L?~>bM-aPyC?LNl+d$MdLulwtc*Vo^qD;!^V$kOeNfVBjsgNu5ETjAQEd8tgx za1d76(II)wZvZZrR)PT6OULbbHNbVfWA)x9FRIOC^N40`j=D4z`{aySo<+K8#FcL7 z_t))_pYB9HKtj6zS^IX9Uw9q0wuT6)97%DP3HQ3IZ!6Q6WL%RZSP*$hsMe*Yy4QgW6(y8BnH1xmvXz@Jd zN9w9H2~LkMjRW7XQ0ZpulDX~t;H>+M%e9gZ014z3!}UrCs%CP=p6e`>&v5bz8`mgK z+b-cM=HuOk3qY$1K-kwU;PE!J*lZDo9ESkOoz^A~sPpbBX|RaLdTZVK>7&><4(vx^ zdM~<{D6rR^8&n`(cj1D&u)%yZYy6;1fvr`9lF&iLlKV>MfG|!(6B$_pV7XLW^o2o+ zmnuyfl+IhmW;%S3XMX*mC-xcOCc4``KvRZzIj)+zOt0ZXGc!EAK90js7Bf9z42MC9 z`9tP8X@l}YP|Azd9_lDNBX8ui%i2Gudk;lYG*qNG{2wOU=C$av5^nF*{yi4Ro17Qg z{HXY-8^3~K>++h~B#ntJJce7tb3L~tz00}Mhv(R-R|v#>anA71i5=d? zDkHtC85=)M^ID~eseW7=u^l-IT;+eq3<-(p_LzvD+p_Ovu$7)aG+4~+dZPG!>Tpd& zq!5{sTBFjwMwezvTBBHAT&~-?CJ!>MqZUQ-7=GB*x2StWeE|_@4i*zQw8rx^g~-#~z#o`*#)3an7W6tVabHHn;R{X5vKBZg^b% z96!XX6s*!?%Z(KKuUBK`o8}Ytu=~@7WSwBpj*aNs@w(P_#U00U34h7v&+ZWAx<o9g&lhyBZ%us6IKf>)hqyc|=2U$7cr(WRx=~Si1Vvet7lilOx2Wsv=*nOxbRH zJRxL+lll5fZfarKRx%E8lXBMTRBi`pu$*j;h1u93is12Z|CeUi7x2IV?ejqrb?^G>o?el)qlm%SNk`?gxRI|&+0A;zr-e&zGLmsS`z@({ZU*vb2_GWi|Jv%sImT#7Dc?id#&4-CzCV>J27e-JH z{DDHtCW*p=G68bD`moxfWowxE$5kyBfWkGbbamHc{hP3LzIy$T2RG9G3xA{@eXz0F z{qvhTHC5!rU@l1G?{+h>aD~$=E8JfTaQ`8uRSg+jKyM! z<1-v=z$H$`C2`o7Hnudjxjv*W_-&MY6(QPSvs16oSQYQk)!EfkbA7emRtKz=yEbZV zHa(G7<=IMpA+`Sp!dXG!9Hl^~r@-rBRt`7#JWvXQk&;%uA(4H6fuXlUeC%i5KXdMz z2UpuN600yoCWGuQeD@}-Y-18w|Dm6gbLqRrari>G?e%Fux=_q?WDNU9j+(30pr*$K zY-I~;8{{PMpBz7aI!{htBdn9Si>-p$F24S_J<%J+=IN5z(*50w4>{QhT8D-nupE(k zgcITxL3o<@;cBg#t9AP;g3FRP;H&ZL@E5eEt0^pu{ORIyYiOC(4H?@zDYMHVxeD=^ z5`G;vCgSeSgPLX2QDZ0H0gp7v6)g z+qKl-lWKH=8RyE2)dyhRA+k>-f5`llBoVk7e749k1U)(`Y%+~!tMVxl^h=6Ulg*T+ z%&~|vE3a}dhuA!3WFD~1LneNabz(e7GlA_A;&&lgG`0U}x5H(s)NpEi-ll4Xr1}28 zbFvF9i7fX49a!eL++G~!yEAr+^;g0k97Tgvlk^X#KUOl$(?6Y!Rl-B`HN%$g4J~ysr+N$>bIDa_+2*n4CWzR{H=wukbgM#{AE% zNst9A)+`#a&@VjwNtLV={#Nls(lhk;=0d|KHqqN%lOeCj#FXN~B97BQc}{<|DmMXJ zi@nM}$=KJ%UzDwjKk(I@JqqTJ4&-v_gP%BQvF5-|My+e-?UtYsB2&}OP9Dbh{xhnB zlQj^w&@5_stNovIeI{w&JrH&jOnnv>S8INTHze#d)TY#hj($e4z9m>ca2+G_CK;Xk z%?(da!LdTuX#J4sX?yCh24948k-s~Bn^ygFVP$Z;xRS{E&w<(n&pr_xDOx&f0a9YG z-*ynpzZ-)x#I1?!X|;NY%}vU7i11ElcXxM3e@X+n>s1-w68zTdw#&Rv)UxiArp8i6 zGaaW3Q~$jSi-vCpn+3brWTp)$NhV4TCnD>QX5Kaoj}J4lb<0d&E1m8mH`dr-qx@;& z3Y#F!Ua$BkAfa<7BO%P2ZBVviwVQYgZC&Gs{KzWtPD{$Gmlm&@%lKUi%Pd=jb=ZN* zQGeSjgb(}#b=$|2VzGgdra_ZdUf_IFa zMsIDN`5!vXDe9Ncx3r!09BX0FKDzyWwe;^nOaT=`AmB>2N@>D1RW4*)rv5p$=<;e> zeuIdYQE-tUiCndSv;FN)7apNu24Cx(5G~XlD|E36sqsxa(!aN!%b*X^kO)0>*|Q1` z(+J&KP}_;K4)UWxOYL1B5fBb$?8FV0L?cC4NbsELZp_F5u2FXF&*9M9I{3fygYip4 zcxree(nL8b%Ac_tr*vna=*@j@jrEW+xk-ObJ(?)-Y~Yo_N9PldvZDCbVw=%{0lBl? zV(n&8>)W0j6D>8igYnOJWhInFul zzI?Y7R7LEH%IVigc2So5Zx2Jdn}M&r?>Y%Iq5fe{Hf!6eXW4liWo$ArP^j6}dkRT7 zqfP05rzHxEdk*Q|&he@4?Nt`{FP9kx!R(nXzH7w!LA|q45EWsLOwrGiHJ!&*UVQDL zp?lMD&iy?y^d6Dcx5B)(310lo8m`?DudTejwKMV?%dNgjtn_EJq|fP^G{1S!m)Yu{ zXsftWNeNJ?*Hfvi-);oG(lX=aBGih|>1XK&LrQNP-YD+%Fd7fs~ zyB@G3>z*ExwRvrwiFm)&rV=p|G!ZLK_vtY!^-uI_BR_@nKD9&ZelN&5ay)u^ptBtOnD>BWUdOn7wIL2CrF1<&ly1@rBT36?eRQY_EEAJFz zKXpfMQ|n-OuWTHtWU6wjtSBt~JPYe|mLSX#}abaO~j5ZNE&7iUxTBxdD%JFFBWatUpZg z;+ug8Z-V(~cEMIeF8nNNd*9&bP`v|+iQ|?Z<~N;+X?CUlnOyPuN2+<+F*2BcAwi_5sQa|298#5aQvsP6nnXl&K* zM&24T99E`NseskMuN*!c3J6k3#OK5pcc=Ke< z`Ua@2-*CO$`@~~T_J0M|3n}#M_jW7&%RZT6dEeYJjYyS?zjN`~U!RkP?(|9bf4hyH z305J3?^=3Zp0#Mx$On`3a}D~W>ptI7BKkrno_=o_?$Oxi^}ge&hD$XD+_v?jsM}Yn@fg zB0-zSZ3{&Fi8^OEVGkwj;c|PZ+#W7-M9SUq%0rGhp3{|pzCahS2LjQU0c*j{+JoZD z(xiby#c1oz6c(V&&Tq}_16M%Z*oRXcJsH%V&cH$#WtluNusAP{Q*OAlfj5jfwFw8T zZbp*hKtyoSpXiHCmwnlxdN_3~*E3N1;v*dDvYIj{R> z(LVdU)ymn4z%^w}d?aPwKfnKrWEuuzLB*&5m0I2;7rw3!JLSd$2N zT;ZvdrY|mIaB3dToISf@)I@Kh))}p`1u?A39igb*7qoc;cCSB?sN8y`C5~Ea+PNDp zeZy9(UA6PpHyv@@y{DZwhW3vv3UJhdoW=O z#%-Z8Td3R?O4vg2Xx)gJvu2fszFy36ErX!oR(u;Cq+TVXPd(9o(ih)r<$VizTDk{k zwn5`io`J@I{%C$0F2@Pg{SW-y1$TkqHOjO<%?D!c1QX0}z%o(--#wTdI~3i9|z3B9TZW68a(`t1X>jZjSCD^KkToNxjM( z7GmS2pGaw3`TO1%DUNeHdv|?%6dc&$}C8aOKFD&~KwXR5o&4^k25l1NQG9p<3qv)X# zpE7yL-PT!k(+ML^TxF>n)?VTAl~=rKoegifH$QgWRkvPp+SG;yhs$m8 z_=g1|ioQ4$e-(XMgYg@0yCZ{2LSJ{}-~r2v<-33AJm<3x+OvOjtF2=nO6_QxH}&qk zEYsirb7w#4>&F~^TyHXeKoNT8br#?dUL@4!o+t@^?dd*~%3vxM_I|5%5-8Z0zFx}F zBh1#pz-mg;Ip(1OdtXx@OI`IfeixUZ3^a9EMPJ44BA>q0JA+@^dNh6MMv`PkBoYlB zi9{liNa%~eQiY3!+3cPLq&}VUal48J$$0ul=!=k;C^X$mc33w55F5ZuSz4G{=6-@w z0#S@IB3goHwQ1bLNj9+qmrCpkE7F-yUrgo7Mg9fIO3{~AXHTZo^o0&S>Nt0#(jJUM zUo=-R>NFx&kKg8tc*;jiTY8l>Cr{ch9=pG)_MzcpADg`FjFneEXN48l9zAlcabuPn zG2HLq8!a0DucfEKkUd1DiwV_oBPrq`lU;`PvjPY_=hca zf#6_f8S0&zz-Yx+{i82l6>zj;KWNuI2fovW!PS!oUuLS&H8ar6j$V$yr|{@7zSKZ5 z(-&yO3xLDlYhz+!WmA%@-1>oM9s-&3yU4)Ieh(OEYd_Zljw<>pei!-lbx3Xk8}Ar2 zeL=H7xAo8zl8Hnjk!Yw$BoYaIRpln#FypJ>R?H$!vDaIzr0P+^Z9y)c{QLB!+NcMU zgpo|fA&t;XS*tzMf>%KU(#-u#9U@j&^%UqdQ`Un&cQILuO=No&q%YhKb>#m=Uqr&3 zQMEy!FSO;3yE#Lo9VVbJ8^%{4Gbtt31uqEvzSU1pkVu(%^+(bf`Iks^LoEfSKuwIcem@ zLR=t|N)D`U8Zdn^j98$y423=TIR6qK&e!x+>@M=@3y`BO;!vOWB@&55B9TZW^rfd! zJ-wJx2%AX@JaI9M0X)2p@90_7R6O}N=?epjBHl!vYW3(`S%fhU^>^OalfQLS!A_S+ zRP%K35-7I8jj&pfzSNwW6FzL$j^C#X)9XFoGWhep%-Ul6T>vmL2Cacmj;0K|5w;sq z{3~ayrZ!Y|mMbzdHgT?X>POCoEj>QB%W1LOhuIxApD}#=WFt{&aR;EUobeT=ZNB{u z8B|*OLhuYu4q2h(?_K;w2fieko#tA9a4-)NXACfd$LQ}reUaJ7Fx~BqR?I81S6L=; zvH$cn?XlFxrYapw%~A%JnZ5u>W(uS5%}A*avIi;Y0r(M`5@Bk}+Uk{7{qgGN zKU0~Sfo8V92!>T!mWIZHH4iDZK>2ZsC6ZQ#S4Pyzm1z1R0aBk7Q*LnR3mtIy(T*Us z3gb2-Wc3*qui*&9T){YQn9qo<=rlg8*)SR3;sj5$!sD~p>=v8D;&3~R=w>_YRzGgC z)gN|8E1)kvzW-r|XV75K7fGdfU+OmssBD3G%23i<;d`C|yuk=#H+CKneW5G9>QJMB zk*bWKe$v-FbJMIs>MWak;2bl3vCMC6QEY>SeEKp!^$CxpiqIE##vIB6ayFo*ui|&1 zFN22vMzuqI@tVHO?LZDL5{ZV6L?V$$B=n_zCX2X^FqpuY7xAi-V%*Y+tA#IIVt!K^1)r88p&B^kIO8A&wNje2o`?Rv&CqS{L;mxLV88$ z3o`>#j^xRf?hL;PMlzSqJj{>n2aUcE6*8i=jgC+@Z_sYU>PAkSG<{izCun#16L$AQ zjhoJ`+U4*mtJT$vusPjUm)GJ6c%v0t@49#6gz0b>-dDJ~;l^8U%b-D`FRg;bF!T?9 zvF-0j5#8WR?m{FIi9{liNa$cXWfGiJ|= zj7v(lb~|lZ@=&YgnruRvijlE}U3hF#NACncyLO=AMij+y_%YIlDS-Ati*^;YL@NMP zs;aA25X6dr&cw8aWYWn@vpsIQL@C%N!|nGuPw>Cs$Nli})BU5VFR}mtpuW`Cz|_FKz%v&1pol3uK`Yd0RVvd+HSY%YuNgVCs1Di0Pv5fFQ>i$06={eMWKR* zx)@)50RTY$_0@IVvA#xELTG?{a`n5u;vv)*003lOUrp1LW%=x_&xZrt^LIszA5WmZ z001EK`s(|Bx7$@!_2$dn=+*a2hKGy6uWy$zemp@ug!%#ifSd!Y@B6lG>$+YpmoMJm zK7D;RdihNko%>?sm^ubutyVF9JV89fF}>7R{r~{*`EWj;Pp8w#WHKI)uQ{8TH%5-B zWAOEQefsTCeE|SKo(>@eSlhOn%_ahDu~^Jzvzz2IXK<6m$T4*c9<#^z$MpIy>I(n> z1lWGRZ#C~Cq&V^Q5hzZSNsJs*$KWyhAL*5UeE|S~0PB)A`N7$=Ntc|aSN`<{ k000~w{JbCz5AOf&7YUEx=1B``52u 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%0Dr*kqMI)33@RI8NB5I9*{E&aIq1nRZ*yNz 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