diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 9a93a800d10..00000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - has-parent - - Help wanted -# Label to use when marking an issue as stale -staleLabel: Stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 00000000000..a0754bc81ed --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,19 @@ +name: Lock + +on: + schedule: + - cron: "0 * * * *" + +jobs: + lock: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v2.0.1 + with: + github-token: ${{ github.token }} + issue-lock-inactive-days: "30" + issue-exclude-created-before: "2020-10-01T00:00:00Z" + issue-lock-reason: "" + pr-lock-inactive-days: "1" + pr-exclude-created-before: "2020-11-01T00:00:00Z" + pr-lock-reason: "" diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 00000000000..b666efdd068 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,36 @@ +name: Stale + +on: + schedule: + - cron: "0 * * * *" + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v3.0.13 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + days-before-stale: 60 + days-before-close: 7 + operations-per-run: 30 + remove-stale-when-updated: true + stale-issue-label: "stale" + exempt-issue-labels: "no-stale,Help%20wanted,help-wanted" + stale-issue-message: > + There hasn't been any activity on this issue recently. Due to the high number + of incoming GitHub notifications, we have to clean some of the old issues, + as many of them have already been resolved. + + If this issue is still relevant, please let us know by leaving a comment 👍 + + This issue has now has been marked as stale and will be closed if no further + activity occurs. Thank you for your contributions. + stale-pr-label: "stale" + exempt-pr-labels: "has-parent" + stale-pr-message: > + There hasn't been any activity on this pull request recently. This pull + request has been automatically marked as stale because of that and will + be closed if no further activity occurs within 7 days. + + Thank you for your contributions. diff --git a/CODEOWNERS b/CODEOWNERS index e3e44e5729d..6afb998172d 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -12,6 +12,7 @@ source/_integrations/abode.markdown @shred86 source/_integrations/accuweather.markdown @bieniu source/_integrations/acmeda.markdown @atmurray source/_integrations/adguard.markdown @frenck +source/_integrations/advantage_air.markdown @Bre77 source/_integrations/agent_dvr.markdown @ispysoftware source/_integrations/airly.markdown @bieniu source/_integrations/airvisual.markdown @bachya @@ -70,7 +71,7 @@ source/_integrations/cisco_ios.markdown @fbradyirl source/_integrations/cisco_mobility_express.markdown @fbradyirl source/_integrations/cisco_webex_teams.markdown @fbradyirl source/_integrations/cloud.markdown @home-assistant/cloud -source/_integrations/cloudflare.markdown @ludeeus +source/_integrations/cloudflare.markdown @ludeeus @ctalkington source/_integrations/comfoconnect.markdown @michaelarnauts source/_integrations/config.markdown @home-assistant/core source/_integrations/configurator.markdown @home-assistant/core @@ -155,8 +156,8 @@ source/_integrations/goalzero.markdown @tkdrob source/_integrations/gogogate2.markdown @vangorra source/_integrations/google_assistant.markdown @home-assistant/cloud source/_integrations/google_cloud.markdown @lufton -source/_integrations/google_translate.markdown @awarecan source/_integrations/gpsd.markdown @fabaff +source/_integrations/gree.markdown @cmroche source/_integrations/greeneye_monitor.markdown @jkeljo source/_integrations/griddy.markdown @bdraco source/_integrations/group.markdown @home-assistant/core @@ -267,7 +268,7 @@ source/_integrations/neato.markdown @dshokouhi @Santobert source/_integrations/nederlandse_spoorwegen.markdown @YarmoM source/_integrations/nello.markdown @pschmitt source/_integrations/ness_alarm.markdown @nickw444 -source/_integrations/nest.markdown @awarecan +source/_integrations/nest.markdown @awarecan @allenporter source/_integrations/netatmo.markdown @cgtobi source/_integrations/netdata.markdown @fabaff source/_integrations/nexia.markdown @ryannazaretian @bdraco @@ -295,7 +296,7 @@ source/_integrations/ohmconnect.markdown @robbiet480 source/_integrations/ombi.markdown @larssont source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu source/_integrations/onboarding.markdown @home-assistant/core -source/_integrations/onewire.markdown @garbled1 +source/_integrations/onewire.markdown @garbled1 @epenet source/_integrations/onvif.markdown @hunterjm source/_integrations/openerz.markdown @misialq source/_integrations/opengarage.markdown @danielhiversen @@ -307,7 +308,6 @@ source/_integrations/orangepi_gpio.markdown @pascallj source/_integrations/oru.markdown @bvlaicu source/_integrations/ovo_energy.markdown @timmo001 source/_integrations/ozw.markdown @cgarwood @marcelveldt @MartinHjelmare -source/_integrations/panasonic_viera.markdown @joogps source/_integrations/panel_custom.markdown @home-assistant/frontend source/_integrations/panel_iframe.markdown @home-assistant/frontend source/_integrations/pcal9535a.markdown @Shulyaka @@ -324,6 +324,7 @@ source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa source/_integrations/point.markdown @fredrike source/_integrations/poolsense.markdown @haemishkyd source/_integrations/powerwall.markdown @bdraco @jrester +source/_integrations/profiler.markdown @bdraco source/_integrations/progettihwsw.markdown @ardaseremet source/_integrations/prometheus.markdown @knyar source/_integrations/proxmoxve.markdown @k4ds3 @jhollowe @@ -345,7 +346,7 @@ source/_integrations/rainmachine.markdown @bachya source/_integrations/random.markdown @fabaff source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/repetier.markdown @MTrab -source/_integrations/rfxtrx.markdown @danielhiversen @elupus +source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221 source/_integrations/ring.markdown @balloob source/_integrations/risco.markdown @OnFreund source/_integrations/rmvtransport.markdown @cgtobi @@ -353,6 +354,7 @@ source/_integrations/roku.markdown @ctalkington source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn source/_integrations/roon.markdown @pavoni source/_integrations/rpi_power.markdown @shenxn @swetoast +source/_integrations/ruckus_unleashed.markdown @gabe565 source/_integrations/safe_mode.markdown @home-assistant/core source/_integrations/saj.markdown @fredericvl source/_integrations/salt.markdown @bjornorri @@ -426,6 +428,7 @@ source/_integrations/tado.markdown @michaelarnauts @bdraco source/_integrations/tag.markdown @balloob @dmulcahey source/_integrations/tahoma.markdown @philklei source/_integrations/tankerkoenig.markdown @guillempages +source/_integrations/tasmota.markdown @emontnemery source/_integrations/tautulli.markdown @ludeeus source/_integrations/tellduslive.markdown @fredrike source/_integrations/template.markdown @PhracturedBlue @tetienne @@ -440,7 +443,7 @@ source/_integrations/tmb.markdown @alemuro source/_integrations/todoist.markdown @boralyl source/_integrations/toon.markdown @frenck source/_integrations/totalconnect.markdown @austinmroczek -source/_integrations/tplink.markdown @rytilahti +source/_integrations/tplink.markdown @rytilahti @thegardenmonkey source/_integrations/traccar.markdown @ludeeus source/_integrations/tradfri.markdown @ggravlingen source/_integrations/trafikverket_train.markdown @endor-force @@ -485,6 +488,7 @@ source/_integrations/wled.markdown @frenck source/_integrations/wolflink.markdown @adamkrol93 source/_integrations/workday.markdown @fabaff source/_integrations/worldclock.markdown @fabaff +source/_integrations/xbox.markdown @hunterjm source/_integrations/xbox_live.markdown @MartinHjelmare source/_integrations/xiaomi_aqara.markdown @danielhiversen @syssi source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG @@ -496,7 +500,7 @@ source/_integrations/yeelight.markdown @rytilahti @zewelor @shenxn source/_integrations/yeelightsunflower.markdown @lindsaymarkward source/_integrations/yessssms.markdown @flowolf source/_integrations/yi.markdown @bachya -source/_integrations/zeroconf.markdown @Kane610 +source/_integrations/zeroconf.markdown @bdraco source/_integrations/zerproc.markdown @emlove source/_integrations/zha.markdown @dmulcahey @adminiuga source/_integrations/zodiac.markdown @JulienTant diff --git a/Gemfile.lock b/Gemfile.lock index d7130167232..66c5c80f8ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -107,7 +107,7 @@ GEM terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) tilt (2.0.10) - tzinfo (2.0.2) + tzinfo (2.0.3) concurrent-ruby (~> 1.0) tzinfo-data (1.2020.4) tzinfo (>= 1.0.0) diff --git a/_config.yml b/_config.yml index d5494fa77e9..6983d5c4d3b 100644 --- a/_config.yml +++ b/_config.yml @@ -99,9 +99,9 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 116 -current_patch_version: 4 -date_released: 2020-10-15 +current_minor_version: 117 +current_patch_version: 5 +date_released: 2020-11-05 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml index b86a243c334..342b1ae6a9d 100644 --- a/source/_data/glossary.yml +++ b/source/_data/glossary.yml @@ -22,6 +22,8 @@ description: "[Device trackers](/integrations/device_tracker) are used to track the presence, or location, of a device." - topic: Discovery description: "[Discovery](/integrations/discovery/) is the automatic setup of zeroconf/mDNS and uPnP devices after they are discovered." +- topic: Domain + description: "Entities and services belong to a domain, which is the first part of the entity or service, before the `.`. For example `light.kitchen` is an entity in the `light` domain, while `homeassistant.turn_on` is the `turn_on` service for the `homeassistant` domain." - topic: Entity description: "An [entity](/docs/configuration/platform_options/) is the representation of a function of a single device, unit, or web service. There may be multiple entities for a single device, unit, or web service, or there may be only one." - topic: Event diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 9f71d119f8f..c2246e8c3cb 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -22,20 +22,19 @@ Supported by MQTT discovery: - [Tag Scanners](/integrations/tag.mqtt/) - [Vacuums](/integrations/vacuum.mqtt/) -To enable MQTT discovery, add the following to your `configuration.yaml` file: +MQTT discovery is enabled by default. To disable MQTT discovery, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry mqtt: - discovery: true - discovery_prefix: homeassistant + discovery: false ``` {% configuration %} discovery: description: If the MQTT discovery should be enabled or not. required: false - default: false + default: true type: boolean discovery_prefix: description: The prefix for the discovery topic. @@ -277,6 +276,7 @@ The following software has built-in support for MQTT discovery: - [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0) - [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt) - [MiFlora MQTT Daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon) +- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway) ## Examples diff --git a/source/_docs/mqtt/service.markdown b/source/_docs/mqtt/service.markdown index c5b78436cfb..130ff59e469 100644 --- a/source/_docs/mqtt/service.markdown +++ b/source/_docs/mqtt/service.markdown @@ -13,7 +13,7 @@ The MQTT integration will register the service `mqtt.publish` which allows publi | `topic` | no | Topic to publish payload to. | `payload` | yes | Payload to publish. | `payload_template` | yes | Template to render as payload value. Ignored if payload given. -| `qos` | yes | Quality of Service to use. +| `qos` | yes | Quality of Service to use. (default: 0) | `retain` | yes | If message should have the retain flag set. (default: false)
diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index 72becdec805..f7c3d3467b8 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -3,92 +3,60 @@ title: "Z-Wave Devices - Adding and Removing" description: "How to add and remove Z-Wave devices." --- -## Recommendation before adding any devices +## Adding Devices -Z-Wave devices behave as a mesh and can store network relationship details on the device itself. This means used devices or even brand new devices could already be enrolled in another network, for example, a test network for a brand new device or a previous network for devices that aren't new. This could cause headaches when you're attempting to add/enrol the device to your network. It is recommended that if possible, perform a factory reset AND device perform exclusion or disenroll for the device you're attempting to add to Home Assistant. Steps can found further below on this page under "Removing Devices". +To add a [Z-Wave device](/docs/z-wave/devices/): -## Adding Non-Secure Devices +1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/). +2. Click **Add Node** in the *Z-Wave Network Management* card, or **Add Node Secure** for secure devices like locks. This puts your [Z-Wave controller](/docs/z-wave/controllers/) in "inclusion" mode. +3. Activate your device by following the instructions provided with it. Usually, this involves pressing a button. +4. Make sure the device is in its final location, then click **Heal Network**. This is optional but helps optimize network speed. -To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your system: - -1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend -2. Click the **Add Node** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode -3. Activate your device to be included by following the instructions provided with the device -4. With the device in its final location, run a *Heal Network* - -Don't use this for [secure devices](/docs/z-wave/adding/#adding-secure-devices), since this is likely to limit the features the device supports. +When you add a device, it may initially appear without a specific entity ID (e.g., `zwave.__`) or other identifying information. *Heal Network* should speed the process of populating this information. You *might* need to restart Home Assistant for the entity ID to appear.
-Don't use the OpenZWave control panel (OZWCP), **or the physical button on a controller**, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports. +Some Z-Wave USB sticks have a physical "inclusion" button to add devices; **don't use it**. Likewise, don't add devices directly through other tools like [OpenZWave control panel](https://github.com/OpenZWave/open-zwave-control-panel). Many devices only send capabilities information at the time you add them, so if you add them outside of Home Assistant this information will be missing.
-When you add a device, it may initially appear without a specific entity ID (e.g., `zwave.__`) and without other identifying information. Running a *Heal* should help speed this process up, and you'll need to run a *Heal* anyway so that all the devices in your Z-Wave network learn about the new device. You *might* need to restart Home Assistant (not reboot the system) to have the entity ID fully visible. - -## Network Key - -Security Z-Wave devices require a network key. Some devices only expose their full capabilities when included this way. You should always read the manual for your device to find out the recommended inclusion method. Note, secure devices that had been connected to another hub/network in the past may have a "theft protection" feature which requires to first exclude the device successfully from the previous hub using the previous hub/Software setup before it can be enrolled in a new hub/network. - -A valid network key will be a 16 byte value, defined in the Z-Wave section of your configuration, such as the following example: - -```yaml -zwave: - usb_path: /dev/ttyACM0 - network_key: "0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10" -``` - -Each individual value in the defined key can be anywhere from 0x00 to 0xFF. Define your own key by making changes to the above example key or for additional security try one of the two scripts mentioned below. - -### Network Key - -An easy Linux script to generate a random key: -(remember you can run this in Home Assistant OS or Supervised, you can use the Terminal Add-on) - -```bash -cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' -``` - -On macOS, this script will generate a random key: - -```bash -cat /dev/urandom | LC_CTYPE=C tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' -``` - -If the above command doesn't work then replace `LC_CTYPE=C` with `LC_ALL=C`: - -```bash -cat /dev/urandom | LC_ALL=C tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//' -``` -
-Ensure you keep a backup of this key. If you have to rebuild your system and don't have a backup of this key, you won't be able to reconnect to any security devices. This may mean you have to do a factory reset on those devices, and your controller, before rebuilding your Z-Wave network. -
- -## Adding Secure Devices - -After defining your network key, follow these steps to add (include) a secure Z-Wave device: - -1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend -2. Click the **Add Node Secure** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode -3. Activate your device to be included by following the instructions provided with the device -4. With the device in its final location, run a *Heal Network* - -
-Secure devices require additional bandwidth, and too many secure devices can slow down your Z-Wave network. We recommend only using secure inclusion for devices that require it, such as locks. +Secure devices require additional bandwidth; too many secure devices can slow down your Z-Wave network. We recommend only using secure inclusion for devices that require it, like locks or garage door openers.
## Removing Devices -To remove (exclude) a Z-Wave device from your system: +To remove a [Z-Wave device](/docs/z-wave/devices/): -1. Go to the Z-Wave control panel in the Home Assistant frontend. (Home Assistant > Configuration > Integrations > Z-Wave > Configure) -2. Click the **Remove Node** button in the *Z-Wave Network Management* card - this will place the controller in exclusion mode -3. Activate your device to be excluded by following the instructions provided with the device -4. The device should now be removed, but that won't show until you restart Home Assistant. Look for a confirmation signal on the device if available, or confirm on the Home Assistant logs. -5. Run a *Heal Network* so all the other nodes learn about its removal +1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/). +2. Click **Remove Node** in the *Z-Wave Network Management* card. This puts your [Z-Wave controller](/docs/z-wave/controllers/) in "exclusion" mode. +3. Activate your device by following the instructions provided with it. Usually, this involves pressing a button. +4. The device should now be removed, but that won't show until you restart Home Assistant. Look for a confirmation signal on the device if available, or confirm in the Home Assistant logs. +5. Click **Heal Network**. This is optional but helps optimize network speed. -If your device isn't responding to this process, possibly because you've factory reset it or it has failed, you can remove it using **Remove Failed Node**. This only works for devices marked as `"is_failed": true`, but you can trick the system into thinking that this the case: +If your device isn't responding to this process, possibly because you've factory reset it or it has failed, you can remove it using **Remove Failed Node**. + +## Troubleshooting + +Problems adding or removing devices? + +### Already Added + +If your device was previously added to another controller but not removed from it, **you must remove it before adding it to Home Assistant**. + +1. **Remove the device from the old controller**, if possible. If your device was added to a different system (SmartThings, Wink, etc.) follow that system's instructions to remove the device. Then try adding the device to Home Assistant again. +2. If you can't remove it from the old controller, **try removing the device using Home Assistant**. Follow the instructions in [Removing Devices](#removing-devices); even though it hasn't been added to Home Assistant yet, most Z-Wave devices will respond to exclusion mode from *any* controller. Then try adding the device to Home Assistant again. (Secure devices with a theft protection feature may not allow this.) +3. If removing the device doesn't help, **try a factory reset** as a last resort. Check your device's manual for instructions. + +### Range Issues + +Normally you can add and remove devices as long as they are within range of any Z-Wave Plus device in your network, using a feature called [network-wide inclusion](https://z-wavealliance.org/z-wave_plus_certification/). + +If you are using older non-Z-Wave Plus devices, your device may need to be within the range of your [controller](/docs/z-wave/controllers/) to be added or removed. If you cannot move the device (e.g., wall switches), you can try temporarily relocating your controller to be near your device. See the [Z-Wave Alliance documentation on Z-Wave Plus](https://z-wavealliance.org/z-wave_plus_certification/) for more information on how to determine if your devices support Z-Wave Plus. + +### Forcibly Removing Devices + +You can use the **Remove Failed Node** button to remove a failed device (e.g., because it is broken). In rare cases, you may want to remove a device that has *not* failed. This is not recommended but can help when a device has not been recognized as failed. 1. Go to the *States* menu under *Developer tools* in the Home Assistant frontend 2. Click on the name of the `zwave.` entity you want to remove @@ -101,13 +69,6 @@ If your device isn't responding to this process, possibly because you've factory ``` 5. Click **Set State** -6. Go to the Z-Wave control panel in the Home Assistant frontend -7. Click the **Remove Failed Node** button in the *Z-Wave Node Management* card +6. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) +7. Click **Remove Failed Node** in the *Z-Wave Node Management* card 8. The device will now be removed, but that won't show until you restart Home Assistant - -## Troubleshooting - -Sometimes devices won't add to Home Assistant. There are a couple of possible problems. - -1. You're not using all Z-Wave Plus devices, in which case the device can't use the mesh to be added, and must be in the same room as your controller. -2. The device was previously added to another controller, and not removed. You'll need to follow the process above for removing devices first, then try adding it again. diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index fd0d872c826..a60590740fd 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -3,14 +3,17 @@ title: "Z-Wave Control Panel" description: "How to use the Z-Wave control panel." --- +The Z-Wave control panel is available via **Configuration** → **Integrations** → **Z-Wave** → **Configure**. + +* **No Z-Wave integration?** Follow the [set up instructions](/docs/z-wave/installation/) to enable it. +* **Missing the *Configuration* button?** See the [configuration documentation](/integrations/config/) for instructions on enabling it. +
- If you don't see the **Configuration** menu on the menubar, where you'll find the Z-Wave menu, [see here](/integrations/config/). +The current Z-Wave integration will eventually be deprecated and replaced with a [new implementation based on OpenZWave Daemon](https://developers.home-assistant.io/blog/2020/02/04/new-zwave/); it's currently in beta, and you can [try it now](/integrations/ozw/).
-Renaming Z-Wave entities is now done using the same [customization options](/docs/configuration/customizing-devices/) as for any other entity. - ## Z-Wave Network Management Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices from your network. @@ -85,6 +88,8 @@ The **Polling intensity** says how many poll intervals this device is polled on. You can also exclude a Z-Wave devices from Home Assistant. You can do that if you have a device that you need to have on the Z-Wave network, but you don't want it to appear in Home Assistant, or if you've got a device that's failed and you're unable to exclude it. +Renaming Z-Wave entities is done with the same [customization options](/docs/configuration/customizing-devices/) as any other entity in Home Assistant. + ### Node Values Contains a list of available values of the selected node, and it's instances. @@ -161,3 +166,4 @@ for c in sys.argv[1]: If you want to only retrieve some lines at the end of the log, you can specify that with the selection field. Max is the last 1000 lines and minimum is 0 which equals the whole log. If this is not specified, you will retrieve the whole log. Select **Load** to open a new window with the static log. Select **Tail** to open a new window with a tailing log with the last specified lines of the log. This is a self updating window. + diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index f66cad11ba9..0b0ce881381 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -177,7 +177,7 @@ To provide Central Scene support you need to **stop your Z-Wave network** and mo ### Inovelli Scene Capable On/Off and Dimmer Wall Switches -For Inovelli switches, you'll need to update (or possibly add) the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: +For Inovelli switches, you'll need to update (or possibly add) the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg_*.xml` file with the following: ```xml @@ -188,18 +188,13 @@ For Inovelli switches, you'll need to update (or possibly add) the `COMMAND_CLAS ``` -Once this is complete, you should see the follow `zwave.scene_activated` events: +For Inovelli LZW30-SN and LZW31-SN switches with a third button for configuration, you'll need to add a third scene for that under the COMMAND_CLASS_CENTRAL_SCENE CommandClass: -**Action**|**scene\_id**|**scene\_data** -:-----:|:-----:|:-----: -Double tap off|1|3 -Double tap on|2|3 -Triple tap off|1|4 -Triple tap on|2|4 -4x tap off|1|5 -4x tap on|2|5 -5x tap off|1|6 -5x tap on|2|6 +```xml + +``` + +Once this is complete, `zwave.scene_activated` events will fire according to which button press you perform. For information on what button press corresponds to what scene_id and scene_data in the event, see [Inovelli Knowledge Base > How To: Setting Up Scenes In Home Assistant](https://support.inovelli.com/portal/en/kb/articles/how-to-setting-up-scenes-in-home-assistant). ### Zooz Scene Capable On/Off and Dimmer Wall Switches (Zen21v3 & Zen22v2 - Firmware 3.0+, Zen26 & Zen27 - Firmware 2.0+, Zen30 Double Switch) diff --git a/source/_includes/asides/hassio_navigation.html b/source/_includes/asides/hassio_navigation.html index 0981ec681b2..7661f7763b4 100644 --- a/source/_includes/asides/hassio_navigation.html +++ b/source/_includes/asides/hassio_navigation.html @@ -18,7 +18,6 @@ Advanced diff --git a/source/_integrations/advantage_air.markdown b/source/_integrations/advantage_air.markdown index c3a737ce378..8e6e259f1b4 100644 --- a/source/_integrations/advantage_air.markdown +++ b/source/_integrations/advantage_air.markdown @@ -8,6 +8,7 @@ ha_config_flow: true ha_codeowners: - '@Bre77' ha_domain: advantage_air +ha_quality_scale: platinum --- The Advantage Air integration allows you to control [Advantage Air](https://www.advantageair.com.au/) Air Conditioning controllers into Home Assistant. diff --git a/source/_integrations/air_quality.markdown b/source/_integrations/air_quality.markdown index f1c2f6a8fde..d56c2d81eda 100644 --- a/source/_integrations/air_quality.markdown +++ b/source/_integrations/air_quality.markdown @@ -2,7 +2,7 @@ title: Air Quality description: Instructions on how to add air quality sensors with Home Assistant ha_release: 0.85 -ha_iot_class: ~ +ha_iot_class: ha_domain: air_quality --- diff --git a/source/_integrations/alarm_control_panel.markdown b/source/_integrations/alarm_control_panel.markdown index 35e32ffd6b7..5d96a63b445 100644 --- a/source/_integrations/alarm_control_panel.markdown +++ b/source/_integrations/alarm_control_panel.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.7.3 ha_quality_scale: internal ha_domain: alarm_control_panel -ha_iot_class: ~ +ha_iot_class: --- Home Assistant can give you an interface which is similar to a classic alarm system. diff --git a/source/_integrations/auth.markdown b/source/_integrations/auth.markdown index 9fc051c74eb..faa5da33513 100644 --- a/source/_integrations/auth.markdown +++ b/source/_integrations/auth.markdown @@ -4,7 +4,7 @@ description: This integration is responsible for providing the authentication en ha_category: - Other ha_release: 0.73 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/automation.markdown b/source/_integrations/automation.markdown index 1b43f7cf5d5..1882d98d6ae 100644 --- a/source/_integrations/automation.markdown +++ b/source/_integrations/automation.markdown @@ -7,7 +7,7 @@ ha_release: 0.7 ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' -ha_iot_class: ~ +ha_iot_class: ha_domain: automation --- diff --git a/source/_integrations/binary_sensor.markdown b/source/_integrations/binary_sensor.markdown index 37b87e2e08b..0ee19b6cd60 100644 --- a/source/_integrations/binary_sensor.markdown +++ b/source/_integrations/binary_sensor.markdown @@ -4,7 +4,7 @@ description: Instructions on how-to setup binary sensors with Home Assistant. ha_category: - Binary Sensor ha_release: 0.9 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_domain: binary_sensor --- diff --git a/source/_integrations/bluetooth_le_tracker.markdown b/source/_integrations/bluetooth_le_tracker.markdown index 3d9320178fb..39f07703eb5 100644 --- a/source/_integrations/bluetooth_le_tracker.markdown +++ b/source/_integrations/bluetooth_le_tracker.markdown @@ -65,8 +65,8 @@ Normally accessing the Bluetooth stack is reserved for root, but running program ```bash sudo apt-get install libcap2-bin -sudo setcap 'cap_net_raw,cap_net_admin+eip' `readlink -f \`which python3\`` -sudo setcap 'cap_net_raw+ep' `readlink -f \`which hcitool\`` +sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which python3)) +sudo setcap 'cap_net_raw+ep' $(readlink -f $(which hcitool)) ``` A restart of Home Assistant is required. diff --git a/source/_integrations/browser.markdown b/source/_integrations/browser.markdown index d465b0b749a..bde2690d652 100644 --- a/source/_integrations/browser.markdown +++ b/source/_integrations/browser.markdown @@ -4,7 +4,7 @@ description: Instructions on how to setup the browser integration with Home Assi ha_category: - Utility ha_release: pre 0.7 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_domain: browser --- diff --git a/source/_integrations/calendar.markdown b/source/_integrations/calendar.markdown index c42fb088fea..6348de7782a 100644 --- a/source/_integrations/calendar.markdown +++ b/source/_integrations/calendar.markdown @@ -2,7 +2,7 @@ title: Calendar description: Instructions on how to integrate calendars within Home Assistant. ha_release: 0.33 -ha_iot_class: ~ +ha_iot_class: ha_domain: calendar --- diff --git a/source/_integrations/camera.markdown b/source/_integrations/camera.markdown index f6acec3ae43..eb595cde8a9 100644 --- a/source/_integrations/camera.markdown +++ b/source/_integrations/camera.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.7 ha_quality_scale: internal ha_domain: camera -ha_iot_class: ~ +ha_iot_class: --- The camera integration allows you to use IP cameras with Home Assistant. diff --git a/source/_integrations/climate.markdown b/source/_integrations/climate.markdown index fcd446e2626..338233d60b3 100644 --- a/source/_integrations/climate.markdown +++ b/source/_integrations/climate.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.19 ha_quality_scale: internal ha_domain: climate -ha_iot_class: ~ +ha_iot_class: --- The Climate integration allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats. diff --git a/source/_integrations/concord232.markdown b/source/_integrations/concord232.markdown index eb9096cf930..c82c260fcc1 100644 --- a/source/_integrations/concord232.markdown +++ b/source/_integrations/concord232.markdown @@ -7,7 +7,6 @@ ha_category: - Binary Sensor ha_iot_class: Local Polling ha_release: 0.31 -ha_iot_class: Local Polling ha_domain: concord232 --- diff --git a/source/_integrations/config.markdown b/source/_integrations/config.markdown index 52e9604fffe..5fb202cbac9 100644 --- a/source/_integrations/config.markdown +++ b/source/_integrations/config.markdown @@ -4,7 +4,7 @@ description: Instructions on how to setup the configuration panel for Home Assis ha_category: - Front End ha_release: 0.39 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/configurator.markdown b/source/_integrations/configurator.markdown index 4f1bca64b1f..3effd6a2634 100644 --- a/source/_integrations/configurator.markdown +++ b/source/_integrations/configurator.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate the configurator in your component ha_category: - Other ha_release: 0.7 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/conversation.markdown b/source/_integrations/conversation.markdown index 44e65578338..f0213cff4cb 100644 --- a/source/_integrations/conversation.markdown +++ b/source/_integrations/conversation.markdown @@ -5,6 +5,7 @@ ha_category: - Voice ha_release: 0.7 ha_quality_scale: internal +ha_iot_class: Calculated ha_codeowners: - '@home-assistant/core' ha_domain: conversation diff --git a/source/_integrations/cover.markdown b/source/_integrations/cover.markdown index c8300a17fde..9d1d05e2388 100644 --- a/source/_integrations/cover.markdown +++ b/source/_integrations/cover.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: cover -ha_iot_class: ~ +ha_iot_class: --- Home Assistant can give you an interface to control covers such as rollershutters, blinds, and garage doors. diff --git a/source/_integrations/default_config.markdown b/source/_integrations/default_config.markdown index 4236c7e36c2..6d2fc7eb1c4 100644 --- a/source/_integrations/default_config.markdown +++ b/source/_integrations/default_config.markdown @@ -13,6 +13,7 @@ This integration is a meta-component and configures a default set of integration - [Automation](/integrations/automation/) (`automation`) - [Home Assistant Cloud](/integrations/cloud/) (`cloud`) - [Configuration](/integrations/config/) (`config`) +- [Counter](/integrations/counter/) (`counter`) - [Frontend](/integrations/frontend/) (`frontend`) - [History](/integrations/history/) (`history`) - [Image](/integrations/image/) (`image`) @@ -32,6 +33,7 @@ This integration is a meta-component and configures a default set of integration - [Sun](/integrations/sun/) (`sun`) - [System Health](/integrations/system_health/) (`system_health`) - [Tag](/integrations/tag/) (`tag`) +- [Timer](/integrations/timer/) (`timer`) - [Updater](/integrations/updater/) (`updater`) - [Zero-configuration networking (zeroconf)](/integrations/zeroconf/) (`zeroconf`) - [Zone](/integrations/zone/) (`zone`) diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index cb2389471be..0fe89f7f597 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -17,6 +17,7 @@ The `denonavr` platform allows you to control [Denon Network Receivers](https:// Known supported devices: - Denon AVR-X1000 +- Denon AVR-X1100W - Denon AVR-X1200W - Denon AVR-X1300W - Denon AVR-X1400H @@ -35,6 +36,7 @@ Known supported devices: - Denon AVR-X4100W - Denon AVR-X4300H - Denon AVR-X4500H +- Denon AVR-X6500H - Denon AVR-1912 - Denon AVR-2312CI - Denon AVR-3311CI diff --git a/source/_integrations/device_tracker.markdown b/source/_integrations/device_tracker.markdown index 4c5fafc0160..9c753058ac6 100644 --- a/source/_integrations/device_tracker.markdown +++ b/source/_integrations/device_tracker.markdown @@ -4,7 +4,7 @@ description: Instructions on how to setup device tracking within Home Assistant. ha_category: - Presence Detection ha_release: 0.7 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_domain: device_tracker --- diff --git a/source/_integrations/discovery.markdown b/source/_integrations/discovery.markdown index c5f41361b94..015c6cb122c 100644 --- a/source/_integrations/discovery.markdown +++ b/source/_integrations/discovery.markdown @@ -4,7 +4,7 @@ description: Instructions on how to setup Home Assistant to discover new devices ha_category: - Other ha_release: 0.7 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_domain: discovery --- diff --git a/source/_integrations/esphome.markdown b/source/_integrations/esphome.markdown index 6b3842e919e..9dba8d86028 100644 --- a/source/_integrations/esphome.markdown +++ b/source/_integrations/esphome.markdown @@ -23,4 +23,4 @@ An ESPHome device can be set up via the **Integrations** menu: **Configuration** * Complete the dialog box and click `SUBMIT`. * **Host**: If the device is called `livingroom` in ESPHome, the hostname would be `livingroom.local` * **Port**: The default port is `6053` - * If the node has a password set, Home Assistant prompt for it. + * If the node has a password set, Home Assistant prompt for it. diff --git a/source/_integrations/fan.markdown b/source/_integrations/fan.markdown index 4ab86e1aa1e..d4cd431ba9d 100644 --- a/source/_integrations/fan.markdown +++ b/source/_integrations/fan.markdown @@ -4,7 +4,7 @@ description: Instructions on how to setup Fan devices within Home Assistant. ha_category: - Fan ha_release: 0.27 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_domain: fan --- diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown index 39372adde67..7f68c294667 100644 --- a/source/_integrations/fritzbox.markdown +++ b/source/_integrations/fritzbox.markdown @@ -26,7 +26,7 @@ There is currently support for the following device types within Home Assistant: - [FRITZ!Box 6490 Cable](https://en.avm.de/products/fritzbox/fritzbox-6490-cable/) - [FRITZ!Box 7590](https://en.avm.de/products/fritzbox/fritzbox-7590/) - [FRITZ!Box 7490](https://en.avm.de/service/fritzbox/fritzbox-7490/overview/) -- [FRITZ!Box 7430](https://en.avm.de/products/fritzbox/fritzbox-7430/) +- [FRITZ!Box 7430](https://en.avm.de/service/fritzbox/fritzbox-7430/overview/) - [FRITZ!DECT 200](https://en.avm.de/products/fritzdect/fritzdect-200/) - [FRITZ!DECT 301](https://en.avm.de/products/fritzdect/fritzdect-301/) - [Eurotronic Comet DECT](https://eurotronic.org/produkte/elektronische-heizkoerperthermostate/sparmatic-comet/) diff --git a/source/_integrations/frontend.markdown b/source/_integrations/frontend.markdown index 17c11e774ad..0173fbc9f71 100644 --- a/source/_integrations/frontend.markdown +++ b/source/_integrations/frontend.markdown @@ -4,7 +4,7 @@ description: Offers a frontend to Home Assistant. ha_category: - Other ha_release: 0.7 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/frontend' diff --git a/source/_integrations/geo_location.markdown b/source/_integrations/geo_location.markdown index cffd62c9c0a..f1181b6b1b3 100644 --- a/source/_integrations/geo_location.markdown +++ b/source/_integrations/geo_location.markdown @@ -6,7 +6,7 @@ ha_category: logo: geo_location.png ha_release: 0.78 ha_domain: geo_location -ha_iot_class: ~ +ha_iot_class: --- Geolocation aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes. diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown index d38ccb076d2..538f1f94211 100644 --- a/source/_integrations/google_assistant.markdown +++ b/source/_integrations/google_assistant.markdown @@ -25,19 +25,18 @@ The Google Assistant integration (without Home Assistant Cloud) requires a bit m
-To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propagate, otherwise Google may not be able to reach your server. +To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propagate, otherwise, Google may not be able to reach your server. Once you have confirmed you can reach your Home Assistant from outside your home network, you can set up the Google integration:
-You will need to create a service account [Create Service account key](https://console.cloud.google.com/apis/credentials/serviceaccountkey) which allows you to update devices without unlinking and relinking an account (see [below](#troubleshooting)). If you don't provide the service account, the `google_assistant.request_sync` service is not exposed. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have set up this component, you will need to call this service (or command) each time you add a new device in Home Assistant that you wish to control via the Google Assistant integration. See Step 2 after the note for more details. - 1. Create a new project in the [Actions on Google console](https://console.actions.google.com/). 1. Click `New Project` and give your project a name. 2. Click on the `Smart Home` card, then click the `Start Building` button. - 3. Click `Build your Action`, then click `Add Action(s)`. - 4. Add your Home Assistant URL: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant` in the `Fulfillment URL` box, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / IP address and the port under which your Home Assistant is reachable. - 5. Click `Save`. - 6. Click on the `Overview` tab, which will lead you back to the app details screen. + 3. Click `Name your Smart Home action` under `Quick Setup` to give your Action a name - Home Assistant will appear in the Google Home app as `[test] ` + 4. Click `Build your Action`, then click `Add Action(s)`. + 5. Add your Home Assistant URL: `https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant` in the `Fulfillment URL` box, replace the `[YOUR HOME ASSISTANT URL:PORT]` with the domain / IP address and the port under which your Home Assistant is reachable. + 6. Click `Save`. + 7. Click on the `Overview` tab, which will lead you back to the app details screen. 2. `Account linking` is required for your app to interact with Home Assistant. 1. Set this up by clicking on `Setup account linking` under the `Quick Setup` section of the `Overview` page. 2. If asked, leave options as they default `No, I only want to allow account creation on my website` and select `Next`. @@ -65,30 +64,37 @@ If you've added Home Assistant to your phone's home screen, you have to first re
-1. If you want to allow other household users to control the devices: - 1. Open the project you created in the [Actions on Google console](https://console.actions.google.com/). - 2. Click `Test` on the top of the page, then click `Simulator` located to the page left, then click the three little dots (more) icon in the upper right corner of the console. - 3. Click Manage user access. This redirects you to the Google Cloud Platform IAM permissions page. - 4. Click ADD at the top of the page. - 1. Enter the email address of the user you want to add. - 2. Click Select a role and choose Project < Viewer. - 3. Click SAVE - 2. Copy and share the link with the new user. - 3. When the new user opens the link with their own Google account, it will enable your draft test app under their account. - 3. Have the new user go to their `Google Assistant` app to add `[test] your app name` to their account. -2. If you want to support actively reporting of state to Google's server (configuration option `report_state`) and support `google_assistant.request_sync`, you need to generate a service account. - 1. In the GCP Console, go to the [Create Service account key](https://console.cloud.google.com/apis/credentials/serviceaccountkey) page. - 2. At the top left of the page next to "Google Cloud Platform" logo, select your project created in the Actions on Google console. Confirm this by reviewing the `project_id` and it ensure it matches. - 3. From the Service account list, select New service account. - 4. In the Service account name field, enter a name. - 5. In the Service account ID field, enter an ID. - 6. From the Role list, select Service Accounts > Service Account Token Creator. - 7. For the Key type, select the JSON option. - 8. Click Create. A JSON file that contains your key downloads to your computer. - 9. Use the information in this file or the file directly to add to the `service_account` key in the configuration. - 10. Go to the [Google API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview). - 11. Select your project and click Enable HomeGraph API. +### Allow Other Users +If you want to allow other household users to control the devices: + +1. Open the project you created in the [Actions on Google console](https://console.actions.google.com/). +2. Click `Test` on the top of the page, then click `Simulator` located to the page left, then click the three little dots (more) icon in the upper right corner of the console. +3. Click Manage user access. This redirects you to the Google Cloud Platform IAM permissions page. +4. Click ADD at the top of the page. + 1. Enter the email address of the user you want to add. + 2. Click Select a role and choose Project < Viewer. + 3. Click SAVE + 4. Copy and share the link with the new user. + 5. When the new user opens the link with their own Google account, it will enable your draft test app under their account. +5. Have the new user go to their `Google Assistant` app to add `[test] your app name` to their account. + +### Enable Device Sync + +If you want to support active reporting of state to Google's server (configuration option `report_state`) and synchronize Home Assistant devices with the Google Home app (`google_assistant.request_sync` service), you will need to create a service account. It is recommended to set up this configuration key as it also allows the usage of the following command, "Ok Google, sync my devices". Once you have set up this component, you will need to call this service (or command) each time you add a new device in Home Assistant that you wish to control via the Google Assistant integration. This allows you to update devices without unlinking and relinking an account (see [below](#troubleshooting)). + +1. In the GCP Console, go to the [Create Service account key](https://console.cloud.google.com/apis/credentials/serviceaccountkey) page. +2. At the top left of the page next to "Google Cloud Platform" logo, select your project created in the Actions on Google console. Confirm this by reviewing the `project_id` and it ensure it matches. +3. From the Service account list, select New service account. +4. In the Service account name field, enter a name. +5. In the Service account ID field, enter an ID. +6. From the Role list, select Service Accounts > Service Account Token Creator. +7. For the Key type, select the JSON option. +8. Click Create. A JSON file that contains your key downloads to your computer. +9. Use the information in this file or the file directly to add to the `service_account` key in the configuration. +10. Go to the [Google API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview). +11. Select your project and click Enable HomeGraph API. +12. Try "OK Google, sync my devices" - the Google Home app should import your exposed Home Assistant devices and prompt you to assign them to rooms ### Configuration diff --git a/source/_integrations/google_translate.markdown b/source/_integrations/google_translate.markdown index 41dc6705cf2..a225fd433b1 100644 --- a/source/_integrations/google_translate.markdown +++ b/source/_integrations/google_translate.markdown @@ -5,8 +5,6 @@ ha_category: - Text-to-speech ha_release: 0.35 ha_iot_class: Cloud Push -ha_codeowners: - - '@awarecan' ha_domain: google_translate --- diff --git a/source/_integrations/gree.markdown b/source/_integrations/gree.markdown index 7401ab44c2b..236a212709a 100644 --- a/source/_integrations/gree.markdown +++ b/source/_integrations/gree.markdown @@ -1,5 +1,5 @@ --- -title: Gree +title: Gree Climate description: Instructions on how to integrate Gree Smart devices within Home Assistant. ha_category: - Climate diff --git a/source/_integrations/group.markdown b/source/_integrations/group.markdown index ae2a8744e1b..1394bda1544 100644 --- a/source/_integrations/group.markdown +++ b/source/_integrations/group.markdown @@ -97,4 +97,4 @@ It is possible to create a group that the system cannot calculate a group state. Groups with entities from unsupported domains will always have an unknown state. These groups can still be in templates with the `expand()` directive, called using the -`homeassistant.turn_on` and `homeassistant.turn_off` services, etc. \ No newline at end of file +`homeassistant.turn_on` and `homeassistant.turn_off` services, etc. diff --git a/source/_integrations/hdmi_cec.markdown b/source/_integrations/hdmi_cec.markdown index c83262290f3..83a5a11b7fb 100644 --- a/source/_integrations/hdmi_cec.markdown +++ b/source/_integrations/hdmi_cec.markdown @@ -6,6 +6,8 @@ ha_category: ha_release: 0.23 ha_iot_class: Local Push ha_domain: hdmi_cec +ha_codeowners: + - '@newAM' --- The `hdmi_cec` integration provides services that allow selecting the active device, powering on all devices, setting all devices to standby and creates switch entities for HDMI devices. Devices are defined in the configuration file by associating HDMI port number and a device name. Connected devices that provide further HDMI ports, such as sound-bars and AVRs are also supported. Devices are listed from the perspective of the CEC-enabled Home Assistant device. Any connected device can be listed, regardless of whether it supports CEC. Ideally the HDMI port number on your device will map correctly the CEC physical address. If it does not, use `cec-client` (part of the `libcec` package) to listen to traffic on the CEC bus and discover the correct numbers. diff --git a/source/_integrations/history.markdown b/source/_integrations/history.markdown index 9dd71394246..657a413b0ff 100644 --- a/source/_integrations/history.markdown +++ b/source/_integrations/history.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: history -ha_iot_class: ~ +ha_iot_class: --- The `history` integration will track everything that is going on within Home diff --git a/source/_integrations/hive.markdown b/source/_integrations/hive.markdown index 3efe2f9862a..0150d75c795 100644 --- a/source/_integrations/hive.markdown +++ b/source/_integrations/hive.markdown @@ -89,7 +89,7 @@ You can use the service `hive.boost_hot_water` to set your hot water to boost fo | ---------------------- | -------- | ----------------------------------------------------------------------- | | `entity_id` | no | String, Name of entity e.g., `water_heater.hot_water` | | `time_period` | yes | Time Period, Period of time the boost should last for e.g., `01:30:00`. | -| `on_off` | no | String, The mode to set the boost to on or odd e.g., `on` | +| `on_off` | no | String, The mode to set the boost to on or off e.g., `on` | Examples: diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown index 8a026e4dfda..253212eeef6 100644 --- a/source/_integrations/homeassistant.markdown +++ b/source/_integrations/homeassistant.markdown @@ -22,7 +22,7 @@ Reads the configuration files and checks them for correctness, but **does not** ### Service `homeassistant.reload_core_config` -Loads the main configuration file (`configuration.yaml`) and all linked files. Once loaded the new configuration is applied. +Reloads the core configuration under `homeassistant:` and all linked files. Once loaded the new configuration is applied. New `customize:` information will be applied the next time the state of the entity gets updated. ### Service `homeassistant.restart` diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index 8439665aabd..2b303bc5831 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -292,7 +292,7 @@ Currently, this integration uses the `entity_id` to generate a unique `accessory ### Device Limit -The HomeKit Accessory Protocol Specification only allow a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). If you plan on exceeding the 150 device limit, it is possible to create multiple bridges. If you need specific configuration for some entities via `entity_config` be sure to add them to a bridge configured via `YAML`. +The HomeKit Accessory Protocol Specification only allows a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). If you plan on exceeding the 150 devices limit, it is possible to create multiple bridges. If you need specific configuration for some entities via `entity_config` be sure to add them to a bridge configured via `YAML`. ### Persistence Storage diff --git a/source/_integrations/huawei_router.markdown b/source/_integrations/huawei_router.markdown index 26667ae4fa9..00d237f8369 100644 --- a/source/_integrations/huawei_router.markdown +++ b/source/_integrations/huawei_router.markdown @@ -12,7 +12,7 @@ ha_domain: huawei_router The `huawei` device tracker platform offers presence detection by looking at connected devices to a [Huawei router](http://m.huawei.com/enmobile/enterprise/products/network/access/pon-one/hw-371813.htm). -Currently, this was only tested with the Huawei HG8247H, HS8247W and HG8247Q Smart Router (used by Vodafone Portugal). +Currently, this was only tested with the Huawei HG8245W5, HG8247H, HS8247W and HG8247Q Smart Router (used by Vodafone Portugal). ## Configuration diff --git a/source/_integrations/hue.markdown b/source/_integrations/hue.markdown index 72815d94569..787d6ca685c 100644 --- a/source/_integrations/hue.markdown +++ b/source/_integrations/hue.markdown @@ -67,9 +67,7 @@ More information can be found on the [Philips Hue API documentation](https://www ## Using Hue Scenes in Home Assistant -The Hue platform has its own concept of scenes for setting the colors of a group of lights simultaneously. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them—many that you've never used, and almost all very poorly named. - -To avoid user interface overload, we don't expose scenes directly. Instead there is a `hue.hue_activate_scene` service which can be used in an automation or script. +The Hue platform has its own concept of scenes for setting the colors of a group of lights simultaneously. A Hue bridge could potentially have dozens of scenes stored on it, and many scenes across different rooms might share the same name (the default scenes, for example). To avoid user interface overload, we don't expose scenes directly. Instead there is a `hue.hue_activate_scene` service which can be used in an automation or script. This will have all the bulbs transitioned at once, instead of one at a time like when using standard scenes in Home Assistant. For instance: diff --git a/source/_integrations/humidifier.markdown b/source/_integrations/humidifier.markdown index 1ee39e3e2a0..2c4b20d0e3e 100644 --- a/source/_integrations/humidifier.markdown +++ b/source/_integrations/humidifier.markdown @@ -9,7 +9,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' - '@Shulyaka' -ha_iot_class: ~ +ha_iot_class: --- The `humidifier` integration is built for the controlling and monitoring of humidifiers, dehumidifiers, and hygrostat devices. diff --git a/source/_integrations/image.markdown b/source/_integrations/image.markdown index 7ec9b7f9c7f..c1512248380 100644 --- a/source/_integrations/image.markdown +++ b/source/_integrations/image.markdown @@ -8,6 +8,7 @@ ha_codeowners: - '@home-assistant/core' ha_domain: image ha_quality_scale: internal +ha_iot_class: ~ --- The Image integration allows Home Assistant to handle image assets in Home Assistant, for example, diff --git a/source/_integrations/image_processing.markdown b/source/_integrations/image_processing.markdown index 2ed2b3679a1..ef1583000f6 100644 --- a/source/_integrations/image_processing.markdown +++ b/source/_integrations/image_processing.markdown @@ -5,6 +5,7 @@ ha_category: - Image Processing ha_release: 0.36 ha_domain: image_processing +ha_iot_class: ~ --- Image processing enables Home Assistant to process images from [cameras](/integrations/#camera). Only camera entities are supported as sources. diff --git a/source/_integrations/influxdb.markdown b/source/_integrations/influxdb.markdown index 795ed972793..1958298020e 100644 --- a/source/_integrations/influxdb.markdown +++ b/source/_integrations/influxdb.markdown @@ -568,3 +568,33 @@ sensor: Note that when working with Flux queries, the resultset is broken into tables, you can see how this works in the Data Explorer of the UI. If you are operating on data created by the InfluxDB history component, this means by default, you will have a table for each entity and each attribute of each entity (other then `unit_of_measurement` and any others you promoted to tags). This is a lot more tables compared to 1.xx queries, where you essentially had one table per `unit_of_measurement` across all entities. You can still create aggregate metrics across multiple sensors though. As you can see in the example above, a good way to do this is with the [keep](https://v2.docs.influxdata.com/v2.0/reference/flux/stdlib/built-in/transformations/keep/) or [drop](https://v2.docs.influxdata.com/v2.0/reference/flux/stdlib/built-in/transformations/drop/) filters. When you remove key columns Influx merges tables, allowing you to make many tables that share a schema for `_value` into one. + +## Querying your data in Influx + +### Sensors + +For sensors with a unit of measurement defined the unit of measurement is used as the measurement name and entries are tagged with the second part of the `entity_id`. Therefore you need to add a WHERE clause to the query to filter out values. + +For example a query on a `%` battery for `sensor.multi_sensor_battery_level`: + +```sql +SELECT * FROM "%" WHERE time > now() - 12h AND "entity_id" = 'multi_sensor_battery_level'; +``` + +Or for temperatures represented in `°C`: + +```sql +SELECT * FROM "°C" WHERE time > now() - 1h; +``` + +### Everything else + +Everything else can be queried using the `entity_id` as its measurement name. + +```sql +SELECT * FROM "binary_sensor.front_doorbell" WHERE time > now() - 24h; +``` + +```sql +SELECT "temperature" FROM "climate.kitchen" WHERE time > now() - 24h; +``` diff --git a/source/_integrations/input_boolean.markdown b/source/_integrations/input_boolean.markdown index bd0989073d4..2789873d879 100644 --- a/source/_integrations/input_boolean.markdown +++ b/source/_integrations/input_boolean.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Boolean integration into ha_category: - Automation ha_release: 0.11 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/input_datetime.markdown b/source/_integrations/input_datetime.markdown index 3a4b9c8898d..ae23d9a9c01 100644 --- a/source/_integrations/input_datetime.markdown +++ b/source/_integrations/input_datetime.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Datetime integration int ha_category: - Automation ha_release: 0.55 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/input_number.markdown b/source/_integrations/input_number.markdown index 34a64c9bd3b..463ad017943 100644 --- a/source/_integrations/input_number.markdown +++ b/source/_integrations/input_number.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Number integration into ha_category: - Automation ha_release: 0.55 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/input_select.markdown b/source/_integrations/input_select.markdown index 185401ad7e3..fb941c3b400 100644 --- a/source/_integrations/input_select.markdown +++ b/source/_integrations/input_select.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Select integration into ha_category: - Automation ha_release: 0.13 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/input_text.markdown b/source/_integrations/input_text.markdown index 0a39b287c95..59cf2696b52 100644 --- a/source/_integrations/input_text.markdown +++ b/source/_integrations/input_text.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate the Input Text integration into Ho ha_category: - Automation ha_release: 0.53 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown index 85b9bad2729..c59d1ecd14e 100644 --- a/source/_integrations/light.markdown +++ b/source/_integrations/light.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: pre 0.7 ha_quality_scale: internal ha_domain: light -ha_iot_class: ~ +ha_iot_class: --- This integration allows you to track and control various light bulbs. Read the integration documentation for your particular light hardware to learn how to enable it. diff --git a/source/_integrations/lightwave.markdown b/source/_integrations/lightwave.markdown index 3e2d8c8f5bc..cb1f7b9fd73 100644 --- a/source/_integrations/lightwave.markdown +++ b/source/_integrations/lightwave.markdown @@ -1,7 +1,6 @@ --- title: Lightwave description: Instructions on how to integrate Lightwave devices with Home Assistant. -logo: lightwave.png ha_category: - Hub - Light diff --git a/source/_integrations/lock.markdown b/source/_integrations/lock.markdown index e71041f2e0a..e276586955d 100644 --- a/source/_integrations/lock.markdown +++ b/source/_integrations/lock.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.9 ha_quality_scale: internal ha_domain: lock -ha_iot_class: ~ +ha_iot_class: --- Keeps track which locks are in your environment, their state and allows you to control them. diff --git a/source/_integrations/logbook.markdown b/source/_integrations/logbook.markdown index 9e2afb2154c..c8eaa7bca18 100644 --- a/source/_integrations/logbook.markdown +++ b/source/_integrations/logbook.markdown @@ -5,7 +5,7 @@ ha_category: - History ha_release: 0.7 ha_domain: logbook -ha_iot_class: ~ +ha_iot_class: --- diff --git a/source/_integrations/mailbox.markdown b/source/_integrations/mailbox.markdown index 3b84906b810..97fcc42920b 100644 --- a/source/_integrations/mailbox.markdown +++ b/source/_integrations/mailbox.markdown @@ -3,7 +3,7 @@ title: Mailbox description: Instructions on how to setup your mailboxes with Home Assistant. ha_release: 0.51 ha_domain: mailbox -ha_iot_class: ~ +ha_iot_class: --- Mailboxes provide a list of messages with short information about each. Mailbox messages appear on a separate panel in the frontend. diff --git a/source/_integrations/map.markdown b/source/_integrations/map.markdown index 144f0c3c01c..e984d94b71b 100644 --- a/source/_integrations/map.markdown +++ b/source/_integrations/map.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.56 ha_quality_scale: internal ha_domain: map -ha_iot_class: ~ +ha_iot_class: --- This offers a map on the frontend to display the location of tracked devices. To set up tracked devices, look at the [device tracker](/integrations/device_tracker/) documentation. This integration is by default enabled, unless you've disabled or removed the [`default_config:`](https://www.home-assistant.io/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually: diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown index 17dd9524f0c..20a05a9d6af 100644 --- a/source/_integrations/media_player.markdown +++ b/source/_integrations/media_player.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.7 ha_quality_scale: internal ha_domain: media_player -ha_iot_class: ~ +ha_iot_class: --- Interacts with media players on your network. diff --git a/source/_integrations/microsoft.markdown b/source/_integrations/microsoft.markdown index a3110154cf1..74cbed16181 100644 --- a/source/_integrations/microsoft.markdown +++ b/source/_integrations/microsoft.markdown @@ -8,8 +8,7 @@ ha_release: 0.57 ha_domain: microsoft --- -The `microsoft` text-to-speech platform uses [Microsoft Text-to-Speech engine](https://docs.microsoft.com/en-us/azure/cognitive-services/speech/home) to read a text with natural sounding voices. This integration uses an API that is part of the Cognitive Services offering and is known as the Bing Speech API. -You will need an API key, which is free. You can use your [Azure subscription](https://azure.microsoft.com) or get an API key on the [Cognitive Services site](https://azure.microsoft.com/en-us/try/cognitive-services/). +The `microsoft` text-to-speech platform uses the [TTS engine of the Microsoft Speech Service](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech) to read a text with natural sounding voices. This integration uses an API that is part of the Cognitive Services offering and is known as the Microsoft Speech API. For this integration to work, you need a free API key. You can use your [Azure subscription](https://azure.microsoft.com) to create an [Azure Speech resource](https://portal.azure.com/#create/Microsoft.CognitiveServicesSpeechServices/). ## Configuration diff --git a/source/_integrations/neato.markdown b/source/_integrations/neato.markdown index bb193ef5437..2ae40df3272 100644 --- a/source/_integrations/neato.markdown +++ b/source/_integrations/neato.markdown @@ -111,4 +111,4 @@ Some information about the capabilities might be found on the [Neato Developer P | `category` | yes | Whether to use a persistent map or not for cleaning (i.e., No go lines): 2 for no map, 4 for map. Default to using map if not set (and fallback to no map if no map is found). | | `zone` | yes | Only supported on the Botvac D7. Name of the zone to clean from the Neato app. Use unique names for the zones to avoid the wrong zone from running. Defaults to no zone i.e., complete house cleanup. | -[botvac-connected]: https://neatorobotics.com/products \ No newline at end of file +[botvac-connected]: https://neatorobotics.com/products diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index c0ede830011..6d98818f240 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -12,6 +12,7 @@ ha_release: 0.7 ha_config_flow: true ha_codeowners: - '@awarecan' + - '@allenporter' ha_domain: nest --- @@ -37,7 +38,7 @@ Home Assistant is integrated with the following devices through the SDM API: - Example devices: All Google Nest Thermostat models - Display, Camera, and Doorbell Devices - The camera live stream is available as a `camera` entity - - Example devices: All Google Nest Cam models, Google Nest Hello Video Doorbell, Google Nest Hub Max + - Example devices: All Google Nest Cam models, Google Nest Hello Video Doorbell, Google Nest Hub Max You are in control of the information and capabilities exposed to Home Assistant. You can authorize a single device, multiple devices, or different levels of functionality such as motion events, live streams, for any particular device. The integration is flexible enough to adapt based on what you allow. @@ -110,7 +111,7 @@ Once your developer account is set up and you have a valid `nest` entry in `conf ## Troubleshooting -- See [No URL Available](https://www.home-assistant.io/more-info/no-url-available) for guidance on setup issues related to URLs. +- See [No URL Available](/more-info/no-url-available) for guidance on setup issues related to URLs. - For trouble with the SDM API OAuth authorization flow with Google, see [Troubleshooting](https://developers.google.com/nest/device-access/authorize#troubleshooting) which includes guidance for errors like `redirect_uri_mismatch` where Google needs to know about your external URL @@ -318,7 +319,9 @@ script: ### Troubleshooting -- If you're getting [rickrolled](https://www.youtube.com/watch?v=dQw4w9WgXcQ) instead of being able to see your Nest cameras, you may not have set up your developer account's permissions correctly. Go back through and make sure you've selected read/write under every category that it's an option. +- For trouble with the SDM API OAuth authorization flow with Google, see [Troubleshooting](https://developers.google.com/nest/device-access/authorize#troubleshooting) which includes guidance for errors like `redirect_uri_mismatch` where Google needs to know about your external URL. + +- If you're getting [rickrolled](https://www.youtube.com/watch?v=dQw4w9WgXcQ) by the Legacy API instead of being able to see your Nest cameras, you may not have set up your developer account's permissions correctly. Go back through and make sure you've selected read/write under every category that it's an option. ## Platforms diff --git a/source/_integrations/notify.markdown b/source/_integrations/notify.markdown index d560d849e97..116f73df935 100644 --- a/source/_integrations/notify.markdown +++ b/source/_integrations/notify.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: notify -ha_iot_class: ~ +ha_iot_class: --- The `notify` integration makes it possible to send notifications to a wide variety of platforms. To use it you have to setup at least one notification target (notifier), check the [integrations list](/integrations/#notifications) for one that fits your use case. diff --git a/source/_integrations/nsw_fuel_station.markdown b/source/_integrations/nsw_fuel_station.markdown index 6c75b42c306..965e0067251 100644 --- a/source/_integrations/nsw_fuel_station.markdown +++ b/source/_integrations/nsw_fuel_station.markdown @@ -21,6 +21,12 @@ To get the station ID for any NSW fuel station you will need to: - In the Fuel Check App, search for your postcode or click "Fuel Near Me". - In the developer console, you should see a request to `/FuelCheckApp/v1/fuel/prices/bylocation`. Open this request and preview the response. Find the station you wish to add, and copy down the `ServiceStationID` field. +Alternatively: + +- Select a station you wish to find the ID for. +- Select "Report this Station". +- In the URL of the new page opened, locate `serviceStationId`. + ## Configuration To add the NSW fuel station price sensor to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_integrations/ohmconnect.markdown b/source/_integrations/ohmconnect.markdown index 5375baeed78..8c36b9a0704 100644 --- a/source/_integrations/ohmconnect.markdown +++ b/source/_integrations/ohmconnect.markdown @@ -1,7 +1,6 @@ --- title: OhmConnect description: Documentation about the OhmConnect sensor. -logo: ohmconnect.png ha_category: - Energy ha_iot_class: Cloud Polling diff --git a/source/_integrations/onboarding.markdown b/source/_integrations/onboarding.markdown index 233bac7e327..702e396bcb7 100644 --- a/source/_integrations/onboarding.markdown +++ b/source/_integrations/onboarding.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: onboarding -ha_iot_class: ~ +ha_iot_class: --- This integration creates the endpoints for the onboarding that is built into Home Assistant. There are no configuration options for this integration directly. diff --git a/source/_integrations/onewire.markdown b/source/_integrations/onewire.markdown index 054c9c5c2bf..7752d7ecffb 100644 --- a/source/_integrations/onewire.markdown +++ b/source/_integrations/onewire.markdown @@ -8,6 +8,7 @@ ha_iot_class: Local Polling ha_config_flow: true ha_codeowners: - '@garbled1' + - '@epenet' ha_domain: onewire --- diff --git a/source/_integrations/onvif.markdown b/source/_integrations/onvif.markdown index b517a78af4a..a34e8aba161 100644 --- a/source/_integrations/onvif.markdown +++ b/source/_integrations/onvif.markdown @@ -4,6 +4,7 @@ description: Instructions on how to integrate a ONVIF camera within Home Assista ha_category: - Camera ha_release: 0.47 +ha_iot_class: Local Push ha_domain: onvif ha_codeowners: - '@hunterjm' diff --git a/source/_integrations/openalpr_local.markdown b/source/_integrations/openalpr_local.markdown index 29e84c73638..38a1e3fe328 100644 --- a/source/_integrations/openalpr_local.markdown +++ b/source/_integrations/openalpr_local.markdown @@ -8,23 +8,23 @@ ha_release: 0.36 ha_domain: openalpr_local --- -[OpenALPR](https://www.openalpr.com/) integration for Home Assistant allows you -to process license plates from a camera. You can use them to open a garage door -or trigger any other [automation](/integrations/automation/). +The [OpenALPR](https://www.openalpr.com/) integration for Home Assistant allows you +to process vehicle license plates from a camera. You can use this information to +trigger [automations](/integrations/automation/) like opening a garage door. For using the result inside an automation rule, take a look at the -[component](/integrations/image_processing) page. +[image processing integration](/integrations/image_processing) page. ## Local installation -If you want process all data locally, you need version 2.3.1 or higher of the -`alpr` commandline tool. +If you want process all data locally, you will need version 2.3.1 or higher of the +`alpr` command line tool. -If you don't find binaries for your distribution you can compile from source. +If you don't find binaries for your distribution, you can compile the tool from source. Documentation of how to build OpenALPR is found [here](https://github.com/openalpr/openalpr/wiki). -On a Debian system you can use this `cmake` command to build only the command +On a Debian system you can use the following `cmake` command to build only the command line tool: ```bash @@ -32,10 +32,10 @@ cmake -DWITH_TEST=FALSE -DWITH_BINDING_JAVA=FALSE --DWITH_BINDING_PYTHON=FALSE \ --DWITH_BINDING_GO=FALSE -DWITH_DAEMON=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr .. ``` -For other operating system please refer to the +For other operating systems, please refer to the [OpenALPR wiki](https://github.com/openalpr/openalpr/wiki). -Verify your `alpr` installation with: +Verify your `alpr` installation with a command like the following: ```bash wget -O- -q http://plates.openalpr.com/h786poj.jpg | alpr - @@ -54,7 +54,7 @@ image_processing: {% configuration %} region: - description: Country or region. List of supported [values](https://github.com/openalpr/openalpr/tree/master/runtime_data/config). + description: Country or region. List of [supported values](https://github.com/openalpr/openalpr/tree/master/runtime_data/config). required: true type: string alpr_bin: @@ -63,7 +63,7 @@ alpr_bin: type: string default: alpr confidence: - description: The minimum of confidence in percent to process with Home Assistant. + description: The minimum confidence in percent to process with Home Assistant. required: false type: integer default: 80 @@ -73,7 +73,7 @@ source: type: list keys: entity_id: - description: A camera entity id to get picture from. + description: A camera entity id to get the picture from. required: true type: string name: diff --git a/source/_integrations/panasonic_viera.markdown b/source/_integrations/panasonic_viera.markdown index 4473c45ce9e..e6f4ad5335d 100644 --- a/source/_integrations/panasonic_viera.markdown +++ b/source/_integrations/panasonic_viera.markdown @@ -6,8 +6,6 @@ ha_category: ha_release: 0.17 ha_iot_class: Local Polling ha_domain: panasonic_viera -ha_codeowners: - - '@joogps' ha_config_flow: true --- @@ -98,31 +96,32 @@ script: - TC-P50ST50 - TC-P55ST50 -- TC-P60ST50 (can't power on) - TC-P60S60 +- TC-P60ST50 (can't power on) - TC-P65VT30 +- TH-32ES500 +- TH-P60ST50A - TX-32AS520E - TX-32DSX609 - TX-40CXE720 - TX-40DX600 - TX-40DX700B +- TX-42AS650 - TX-49DX650B - TX-50DX700B -- TX-55CX700E +- TX-55ASM655 +- TX-55ASW654 - TX-55CX680B +- TX-55CX700E - TX-55EXW584 - TX-55EXW604S +- TX-55FX680W +- TX-55FZ802B - TX-58DX700B - TX-65EXW784 - TX-L42ET50 - TX-P42STW50 - TX-P50GT30Y - TX-P50GT60E -- TH-32ES500 -- TX-42AS650 -- TX-55ASW654 -- TX-55FX680W -- TX-55FZ802B -- TX-55ASM655 If your model is not on the list, give it a test. If everything works correctly, then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io/blob/current/source/_integrations/panasonic_viera.markdown). diff --git a/source/_integrations/panel_custom.markdown b/source/_integrations/panel_custom.markdown index 3f38959e9c2..928d2a2d40f 100644 --- a/source/_integrations/panel_custom.markdown +++ b/source/_integrations/panel_custom.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/frontend' ha_domain: panel_custom -ha_iot_class: ~ +ha_iot_class: --- The `panel_custom` support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar if wished and can be highly customized. See the developer documentation on [instructions how to build your own panels](https://developers.home-assistant.io/docs/frontend/custom-ui/creating-custom-panels/). diff --git a/source/_integrations/profiler.markdown b/source/_integrations/profiler.markdown index ce36523f91b..63dc567c17b 100644 --- a/source/_integrations/profiler.markdown +++ b/source/_integrations/profiler.markdown @@ -6,6 +6,9 @@ ha_category: ha_release: 0.117 ha_quality_scale: internal ha_domain: profiler +ha_codeowners: + - '@bdraco' +ha_config_flow: true --- The Profiler integration provides a profile which is a set of statistics that identifies how much time each part of Home Assistant is taking. It can help track down a performance issue or provide insight about a misbehaving integration. diff --git a/source/_integrations/proximity.markdown b/source/_integrations/proximity.markdown index 6dab5dbb135..8aca0e7dd30 100644 --- a/source/_integrations/proximity.markdown +++ b/source/_integrations/proximity.markdown @@ -7,7 +7,7 @@ ha_category: ha_release: 0.13 ha_quality_scale: internal ha_domain: proximity -ha_iot_class: ~ +ha_iot_class: --- The `proximity` integration allows you to monitor the proximity of devices to a particular [zone](/integrations/zone/) and the direction of travel. The result is an entity created in Home Assistant which maintains the proximity data. diff --git a/source/_integrations/pushsafer.markdown b/source/_integrations/pushsafer.markdown index 3ba9c0ef65f..d0e868d736b 100644 --- a/source/_integrations/pushsafer.markdown +++ b/source/_integrations/pushsafer.markdown @@ -1,12 +1,10 @@ --- title: Pushsafer description: Instructions on how to add Pushsafer notifications to Home Assistant. -logo: pushsafer.png ha_category: - Notifications ha_iot_class: Cloud Push ha_release: 0.39 -ha_iot_class: Cloud Push ha_domain: pushsafer --- diff --git a/source/_integrations/rachio.markdown b/source/_integrations/rachio.markdown index 2a33df43ea5..4198c19bb63 100644 --- a/source/_integrations/rachio.markdown +++ b/source/_integrations/rachio.markdown @@ -25,8 +25,8 @@ They will be automatically added if the Rachio integration integration is loaded ## Getting your Rachio API Key 1. Log in at [https://app.rach.io/](https://app.rach.io/). -2. Click the "Account Settings" menu item at the bottom of the left sidebar -3. Click "Get API Key" +2. Go to **Settings**. +3. Click **Get API Key**. 4. Copy the API key from the dialog that opens.
@@ -53,7 +53,7 @@ api_key: required: true type: string manual_run_mins: - description: For how long, in minutes, to turn on a station when the switch is enabled. + description: Duration in minutes to run when activating a zone switch. required: false default: 10 type: integer diff --git a/source/_integrations/raspyrfm.markdown b/source/_integrations/raspyrfm.markdown index c411791997f..bd9e5dfb238 100644 --- a/source/_integrations/raspyrfm.markdown +++ b/source/_integrations/raspyrfm.markdown @@ -11,7 +11,7 @@ ha_domain: raspyrfm The `raspyrfm` integration adds support for cheap RC 433 MHz outlets via one of the supported gateways. -Initially, this integration was created to support the Simple Solutions `ConnAir` gateway which has been discontinued. There are custom alternatives that reimplemented the protocol used by the ConnAir though like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM/blob/master/connair.py) which can be used in conjunction with the [RaspyRFM-II](https://www.seegel-systeme.de/produkt/raspyrfm-ii) RC module for a Raspberry Pi. +Initially, this integration was created to support the Simple Solutions `ConnAir` gateway which has been discontinued. There are custom alternatives that reimplemented the protocol used by the ConnAir gateway like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM#connairpy) which can be used in conjunction with the [RaspyRFM-II](https://www.seegel-systeme.de/produkt/raspyrfm-ii) RC module for a Raspberry Pi. Other vendors of 433 MHz RC outlets have also created gateways that use a very similar protocol and can also be used with this integration like the Intertechno [ITGW-433 LAN Gateway](https://www.intertechno24.de/LAN-Gateway/Gateway-ITGW-433.html). diff --git a/source/_integrations/remote.markdown b/source/_integrations/remote.markdown index 64a60050b07..52a5cd04f88 100644 --- a/source/_integrations/remote.markdown +++ b/source/_integrations/remote.markdown @@ -3,7 +3,7 @@ title: Remote description: Instructions on how to setup your remotes with Home Assistant. ha_release: 0.34 ha_domain: remote -ha_iot_class: ~ +ha_iot_class: --- Keeps track which remotes are in your environment, their state and allows you to control them. diff --git a/source/_integrations/rfxtrx.markdown b/source/_integrations/rfxtrx.markdown index f04b0df0c2e..0f5c0bc8825 100644 --- a/source/_integrations/rfxtrx.markdown +++ b/source/_integrations/rfxtrx.markdown @@ -14,7 +14,7 @@ ha_config_flow: true ha_codeowners: - '@danielhiversen' - '@elupus' - - '@Robbie1221' + - '@RobBie1221' ha_domain: rfxtrx --- @@ -36,10 +36,12 @@ To receive debug logging from the RFXCOM device, add the following lines to `con ```yaml logger: - log: + logs: RFXtrx: debug ``` +**Please note**: `RFXtrx` is case-sensitive. + ## Supported protocols Not all protocols as advertised are enabled on the initial setup of your transceiver. Enabling all protocols is not recommended either. Your 433.92 product not showing in the logs? Visit the RFXtrx website to [download RFXmgmr](http://www.rfxcom.com/epages/78165469.sf/en_GB/?ViewObjectPath=%2FShops%2F78165469%2FCategories%2FDownloads) and enable the required protocol. diff --git a/source/_integrations/roon.markdown b/source/_integrations/roon.markdown index b33eda28fbf..8adc09ae71d 100644 --- a/source/_integrations/roon.markdown +++ b/source/_integrations/roon.markdown @@ -41,7 +41,6 @@ Roon doesn't use file names or URLs to track media and so the roon integration i | `media_content_id` | no | The text for roon to search for in your library. | | `media_content_type` | no | A media type. Currently supported are `radio`, `playlist` and `genre` | - For example to play BBC Radio 4 you would set `media_content_type` to `radio` and `media_content_id` to `BBC Radio 4` ### Service `roon.join` diff --git a/source/_integrations/ruckus_unleashed.markdown b/source/_integrations/ruckus_unleashed.markdown index 331dae84f69..3a4d7b3a312 100644 --- a/source/_integrations/ruckus_unleashed.markdown +++ b/source/_integrations/ruckus_unleashed.markdown @@ -11,11 +11,11 @@ ha_codeowners: ha_domain: ruckus_unleashed --- -This platform allows you to connect to a [Ruckus Unleashed](https://support.ruckuswireless.com/product_families/19-ruckus-unleashed) router. +This platform allows you to connect to a [Ruckus Unleashed](https://support.ruckuswireless.com/product_families/19-ruckus-unleashed) access point. There is currently support for the following device types within Home Assistant: -- **Presence Detection** - The platform will look at devices connected to the router and will create a `device_tracker` for each discovered device. +- **Presence Detection** - The platform will look at devices connected to the access point and will create a `device_tracker` for each discovered device. ## Configuration diff --git a/source/_integrations/scene.markdown b/source/_integrations/scene.markdown index 2824d8691be..84beea83966 100644 --- a/source/_integrations/scene.markdown +++ b/source/_integrations/scene.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: scene -ha_iot_class: ~ +ha_iot_class: --- You can create scenes that capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red. diff --git a/source/_integrations/script.markdown b/source/_integrations/script.markdown index 6f66996e916..367c3fa4892 100644 --- a/source/_integrations/script.markdown +++ b/source/_integrations/script.markdown @@ -8,7 +8,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: script -ha_iot_class: ~ +ha_iot_class: --- The `script` integration allows users to specify a sequence of actions to be executed by Home Assistant. These are run when you turn the script on. The script integration will create an entity for each script and allow them to be controlled via services. @@ -59,7 +59,7 @@ variables: type: map keys: PARAMETER_NAME: - description: The value of the variable. Any YAML is valid. + description: The value of the variable. Any YAML is valid. Templates can also be used to pass a value to the variable. type: any fields: description: Information about the parameters that the script uses; see the [Passing variables to scripts](#passing-variables-to-scripts) section below. diff --git a/source/_integrations/search.markdown b/source/_integrations/search.markdown index 5f6316cccd2..ae39895c1a9 100644 --- a/source/_integrations/search.markdown +++ b/source/_integrations/search.markdown @@ -4,11 +4,10 @@ description: Internal search module for Home Assistant. ha_category: - Other ha_release: 0.105 -ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: search -ha_iot_class: ~ +ha_iot_class: --- The `search` integration is an internally used integration by the diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index 4706216365c..df539f89c5e 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.7 ha_quality_scale: internal ha_domain: sensor -ha_iot_class: ~ +ha_iot_class: --- Sensors are gathering information about states and conditions. diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown index bd495b18f53..c653e69b771 100644 --- a/source/_integrations/slack.markdown +++ b/source/_integrations/slack.markdown @@ -85,7 +85,6 @@ The following attributes can be placed inside the `data` key of the service call | `username` | yes | The username of the Slack bot. | `icon` | yes | The icon of the Slack bot. | `file` | yes | A file to include with the message; see below. -| `file` | yes | A file to include with the message; see below. | `blocks` | yes | Array of [Slack blocks](https://api.slack.com/messaging/composing/layouts). *NOTE*: if using `blocks`, they are shown **in place of** the `message` (note that the `message` is required nonetheless). | `blocks_template` | yes | The same as `blocks`, but able to support [templates](https://www.home-assistant.io/docs/configuration/templating). diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown index 61fc5e86c42..b12963cd2f4 100644 --- a/source/_integrations/smartthings.markdown +++ b/source/_integrations/smartthings.markdown @@ -64,9 +64,9 @@ After completing the prerequisite steps above you are ready to setup the integra 1. Select the SmartThings Location to add to Home Assistant. 1. On the window that opens: 1. Login with your SmartThings account (if not already logged in). - 1. Optionally change the display name and click 'Done' on the upper right of the screen. + 1. Optionally change the display name and click 'Done' at the bottom of the screen. 1. Authorize the integration by clicking 'Allow' on the bottom right of the screen. - 1. Click 'Close Window' or close it manually if necessary. + 1. Click 'Close Window' or close it manually. 1. Back in Home Assistant click 'Finish'.
diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown index 4e4e6cb5752..3703894be5f 100644 --- a/source/_integrations/spotify.markdown +++ b/source/_integrations/spotify.markdown @@ -20,8 +20,8 @@ The Spotify media player integration allows you to control [Spotify](https://www - Spotify application configured for Home Assistant (see [below](#create-a-spotify-application))
- Spotify integrated media controls (pause, play, next, etc.) requires a Premium account. - If you do not have a Premium account, the integration's frontend will not show the controls. + Spotify integrated media controls (pause, play, next, etc.) require a Premium account. + If you do not have a Premium account, the frontend will not show the controls.
### Create a Spotify application @@ -29,8 +29,8 @@ The Spotify media player integration allows you to control [Spotify](https://www - Login to [Spotify Developer](https://developer.spotify.com). - Visit the [My Applications](https://developer.spotify.com/my-applications/#!/applications) page. - Select **Create An App**. Enter any name and description. -- Once your application is created, view it and copy your **Client ID** and **Client Secret**, which are used in the Home Assistant configuration file. -- On the Spotify page, enter the **Edit Settings** dialog of your newly created application and add a *Redirect URI*: +- Once your application is created, view it and copy your **Client ID** and **Client Secret**, which are used in the Home Assistant [configuration file below](#configuration). +- Enter the **Edit Settings** dialog of your newly-created application and add a *Redirect URI*: - If you are not using SSL: `http://:/auth/external/callback` - If you are using SSL: `https://:/auth/external/callback` - Click **Save** after adding the URI. @@ -52,18 +52,18 @@ spotify: {% configuration %} client_id: - description: Client ID from your Spotify application. + description: Client ID from your Spotify Developer application. required: true type: string client_secret: - description: Client Secret from your Spotify application. + description: Client Secret from your Spotify Developer application. required: true type: string {% endconfiguration %} ## Activating the Spotify integration -- Go to the **Configurations** page in the Home Assistant frontend. +- Go to the **Configuration** page in the Home Assistant frontend. - Click on **Integrations**. - Click the orange **+** on the bottom-right. - Click on "Spotify". @@ -72,7 +72,7 @@ client_secret:
If you receive an `INVALID_CLIENT: Invalid redirect URI` error while trying to - authenticate with your Spotify account, make sure to check the Redirect URI in + authenticate with your Spotify account, check the Redirect URI in the address bar after adding the new integration. Compare this value with the Redirect URI defined in the Spotify Developer Portal. @@ -80,21 +80,32 @@ client_secret: ## Using multiple Spotify accounts -The integration support multiple Spotify accounts at once. You don't need to +This integration supports multiple Spotify accounts at once. You don't need to create another Spotify application in the Spotify Developer Portal and no modification to the `configuration.yaml` file is needed. Multiple Spotify accounts can be linked to a _single_ Spotify application. -To add an additional Spotify account to Home Assistant, repeat _only_ the steps -in the [Activating the Spotify integration](#activating-the-spotify-integration) -section. However, make sure you go to the Spotify website and log out before -you do so. +To add an additional Spotify account to Home Assistant, go to the Spotify website and log out, then repeat _only_ the steps +in the [Activating the Spotify integration](#activating-the-spotify-integration) section. -## URI Links for Playlists +## Playing Spotify playlists You can send playlists to Spotify using the `"media_content_type": "playlist"`, which is part of the -[media_player.play_media](/integrations/media_player/#service-media_playerplay_media) service. -The `media_content_id` can be obtained from the Spotify desktop-app by clicking on the more options ("...") next to the album art picture, selecting "share" and then "Copy Spotify URI" or "Copy Playlist Link" (also available in the Spotify phone and web app). +[media_player.play_media](/integrations/media_player/#service-media_playerplay_media) service, for example: + +```yaml +# Example script to play playlist +script: + play_jazz_guitar: + sequence: + - service: media_player.play_media + data: + entity_id: media_player.spotify + media_content_id: 'https://open.spotify.com/playlist/5xddIVAtLrZKtt4YGLM1SQ?si=YcvRqaKNTxOi043Qn4LYkg' + media_content_type: playlist +``` + +The `media_content_id` value can be obtained from the Spotify desktop app by clicking on the more options ("...") next to the album art picture, selecting "Share" and then "Copy Spotify URI" or "Copy Playlist Link" (also available in the Spotify phone and web app). ## Unsupported Devices diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown index 484a706f82a..e77e4b713cc 100644 --- a/source/_integrations/statistics.markdown +++ b/source/_integrations/statistics.markdown @@ -12,10 +12,9 @@ ha_codeowners: ha_domain: statistics --- -The `statistics` sensor platform consumes the state from other sensors. It exports the `mean` value as state and the following values as attributes: `count`, `mean`, `median`, `stdev`, `variance`, `total`, `min_value`, `max_value`, `min_age`, `max_age`, `change`, `average_change` and `change_rate`. If it's a binary sensor then only state changes are counted. +The `statistics` sensor platform consumes the state from other sensors. It exports the `mean` value as state and the following values as attributes: `count`, `mean`, `median`, `stdev`, `variance`, `total`, `min_value`, `max_value`, `min_age`, `max_age`, `change`, `average_change` and `change_rate`. If the source is a binary sensor then only state changes are counted. -If you are running the [recorder](/integrations/recorder/) component, on startup the data is read from the database. So after a restart of the platform, you will immediately have data available. If you're using the [history](/integrations/history/) component, this will automatically also start the `recorder` integration on startup. -If you are *not* running the `recorder` component, it can take time till the sensor starts to work because a couple of attributes need more than one value to do the calculation. +Assuming the [`recorder`](/integrations/recorder/) integration is running (either configured explicitly or as part of a meta-integration/dependency, e.g., [`default_config`](/integrations/default_config/), [`history`](/integrations/history/), etc.), historical sensor data is read from the database on startup and is available immediately after a restart of the platform. If the [`recorder`](/integrations/recorder/) integration is *not* running, it can take time for the sensor to start reporting data because some attribute calculations require more than one value. ## Configuration diff --git a/source/_integrations/switch.markdown b/source/_integrations/switch.markdown index d8807493f82..8d59f56c389 100644 --- a/source/_integrations/switch.markdown +++ b/source/_integrations/switch.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.7 ha_quality_scale: internal ha_domain: switch -ha_iot_class: ~ +ha_iot_class: --- Keeps track which switches are in your environment, their state and allows you to control them. diff --git a/source/_integrations/system_health.markdown b/source/_integrations/system_health.markdown index 844d579e082..b43858a826a 100644 --- a/source/_integrations/system_health.markdown +++ b/source/_integrations/system_health.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.87 ha_quality_scale: internal ha_domain: system_health -ha_iot_class: ~ +ha_iot_class: --- The System Health integration provides an API to offer information on the system and its components. It also allows to run diagnostic tools to diagnose problems. @@ -20,4 +20,4 @@ system_health: System Health integration data can be viewed at **Configuration** -> **Info**. -Data includes information about your system architecture, operating system and version, Home Assistant installation type and version, Python version, frontend version, the number of [Lovelace Dashboards and Views](/lovelace/dashboards-and-views/) you have, and more. +Data includes information about your system architecture, operating system and version, Home Assistant installation type and version, Python version, frontend version, the number of [Lovelace Dashboards and Views](/lovelace/dashboards-and-views/) you have, and more. diff --git a/source/_integrations/system_log.markdown b/source/_integrations/system_log.markdown index ad4fc976aeb..e60fa8f9356 100644 --- a/source/_integrations/system_log.markdown +++ b/source/_integrations/system_log.markdown @@ -111,7 +111,7 @@ automation: event_type: system_log_event condition: condition: template - value_template: '{{ "service" in trigger.event.data.message }}' + value_template: '{{ "service" in trigger.event.data.message[0] }}' action: service: persistent_notification.create data: diff --git a/source/_integrations/tag.markdown b/source/_integrations/tag.markdown index 6e629a3c25b..9e8c5613912 100644 --- a/source/_integrations/tag.markdown +++ b/source/_integrations/tag.markdown @@ -9,7 +9,7 @@ ha_codeowners: - '@dmulcahey' ha_domain: tag ha_quality_scale: internal -ha_iot_class: ~ +ha_iot_class: ---

diff --git a/source/_integrations/tasmota.markdown b/source/_integrations/tasmota.markdown index 66fe07bec8f..4e424120e20 100644 --- a/source/_integrations/tasmota.markdown +++ b/source/_integrations/tasmota.markdown @@ -14,12 +14,12 @@ ha_codeowners: ha_domain: tasmota --- -This integration allows you to control Tasmota devices over MQTT. +This integration allows you to control [Tasmota](https://tasmota.github.io/docs/) devices over MQTT. ## Requirements - MQTT server and the [MQTT integration](/integrations/mqtt/) set up in Home Assistant. -- Tasmota devices flashed with 9.0.0.3 or later +- Tasmota devices flashed with pre-release version 9.0.0.3, or later. - Tasmota devices configured for native discovery (`SetOption19 0`) ## Limitations diff --git a/source/_integrations/thethingsnetwork.markdown b/source/_integrations/thethingsnetwork.markdown index 53b3a50a26f..65c3814dcb6 100644 --- a/source/_integrations/thethingsnetwork.markdown +++ b/source/_integrations/thethingsnetwork.markdown @@ -120,7 +120,7 @@ sensor: - platform: thethingsnetwork device_id: ha-demo values: - sensor_value: unit of measurement + current: ampere voltage: V ``` diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown index e2e74dd6ad4..76da4db8f96 100644 --- a/source/_integrations/tplink.markdown +++ b/source/_integrations/tplink.markdown @@ -10,6 +10,7 @@ ha_iot_class: Local Polling ha_config_flow: true ha_codeowners: - '@rytilahti' + - '@thegardenmonkey' ha_domain: tplink --- @@ -36,6 +37,7 @@ Plugs are type `switch` when autodiscovery has been disabled. - HS103 - HS105 - HS110 (This device is capable of reporting energy usage data to template sensors) +- KP105 ### Strip (Multi-Plug) @@ -140,7 +142,7 @@ Devices that are confirmed to support Consumption Reading; 2. HS300 In order to get the power consumption readings from a TP-Link HS110 device, you'll have to create a [template sensor](/integrations/template/). -In the example below, change all of the `my_tp_switch`'s to match your device's entity ID. +In the example below, change all of the `my_tp_switch`'s to match your device's entity ID (without the domain). For example, if your entity is `switch.whale_heater` then replace `my_tp_switch` with `whale_heater`: {% raw %} ```yaml diff --git a/source/_integrations/tts.markdown b/source/_integrations/tts.markdown index a2082bd6225..46bbb9ee02c 100644 --- a/source/_integrations/tts.markdown +++ b/source/_integrations/tts.markdown @@ -4,7 +4,7 @@ description: Instructions on how to set up Text-to-Speech (TTS) with Home Assist ha_category: - Text-to-speech ha_release: 0.35 -ha_iot_class: ~ +ha_iot_class: ha_codeowners: - '@pvizeli' ha_domain: tts diff --git a/source/_integrations/unifi_direct.markdown b/source/_integrations/unifi_direct.markdown index a6cc41a851e..bb5ec9504cb 100644 --- a/source/_integrations/unifi_direct.markdown +++ b/source/_integrations/unifi_direct.markdown @@ -8,7 +8,7 @@ ha_release: 0.59 ha_domain: unifi_direct --- -This platform allows you to detect presence by looking at devices connected to a [UniFi AP](https://www.ui.com/products/#unifi). This device tracker differs form [Ubiquiti UniFi WAP](/integrations/unifi) because it doesn't require the UniFi controller software. +This platform allows you to detect presence by looking at devices connected to a [UniFi AP](https://www.ui.com/products/#unifi). This device tracker differs form [Ubiquiti UniFi](/integrations/unifi) because it doesn't require the UniFi controller software. To use this device tracker in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_integrations/upc_connect.markdown b/source/_integrations/upc_connect.markdown index 3aff1a1b7b3..2c8e83ef1b4 100644 --- a/source/_integrations/upc_connect.markdown +++ b/source/_integrations/upc_connect.markdown @@ -11,7 +11,7 @@ ha_domain: upc_connect ha_iot_class: Local Polling --- -The `upc_connect` platform offers presence detection by looking at connected devices to a [Connect Box](https://www.upc.ch/en/internet/learn-about-internet/) from [Liberty Global](https://www.libertyglobal.com) (also known as UPC Cablecom in Switzerland) which is an Internet provider in Switzerland, Austria and the Netherlands (under Ziggo). +The `upc_connect` platform offers presence detection by looking at connected devices to a [Connect Box](https://www.upc.ch/en/internet/learn-about-internet/) from [Liberty Global](https://www.libertyglobal.com) (also known as UPC Cablecom in Switzerland) which is an Internet provider in Switzerland, Austria, the Netherlands (under Ziggo) and Hungary (under Vodafone).

This integration works by logging into the router with a password. The router can only have one active session at any time, so if you want to access your router settings then stop Home Assistant first. @@ -44,4 +44,4 @@ Also known to be working with the following devices: - Irish Virgin Media Super Hub 3.0 - Unitymedia Connect Box (DE) - Ziggo Connectbox (NL) - - Compal CH7465LG ED 3.0 - Connect box (UPC / Vodafone CZ) + - Compal CH7465LG ED 3.0 - Connect box (UPC / Vodafone CZ / Vodafone HU) diff --git a/source/_integrations/vacuum.markdown b/source/_integrations/vacuum.markdown index 28a29896d57..17afe94b34f 100644 --- a/source/_integrations/vacuum.markdown +++ b/source/_integrations/vacuum.markdown @@ -3,7 +3,7 @@ title: Vacuum description: Instructions on how to setup and use vacuum's in Home Assistant. ha_release: 0.51 ha_domain: vacuum -ha_iot_class: ~ +ha_iot_class: --- The `vacuum` integration enables the ability to control home cleaning robots within Home Assistant. diff --git a/source/_integrations/wake_on_lan.markdown b/source/_integrations/wake_on_lan.markdown index 7d33ef58743..908ac71a794 100644 --- a/source/_integrations/wake_on_lan.markdown +++ b/source/_integrations/wake_on_lan.markdown @@ -46,6 +46,11 @@ Sample service data: } ``` +
+This usually only works if the Target Device is connected to the same network. Routing the WakeOnLan packet to a different subnet requires a special configuration on your router or may not be possible. +The Service to Route the packet is most likely named "IP Helper" which may support WakeOnLan, but not all Routers support this. +
+ ## Switch The `wake_on_lan` (WOL) switch platform allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer. diff --git a/source/_integrations/water_heater.markdown b/source/_integrations/water_heater.markdown index dfd39b17689..0c132a60b33 100644 --- a/source/_integrations/water_heater.markdown +++ b/source/_integrations/water_heater.markdown @@ -3,7 +3,7 @@ title: Water Heater description: Instructions on how to setup water heater devices within Home Assistant. ha_release: 0.81 ha_domain: water_heater -ha_iot_class: ~ +ha_iot_class: --- The `water_heater` integration is built for the controlling and monitoring of hot water heaters. diff --git a/source/_integrations/weather.markdown b/source/_integrations/weather.markdown index 74a007397f1..fbb63dacc5b 100644 --- a/source/_integrations/weather.markdown +++ b/source/_integrations/weather.markdown @@ -4,7 +4,7 @@ description: Instructions on how to setup your Weather platforms with Home Assis ha_category: - Weather ha_release: 0.32 -ha_iot_class: ~ +ha_iot_class: ha_quality_scale: internal ha_codeowners: - '@fabaff' @@ -17,7 +17,7 @@ Home Assistant currently supports free web services some of which require regist ## Condition mapping -The `weather` platform only knows the below listed conditions. The reason for this is that for these conditions is an icon from [Material Design Icons](https://materialdesignicons.com/) available and mapped in the [frontend](https://github.com/home-assistant/home-assistant-polymer/blob/master/src/cards/ha-weather-card.js#L170). +The `weather` platform only knows the below listed conditions. The reason for this is that for these conditions is an icon from [Material Design Icons](https://materialdesignicons.com/) available and mapped in the frontend. - 'clear-night' - 'cloudy' diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown index 10cc8283870..fec592feb89 100644 --- a/source/_integrations/webostv.markdown +++ b/source/_integrations/webostv.markdown @@ -239,3 +239,7 @@ automation: data: icon: "/home/homeassistant/images/doorbell.png" ``` + +## Notes + +If Home Assistant and your TV are not on the same network, you need to create a firewall rule, which allows a connection on port 3000 with the TCP protocol from Home Assistant to your TV. diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown index 05dce609490..9ffa35b3612 100644 --- a/source/_integrations/wled.markdown +++ b/source/_integrations/wled.markdown @@ -79,9 +79,17 @@ This integration provides sensors for the following information from WLED: The integration will create a number of switches: -- Nightlight. -- Sync Receive. -- Sync Send. +### Nightlight + +Toggles the WLED Timer. +Can be configured on the WLED itself under settings > LED Preferences > Timed light. + +### Sync Receive and Sync Send + +Toggles the synchronisation between multiple WLED devices. +Can be configured on the WLED itself under settings > Sync Interfaces > WLED Broadcast. + +[WLED Sync documentation](https://github.com/Aircoookie/WLED/wiki/Sync-WLED-devices-(UDP-Notifier)) ## Services diff --git a/source/_integrations/xbox.markdown b/source/_integrations/xbox.markdown index 966ccf9a939..3f73ee99894 100644 --- a/source/_integrations/xbox.markdown +++ b/source/_integrations/xbox.markdown @@ -11,12 +11,19 @@ ha_release: 0.117 ha_codeowners: - '@hunterjm' ha_domain: xbox +ha_config_flow: true --- The Xbox integration allows you to control Xbox One (or newer) consoles from Home Assistant. Home Assistant authenticates with Xbox Live through OAuth2 using the Home Assistant Cloud account linking service. Set up the integration through **Configuration -> Integrations -> Xbox**. Ensure you login using the Microsoft account that is linked to your Xbox consoles. +
+ +Because it uses the Home Assistant Cloud account linking service you **must** have either `cloud:` or `default_config:` in your `configuration.yaml`. + +
+ - [Media Player](#media-player) - [Service `play_media`](#service-play_media) - [Remote](#remote) diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 922e9b6a2c3..8ed4717665a 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -40,7 +40,7 @@ For many of these devices you need an access token, the first section will descr 1. Install the Xiaomi Home app. 2. Sign In/make an account. -3. Make sure you set your region to: Mainland China (Seems to be the longest line with Chines characters) under settings -> Region (language can later be set on English). +3. Make sure you set your region to: Mainland China (Seems to be the longest line with Chinese characters) under settings -> Region (language can later be set on English). 4. Select your Gateway in Xiaomi Home app. 5. Then the 3 dots at the top right of the screen. 6. Then click on about. diff --git a/source/_integrations/zeroconf.markdown b/source/_integrations/zeroconf.markdown index 86eb77ed3b9..5baf1b8d5b0 100644 --- a/source/_integrations/zeroconf.markdown +++ b/source/_integrations/zeroconf.markdown @@ -6,7 +6,7 @@ ha_category: ha_release: 0.18 ha_quality_scale: internal ha_codeowners: - - '@Kane610' + - '@bdraco' ha_domain: zeroconf ha_iot_class: Local Push --- diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 7f9cc8037cc..dd9a330e535 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -38,14 +38,6 @@ There is currently support for the following device types within Home Assistant: There is also support for grouping of lights, switches, and fans (i.e. support for commanding device groups as entities). At least two entities must be added to a group before the group entity is created. -## ZHA exception and deviation handling - -The ZHA implementation in Home Assistant relies on a library called "[ZHA Device Handlers](https://github.com/zigpy/zha-device-handlers)" to resolve issues with Zigbee devices that do not fully conform with the Zigbee standards. The few devices that deviate from the Zigbee specifications set by the [Zigbee Alliance](https://zigbeealliance.org) may therefore require proper bug reports with debug logs from users to assistant the developers in writing custom [ZHA Device Handlers](https://github.com/zigpy/zha-device-handlers/blob/dev/README.md) for all of a device functions to work properly with the ZHA integration. - -Such a custom "ZHA Device Handler" are Python scripts that internally is also referred to as a "quirk" because they fix "quirks" as in deviations from the standard specifications. ZHA Device Handles do this by transparently acting as a translator, translating and converting non-compliant device messages and instead present them to the application as coming from a virtual compliant device. These ZHA Device Handlers for Home Assistant can thus be used to parse custom messages to and from Zigbee devices. The ZHA Device Handlers that are made can then be reused by all users in future versions of Home Assistant. - -The custom quirks implementations for zigpy implemented as ZHA Device Handlers for Home Assistant are a similar concept to that of [Hub-connected Device Handlers for the SmartThings Classics platform](https://docs.smartthings.com/en/latest/device-type-developers-guide/) as well as that of [Zigbee-Herdsman Converters (formerly Zigbee-Shepherd Converters) as used by Zigbee2mqtt](https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html), meaning they are each virtual representations of a physical device that expose additional functionality that is not provided out-of-the-box by the existing integration between these platforms. - ## Compatible hardware ZHA integration uses a hardware independent Zigbee stack implementation with modular design which means that it can support any one of the many Zigbee coordinator radio modules/adapters available from different manufacturers, as long as that module/adapter is compatible with [zigpy](https://github.com/zigpy/zigpy). @@ -238,6 +230,14 @@ There is no official compatibility list of supported devices for the simple reas Tip to new users is that while there is no official list of supported devices, some ZHA users take comfort that blakadder maintains an unofficial Zigbee Device Compatibility Repository which anyone can submit compatibility reports to, it can be found at [zigbee.blakadder.com](https://zigbee.blakadder.com) and currently contains independent compatibility lists and device pairing tips for several home automation gateway/bridge/hub software, including but not limited to open source Zigbee implementations such as; ZHA, Tasmota, Zigbee2MQTT, and ZiGate. +### ZHA exception and deviation handling + +The ZHA implementation in Home Assistant relies on a library called "[ZHA Device Handlers](https://github.com/zigpy/zha-device-handlers)" to resolve issues with Zigbee devices that do not fully conform with the Zigbee standards. The few devices that deviate from the Zigbee specifications set by the [Zigbee Alliance](https://zigbeealliance.org) may therefore require proper bug reports with debug logs from users to assistant the developers in writing custom [ZHA Device Handlers](https://github.com/zigpy/zha-device-handlers/blob/dev/README.md) for all of a device functions to work properly with the ZHA integration. + +Such a custom "ZHA Device Handler" are Python scripts that internally is also referred to as a "quirk" because they fix "quirks" as in deviations from the standard specifications. ZHA Device Handles do this by transparently acting as a translator, translating and converting non-compliant device messages and instead present them to the application as coming from a virtual compliant device. These ZHA Device Handlers for Home Assistant can thus be used to parse custom messages to and from Zigbee devices. The ZHA Device Handlers that are made can then be reused by all users in future versions of Home Assistant. + +The custom quirks implementations for zigpy implemented as ZHA Device Handlers for Home Assistant are a similar concept to that of [Hub-connected Device Handlers for the SmartThings Classics platform](https://docs.smartthings.com/en/latest/device-type-developers-guide/) as well as that of [Zigbee-Herdsman Converters (formerly Zigbee-Shepherd Converters) as used by Zigbee2mqtt](https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html), meaning they are each virtual representations of a physical device that expose additional functionality that is not provided out-of-the-box by the existing integration between these platforms. + ### Reporting issues When reporting issues, please provide the following information in addition to information requested by issue template: @@ -289,7 +289,7 @@ Follow the instructions on [https://github.com/vanviegen/hue-thief/](https://git ### ZHA Start up issue with Home Assistant or Home Assistant Container -On Linux hosts ZHA can fail to start during HA startup or restarts because the Zigbee USB device is being claimed by the host's modemmanager service. To fix this disable the modemmanger on the host system. +On Linux hosts ZHA can fail to start during HA startup or restarts because the Zigbee USB device is being claimed by the host's modemmanager service. To fix this disable the modemmanager on the host system. To remove modemmanager from a Debian/Ubuntu host run this command: @@ -311,7 +311,7 @@ Create a `docker-compose.yml` with the following data: version: '2' services: homeassistant: - # customisable name + # customizable name container_name: home-assistant # must be image for your platform, this is the rpi3 variant diff --git a/source/_integrations/zone.markdown b/source/_integrations/zone.markdown index c1875a47608..aa1fc3b3041 100644 --- a/source/_integrations/zone.markdown +++ b/source/_integrations/zone.markdown @@ -9,7 +9,7 @@ ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: zone -ha_iot_class: ~ +ha_iot_class: --- Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a [trigger](/getting-started/automation-trigger/#zone-trigger) or [condition](/getting-started/automation-condition/#zone-condition) inside automation setups. diff --git a/source/_posts/2020-10-28-release-117.markdown b/source/_posts/2020-10-28-release-117.markdown new file mode 100644 index 00000000000..eb082184277 --- /dev/null +++ b/source/_posts/2020-10-28-release-117.markdown @@ -0,0 +1,2858 @@ +--- +layout: post +title: "0.117: Quick Bar, compact header, a YAML editor, XBox and Template types" +description: "A quick navigation/search bar accessible anywhere, a compact header built-in, edit your full script/automation YAML in the UI, Counter & Timer Helpers and a beta change to templates" +date: 2020-10-28 00:00:00 +date_formatted: "October 28, 2020" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: Release-Notes +og_image: /images/blog/2020-10-0.117/social.png +--- + + + +And the train just keeps on rolling... Home Assistant Core 0.117! + +Some big releases lately, and this is a big one for sure. However, +interesting this release is the amount of little improvements! I guess that +is the result of [Hacktoberfest](/blog/2020/10/01/hacktoberfest-2020/)! + +We have seen a crazy and absurd amount of contributions this October, lots +of new faces too! 500+ pull requests on the documentation, 700+ +on the core and 150+ on the frontend processed up until now! Amazing! +You guys rock! + +Also, the [Home Assistant Conference](/conference) has been announced! If you +want to speak at the very first, online, Home Assistant Conference, be sure +to [submit your talk](/conference#open-call-for-speakers) before 31 October. + +And finally, while writing this, I'm enjoying Home Assistant Podcast, as they +have released [their episode for 0.117][podcast] already. 🎙 Thanks for all +you do guys, always a pleasure to listen to. + +Darn, we do have an amazing community, don't we? 😍 + +../Frenck + +PS: Oh, later today might be fun! We are looking into trying to do a +Home Assistant live stream / mini-release party / Q&A on the +[Home Assistant YouTube channel][youtube]. +So, keep an eye on our social media for the announcement. + +[podcast]: https://hasspodcast.io/ha075/ +[youtube]: https://www.youtube.com/channel/UCbX3YkedQunLt7EQAdVxh7w + +- [Stefan Agner joins Nabu Casa!](#stefan-agner-joins-nabu-casa) +- [Quick Bar](#quick-bar) +- [Compact header](#compact-header) +- [Script and automation YAML editor](#script-and-automation-yaml-editor) +- [Xbox integration](#xbox-integration) +- [Counters & Timers available as helpers in the UI](#counters--timers-available-as-helpers-in-the-ui) +- [Native types support for templates (Beta)](#native-types-support-for-templates-beta) +- [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) +- [Release 0.117.1 - October 30](#release-01171---october-30) +- [Release 0.117.2 - November 1](#release-01172---november-1) +- [Release 0.117.3 - November 4](#release-01173---november-4) +- [Release 0.117.4 - November 4](#release-01174---november-4) +- [Release 0.117.5 - November 5](#release-01175---november-5) +- [If you need help...](#if-you-need-help) +- [Breaking Changes](#breaking-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +## Stefan Agner joins Nabu Casa! + +Today we are pleased to announce that Nabu Casa hired [Stefan Agner][@agners] to +work on the Home Assistant project. + +Stefan is specialized in embedded systems and the Linux kernel, and he will be +mainly working on improving and extending the Home Assistant Operating System. + +In his spare time, he loves to hack on all things embedded. From making the ARM +Linux kernel getting built by Clang to building sensor nodes using MicroPython. + +If not hacking, he's probably out and about for a hike or a good beer with +friends. + +Welcome Stefan! We are excited to have you! + +[@agners]: https://github.com/agners + +## Quick Bar + +Let me quickly find that entity that is not on my Lovelace Dashboard... +hold on... Configuration -> Entities, search for it... click the right one... +Got it! + +That isn't efficient, right? [@donkawechico] to the rescue! He added an exciting +new feature to our frontend: the Quick Bar. + +This new dialog allows you to quickly open an entity or run a command. + +It can be launched anywhere in Home Assistant; with the keyboard shortcuts +`e` for entities and `c` for commands. You can switch between the entities and +command modes by removing or adding the `>` at the start of the search input. + +The Quick Bar is similar to the Command Pallet you might know from Visual Studio +Code. He even copied the filter algorithm from Visual Studio Code, so you can +search what you need even faster. + +

+Screencapture of the Quick Bar. +Screencapture of the Quick Bar. +

+ +The commands are currently limited to reloading YAML configuration and +restarting Home Assistant, but expect this to grow rapidly! +The same goes for the keyboard shortcuts; the plan is to add more so you can +quickly perform actions and navigate Home Assistant from anywhere with +a couple of key presses! + +[Check the documentation for more information and usage tips](/docs/tools/quick-bar/). + +[@donkawechico]: https://github.com/donkawechico + +## Compact header + +[@maykar] recently archived his immensely popular custom header repository, +promising to bring parts of it to the core of Home Assistant. + +Well, he did; this release, our Lovelace header is compact! 🤩 + +He combined the two bars we had in 1 by replacing the dashboard title with the +tabs that used to be shown below it. He did a lot of work to make the +tabs take up the least amount of space, while still being user friendly. + +We think it looks great! And, finally, welcome to core [@maykar]! + +

+Screenshot of the compact header. +Screenshot of the compact header. +

+ +[@maykar]: https://github.com/maykar + +## Script and automation YAML editor + +[@thomasloven] added the ability to edit an entire automation or script in the +UI with YAML. + +This is the perfect blend for people that want the best of both worlds, editing +in the UI with the normal UI editor and for some more complicated automations, +maybe edit it directly in YAML, all from the UI. + +

+Screenshot of the new YAML automation editor. +Screenshot of the new YAML automation editor. +

+ +He also added a very useful copy button to make it easy to share your +automation with the community. You can then easily paste it back in the +YAML editor and continue editing after switching to the UI mode. + +## Xbox integration + +Xbox now has a full blown integration in Home Assistant, which delivers remote +control and tons of other features. + +This awesome addition is created by [@hunterjm] and he made this nice little +video demonstrating his creation: + +
+ +
+ +## Counters & Timers available as helpers in the UI + +A nice addition to the helpers you can create and manage in the UI: +Counters & Timers are now available! Thanks, [@danimart1991]! + +

+Screenshot of the new Counter & Timer helpers. +Screenshot of the new Counter & Timer helpers.

+ +[@danimart1991]: https://github.com/danimart1991 + +## Native types support for templates (Beta) + +Ever tried to make a list of entities or set a RGB color via an template? +If so, you probably would have learned, that it is not that simple. In Home +Assistant, the result of a template always have been a piece of text (a string), +even if you made a list. + +This release adds support for native Python types in templates. This means that +templates now actually can create lists, or return a number! + +For 0.117, native template types will be a opt-in beta feature, that will +become the default in the next release. + +You can enable it, by disabling the `legacy_template` rendering in your +`configuration.yaml`: + +```yaml +homeassistant: + legacy_templates: false +``` + +After that, you can do things like this: + +{% raw %} + +```yaml +script: + my_script: + alias: Example + description: Example script with native lists in templates + variables: + entities: + - light.living_room_window + - light.living_room_table + color: [255, 0, 0] + sequence: + service: light.turn_on + data: + entity_id: "{{ entities }}" + rgb_color: "{{ color }}" +``` + +{% endraw %} + +This is an extremely powerful change to our template engine, that allow for +more advanced future additions and can significantly reduce the complexity of +existing templates in your set up. + +It should be mostly compatible with your existing templates, however, if you +enable this feature, please be sure to check the breaking changes section. + +We'd love to hear you experience with using this feature! And, if you run into, +problems, [please let us know][problem]. + +[problem]: https://github.com/home-assistant/core/issues/ + +## Other noteworthy changes + +It is Hacktoberfest, and a lot smaller, but noteworthy changes this release! + +First a shout out to [@spacegaier], he did a LOT of improvements (29!) this +release. Visual tweaks, quality of life improvements and random fixes, like: + +- Colors in the log for errors and warnings +- Automatically fill the Lovelace resource type based on the extension of the URL +- Make more text translateable +- Make attributes more user friendly +- Show the number of hidden entities in the entities configuration page +- And a lot more! + +But wait, there is more! + +- [@allenporter] started working on adding Google Nest Device Access to + the Nest integration. It is a base to extend on, for example, there is no + thermostat yet. Looking forward to the upcoming releases! +- You can now save automations, scripts and scenes with `ctrl`/`cmd` + `s`. + Thanks, [@gilsonmandalogo]! +- [@mattmattmatt] added the ability to dismiss all notifications at once, and + the notifications pane will close when the last notification was dismissed. +- We improved compatibility and Home Assistant is now usable on more, mostly + older, devices. +- You can now search for the entity name in the entity picker besides the + entity id, thanks [@zsarnett]! +- Thanks to [@cgarwood], you can see the configuration of OZW nodes straight + from the UI! +- [@bieniu] added voltage, power factor and energy sensors to Shelly integration. +- The Media Player platform now has a `repeat_set` service that allows for + changing the repeat mode. Sonos is the first integration that supports this + service. Thanks [@amelchio]! +- [@amelchio] also added support for playing Spotify URIs with the Sonos + integration. +- Thanks to [@timmo001], the WLED integration now supports color palettes. +- You can now monitor the battery state for your devolo Home Control devices, + thanks, [@Shutgun]! +- The Netatmo integration got some nice weather trend sensors, thanks [@cgtobi]! +- Chromecast devices can now play Plex media using the standard `play_media` + service. Nice work [@jjlawren]! +- The media browser now supports the Squeezebox and Volumio integrations, + thanks to [@rajlaud] and [@OnFreund]. + +[@mattmattmatt]: https://github.com/mattmattmatt +[@gilsonmandalogo]: https://github.com/gilsonmandalogo +[@zsarnett]: https://github.com/zsarnett + +## New Integrations + +We welcome the following new integration this release: + +- [Advantage Air][advantage_air docs], added by [@Bre77] +- [Gree][gree docs], added by [@cmroche] +- [Profiler][profiler docs], added by [@bdraco] +- [Ruckus Unleashed][ruckus_unleashed docs], added by [@gabe565] +- [Tasmota][tasmota docs], added by [@emontnemery] +- [Xbox][xbox docs], added by [@hunterjm] + +## New Platforms + +The following integration got support for a new platform: + +- [deCONZ][deCONZ docs] now has support for locks and fans, added by [@Kane610] +- [SimpliSafe][simplisafe docs] now has a bunch of nice sensors, thanks to [@nzapponi] +- [TTS][tts docs] platforms can now be configured for notifications, + thanks to [@dgomes] +- And similar, [Persistent Notification][persistent_notification docs] can now + also be configured for notification, thanks to [@KevinCathcart] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [RFXtrx][rfxtrx docs], done by [@RobBie1221] +- [UpCloud][upcloud docs], done by [@scop] +- [Cloudflare][cloudflare docs], done by [@ctalkington] + +## Release 0.117.1 - October 30 + +- Fix adding Virtual DSM system in synology_dsm ([@mib1185] - [#42523]) ([synology_dsm docs]) +- Enable polling for DSMR derivative entity ([@RobBie1221] - [#42524]) ([dsmr docs]) +- Bump aiohomekit to 0.2.54 ([@Jc2k] - [#42532]) ([homekit_controller docs]) +- Fix RMV giving wrong data and ignoring given parameters ([@cgtobi] - [#42561]) ([rmvtransport docs]) +- Update frontend to 20201021.4 ([@bramkragten] - [#42590]) ([frontend docs]) +- Fix MQTT template light ([@emontnemery] - [#42598]) ([mqtt docs]) +- Bump hatasmota to 0.0.25 ([@emontnemery] - [#42605]) ([tasmota docs]) +- Update greeclimate to 0.9.2 ([@cmroche] - [#42616]) ([gree docs]) + +[#42523]: https://github.com/home-assistant/core/pull/42523 +[#42524]: https://github.com/home-assistant/core/pull/42524 +[#42532]: https://github.com/home-assistant/core/pull/42532 +[#42561]: https://github.com/home-assistant/core/pull/42561 +[#42590]: https://github.com/home-assistant/core/pull/42590 +[#42598]: https://github.com/home-assistant/core/pull/42598 +[#42605]: https://github.com/home-assistant/core/pull/42605 +[#42616]: https://github.com/home-assistant/core/pull/42616 +[@Jc2k]: https://github.com/Jc2k +[@RobBie1221]: https://github.com/RobBie1221 +[@bramkragten]: https://github.com/bramkragten +[@cgtobi]: https://github.com/cgtobi +[@cmroche]: https://github.com/cmroche +[@emontnemery]: https://github.com/emontnemery +[@mib1185]: https://github.com/mib1185 +[dsmr docs]: /integrations/dsmr/ +[frontend docs]: /integrations/frontend/ +[gree docs]: /integrations/gree/ +[homekit_controller docs]: /integrations/homekit_controller/ +[mqtt docs]: /integrations/mqtt/ +[rmvtransport docs]: /integrations/rmvtransport/ +[synology_dsm docs]: /integrations/synology_dsm/ +[tasmota docs]: /integrations/tasmota/ + +## Release 0.117.2 - November 1 + +- Bump pwmled to v1.6.6 ([@soldag] - [#42607]) ([rpi_gpio_pwm docs]) +- Fix Fibaro HC2 climate device missing temperature ([@airthusiast] - [#42627]) +- Fix geo_rss_events import statement ([@exxamalte] - [#42629]) ([geo_rss_events docs]) +- Bump pycfdns to 1.2.1 ([@ludeeus] - [#42634]) ([cloudflare docs]) +- Make sure Tasmota status sensors are disabled ([@emontnemery] - [#42643]) ([tasmota docs]) +- attempt to renew subscription immediately to stop endless loop if it fails after setup ([@hunterjm] - [#42651]) ([onvif docs]) +- Bump up ZHA dependencies ([@Adminiuga] - [#42679]) ([zha docs]) +- Fix canary camera entity inheritance ([@ctalkington] - [#42691]) ([canary docs]) +- Use pylutron_caseta 0.7.1 ([@mdonoughe] - [#42701]) ([lutron_caseta docs]) + +[#42607]: https://github.com/home-assistant/core/pull/42607 +[#42627]: https://github.com/home-assistant/core/pull/42627 +[#42629]: https://github.com/home-assistant/core/pull/42629 +[#42634]: https://github.com/home-assistant/core/pull/42634 +[#42643]: https://github.com/home-assistant/core/pull/42643 +[#42651]: https://github.com/home-assistant/core/pull/42651 +[#42679]: https://github.com/home-assistant/core/pull/42679 +[#42691]: https://github.com/home-assistant/core/pull/42691 +[#42701]: https://github.com/home-assistant/core/pull/42701 +[@Adminiuga]: https://github.com/Adminiuga +[@airthusiast]: https://github.com/airthusiast +[@ctalkington]: https://github.com/ctalkington +[@emontnemery]: https://github.com/emontnemery +[@exxamalte]: https://github.com/exxamalte +[@hunterjm]: https://github.com/hunterjm +[@ludeeus]: https://github.com/ludeeus +[@mdonoughe]: https://github.com/mdonoughe +[@soldag]: https://github.com/soldag +[canary docs]: /integrations/canary/ +[cloudflare docs]: /integrations/cloudflare/ +[geo_rss_events docs]: /integrations/geo_rss_events/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[onvif docs]: /integrations/onvif/ +[rpi_gpio_pwm docs]: /integrations/rpi_gpio_pwm/ +[tasmota docs]: /integrations/tasmota/ +[zha docs]: /integrations/zha/ + +## Release 0.117.3 - November 4 + +- Please set exact cryptography version cryptography==3.2 ([@onkelbeh] - [#42611]) +- Fix broken maxcube component ([@onkelbeh] - [#42674]) ([maxcube docs]) +- Fix Vizio host string for zeroconf discovery ([@raman325] - [#42738]) ([vizio docs]) +- Bump bimmer_connected to 0.7.10: fix login issues, add (PH)EV services ([@rikroe] - [#42747]) ([bmw_connected_drive docs]) +- Bump pyairvisual to 5.0.4 ([@bachya] - [#42760]) ([airvisual docs]) +- Fix incorrect property usage for SimpliSafe ([@bachya] - [#42770]) ([simplisafe docs]) +- Force color or white mode exclusivity for Tasmota lights ([@emontnemery] - [#42772]) ([tasmota docs]) +- Bump pyatmo to 4.2.0 ([@cgtobi] - [#42774]) ([netatmo docs]) +- Fix broken 2fa authentication in synology_dsm ([@mib1185] - [#42775]) ([synology_dsm docs]) +- Bump bimmer_connected to 0.7.11 ([@rikroe] - [#42788]) ([bmw_connected_drive docs]) +- Filter rfxtrx replace devices in option flow on existing config entry ([@RobBie1221] - [#42800]) ([rfxtrx docs]) +- Fix rest sensors with resource templates ([@bdraco] - [#42818]) ([rest docs]) +- Fix evohome scheduling coroutines ([@balloob] - [#42821]) ([evohome docs]) + +[#42611]: https://github.com/home-assistant/core/pull/42611 +[#42674]: https://github.com/home-assistant/core/pull/42674 +[#42738]: https://github.com/home-assistant/core/pull/42738 +[#42747]: https://github.com/home-assistant/core/pull/42747 +[#42760]: https://github.com/home-assistant/core/pull/42760 +[#42770]: https://github.com/home-assistant/core/pull/42770 +[#42772]: https://github.com/home-assistant/core/pull/42772 +[#42774]: https://github.com/home-assistant/core/pull/42774 +[#42775]: https://github.com/home-assistant/core/pull/42775 +[#42788]: https://github.com/home-assistant/core/pull/42788 +[#42800]: https://github.com/home-assistant/core/pull/42800 +[#42818]: https://github.com/home-assistant/core/pull/42818 +[#42821]: https://github.com/home-assistant/core/pull/42821 +[@RobBie1221]: https://github.com/RobBie1221 +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@cgtobi]: https://github.com/cgtobi +[@emontnemery]: https://github.com/emontnemery +[@mib1185]: https://github.com/mib1185 +[@onkelbeh]: https://github.com/onkelbeh +[@raman325]: https://github.com/raman325 +[@rikroe]: https://github.com/rikroe +[airvisual docs]: /integrations/airvisual/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[evohome docs]: /integrations/evohome/ +[maxcube docs]: /integrations/maxcube/ +[netatmo docs]: /integrations/netatmo/ +[rest docs]: /integrations/rest/ +[rfxtrx docs]: /integrations/rfxtrx/ +[simplisafe docs]: /integrations/simplisafe/ +[synology_dsm docs]: /integrations/synology_dsm/ +[tasmota docs]: /integrations/tasmota/ +[vizio docs]: /integrations/vizio/ + +## Release 0.117.4 - November 4 + +- Update greeclimate to 0.9.5 ([@cmroche] - [#42796]) ([gree docs]) +- Cleanup dispatchers when unloading rfxtrx ([@RobBie1221] - [#42803]) ([rfxtrx docs]) +- Call coordinator.shutdown() when ConfigEntryNotReady ([@bieniu] - [#42833]) ([brother docs]) + +[#42796]: https://github.com/home-assistant/core/pull/42796 +[#42803]: https://github.com/home-assistant/core/pull/42803 +[#42833]: https://github.com/home-assistant/core/pull/42833 +[@RobBie1221]: https://github.com/RobBie1221 +[@bieniu]: https://github.com/bieniu +[@cmroche]: https://github.com/cmroche +[brother docs]: /integrations/brother/ +[gree docs]: /integrations/gree/ +[rfxtrx docs]: /integrations/rfxtrx/ + +## Release 0.117.5 - November 5 + +- Bump hatasmota to 0.0.25.1 ([@emontnemery] - [#42850]) ([tasmota docs]) +- Clean up SimpliSafe binary sensor implementation ([@bachya] - [#42841]) ([simplisafe docs]) +- Fix missing sensor exceptions in SimpliSafe ([@bachya] - [#42845]) ([simplisafe docs]) +- Fix missing/incorrect SimpliSafe entities ([@bachya] - [#42846]) ([simplisafe docs]) +- Fix Netatmo public weather sensor bug ([@cgtobi] - [#42858]) ([netatmo docs]) +- Revert "Fix broken maxcube component" ([@onkelbeh] - [#42859]) ([maxcube docs]) +- Bump bimmer_connected to 0.7.12 ([@rikroe] - [#42875]) ([bmw_connected_drive docs]) + +[#42841]: https://github.com/home-assistant/core/pull/42841 +[#42845]: https://github.com/home-assistant/core/pull/42845 +[#42846]: https://github.com/home-assistant/core/pull/42846 +[#42850]: https://github.com/home-assistant/core/pull/42850 +[#42858]: https://github.com/home-assistant/core/pull/42858 +[#42859]: https://github.com/home-assistant/core/pull/42859 +[#42875]: https://github.com/home-assistant/core/pull/42875 +[@bachya]: https://github.com/bachya +[@cgtobi]: https://github.com/cgtobi +[@emontnemery]: https://github.com/emontnemery +[@onkelbeh]: https://github.com/onkelbeh +[@rikroe]: https://github.com/rikroe +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[maxcube docs]: /integrations/maxcube/ +[netatmo docs]: /integrations/netatmo/ +[simplisafe docs]: /integrations/simplisafe/ +[tasmota docs]: /integrations/tasmota/ + +## 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. + +
+ Cast +

+ +The `host` option for the cast integration has previously been deprecated and +is now removed. Configuring media players via the `media_player` platform was +also deprecated before, and removed in this release as well. + +If you use any of those above, you'll need to migrate to use the new +configuration method. Please see the cast documentation on how to set this up. + +([@emontnemery] - [#41402]) ([cast docs]) + +

+
+ +
+ Cloudflare +

+ +Cloudflare is now available exclusively via the Integrations UI. This means its +no longer configured in YAML. Existing configurations are not imported as API +Tokens are now used to authenticate. Refer to integration documentation on how +to setup via UI. + +([@ctalkington] - [#41167]) ([cloudflare docs]) + +

+
+ +
+ Elkm1 +

+ +The `bypassed` attribute of a zone sensor is removed as it is no longer used. +The bypassed status of a zone can be determined when the `logical_status` of +a zone has a value of `bypassed`. + +Auto-configure now only configures elements that have a name or description +associated with them. The previous mechanism for automatically detecting if +element are configured on the ElkM1 panel was to note any element that have +attributes different than the elkm1-lib's defaults. This is error prone and +made the library fragile when defaults change. + +([@gwww] - [#41584] [#42064]) ([elkm1 docs]) + +

+
+ +
+ ISY994 +

+ +This update to PyISY adds native support for decimal precision in ISY Variable +sensors, any template sensors created to adjust the rounding or precision shown +in Home Assistant should be updated/removed. + +The way logging is handled in PyISY has been changed. If you previously set a +different logging level for `homeassistant.components.isy994` in your `logger` +configuration, you will also need to set the level for `pyisy` and/or +`pyisy.events`. + +Two changes may cause some entities to change platforms; however, this should +only affect NodeServer nodes: + +- ISY Nodes that use the ON/OFF unit of measurement and cannot be + categorized/sorted by another method have been moved from `switch` to + `binary_sensor` since it cannot be confirmed if the device supports DON/DOF + commands. The `isy994.send_node_command` service may be used to control these + devices if you know they are controllable. + +- The status of all nodes is now downloaded before sorting devices, as a result + some nodes which defaulted to `sensor` will now be correctly sorted. + +Sensor values which use the ISY994's "index" unit of measurement (UOM=25) now +report the "formatted" text value shown in the ISY Admin Console, instead of the +integer index. If you have any automations or templates relying on these values, +they must be updated. + +([@shbatm] - [#42043] [#42050]) ([isy994 docs]) + +

+
+ +
+ Modbus +

+ +Climate configuration was moved from the platform directly into the `Modbus` +integration. This change was required to meet the latest [architecture requirements](https://github.com/home-assistant/architecture/blob/master/adr/0007-integration-config-yaml-structure.md) +of Home Assistant. + +Example of previous YAML configuration: + +```yaml +climate: + - platform: modbus + name: Watlow F4T + hub: hub1 + slave: 1 + data_type: uint + data_count: 1 + scale: 0.1 + offset: 0 + precision: 1 + max_temp: 30 + min_temp: 15 + temp_step: 1 + target_temp_register: 2782 + current_temp_register: 27586 +``` + +Example of new YAML configuration: + +```yaml +modbus: + - name: hub1 + type: tcp + host: 127.0.0.1 + port: 5020 + + climates: + - name: Watlow F4T + slave: 1 + data_type: uint + data_count: 1 + scale: 0.1 + offset: 0 + precision: 1 + max_temp: 30 + min_temp: 15 + temp_step: 1 + target_temp_register: 2782 + current_temp_register: 27586 +``` + +([@vzahradnik] - [#32439]) ([modbus docs]) + +

+
+ +
+ MQTT +

+ +MQTT Discovery is now enabled by default. + +([@emontnemery] - [#41361]) ([mqtt docs]) + +

+
+ +
+ Netatmo +

+ +Sensors for raw battery values and string representation have been dropped. + +([@cgtobi] - [#41321]) ([netatmo docs]) + +

+
+ +
+ onewire +

+ +Despite the project name, the owfs package (which depends on fuse and exposes +filesystem calls in the appropriate directory to this program itself) is NOT +recommended for any real use, it has well known issues with races etc. + +The owfs/fuse implementation is therefore deprecated in favour of the owserver +implementation. + +Before this release: + +```yaml +sensor: + - platform: onewire + mount_dir: /mnt/1Wire +``` + +After this release: + +```yaml +sensor: + - platform: onewire + host: localhost +``` + +([@epenet] - [#42041]) ([onewire docs]) + +

+
+ +
+ RainMachine +

+ +Per [ADR-0010](https://github.com/home-assistant/architecture/blob/master/adr/0010-integration-configuration.md), +this PR deprecates YAML configuration for RainMachine until 0.119. If you +already use the RainMachine integration, you do not need to take action. +Your configuration has already been imported into the UI. + +([@bachya] - [#41971]) ([rainmachine docs]) + +

+
+ +
+ RFXtrx +

+ +The integration is now set up via the UI. YAML support has been limited to +an (automatic) one-time import. You can safely remove the YAML configuration +after upgrading. + +Options are now set through the UI (global options/add device/remove device/change device options). + +For newly added or detected devices, `device_class` cannot be set. + +Instead, it should be set by customizing entities: + + +The debug key is removed as option for the integration. Instead, log level +for the library can be set by configuring the logger (see below). + +```yaml +logger: + logs: + RFXtrx: debug +``` + +No configuration changes are necessary, to keep existing configs working, the key is still accepted. + +([@RobBie1221] - [#39117]) ([rfxtrx docs]) + +

+
+ +
+ SimpliSafe +

+ +Per [ADR-0010](https://github.com/home-assistant/architecture/blob/master/adr/0010-integration-configuration.md), +this PR deprecates YAML configuration for SimpliSafe until 0.119. If you already +use the SimpliSafe integration, you do not need to take action. +Your configuration has already been imported into the UI. + +([@bachya] - [#41896]) ([simplisafe docs]) + +

+
+ +
+ Sonarr +

+ +Sonarr has fully transitioned to configuration via UI. YAML configuration is +now no longer supported after being deprecated for several releases already. + +([@ctalkington] - [#41904]) ([sonarr docs]) + +

+
+ +
+ Templates - Auto-updating now() +

+ +The `entity_id:` attribute was recently removed from template entities because +the templates are now able to find all referenced entities automatically. This +removal introduced a new problem where templates using the current time could +no longer use `entity_id: sensor.time` to ensure periodic updates. + +With apologies to those who have spent the last couple of releases adding +workarounds to their templates, we are now introducing an auto-refresh feature +to time-based templates. + +It is thus no longer necessary to reference `sensor.time`, `sensor.date` or manually +update template entities when `now()` or `utcnow()` is present in the template. + +The template will automatically be updated when: + +- A referenced entity changes state. +- At the start of each minute when `now()` or `utcnow()` is present in the template. + +Please note, if you have a time-based template where you _do not_ want it to +update periodically it will now have to be reworked to not use `now()`. + +([@bdraco] - [#41147] [#42225]) + +

+
+ +
+ Templates - Native types (BETA) +

+ +Template results can now rendered to native Python types, but only when the +legacy template rendering is disabled. + +```yaml +homeassistant: + legacy_templates: false +``` + +**This feature will be opt-in for this release, the breaking changes below +only apply if you explicitly enable this new feature.** + +A template would always result in a string (text). This made it hard +to use things like lists, or numbers as a result of a template. For example, +returning a list of entities or a RGB/HS/XY color. + +This change may impact your existing templates, as templates now can return +other types; For example, string, float, integer, boolean, lists or dictionaries. + +The following templates can be impacted by this: + +- Entities with templated attributes. Attributes keep their native Python type, + thus if the attribute is used/processed in a template again later, + the type might be different. +- Templates working with lists or mappings (dictionaries). Previously, such + collection would be returned as a text, for example `[1, 2, 3, 4, 5]`. We've + seen examples where such results are decoded using text processing again + (e.g., by splitting the result on a `,` to get the separate values). The + additional processing is no longer needed, as the returned value will be a + collection now. +- Note: The entity state in Home Assistant is always a text (string). Even with + native types being supported in Templates now, if a results is stored as a + entity state, they will be converted to an string. + +([@frenck] - [#41227]) + +

+
+ +
+ Templates - Rate limits +

+ +Previously we implemented a rate limit of 1 update per minute for +`states.DOMAIN` in templates. This has been changed to an update once every second. + +Templates using `states` (without a domain) still have a rate limit of 1 update per minute. + +([@bdraco] - [#42004]) + +

+ +
+ +
+ UpCloud +

+ +The UpCloud integration is now configured via the UI. Existing YAML configuration +is automatically imported after upgrading and can be safely removed afterward. + +([@scop] - [#37941]) ([upcloud docs]) + +

+
+ +## Farewell to the following + +- The **Australian Bureau of Meteorology (BOM)** integration has been removed. + It was using webscraping to gather its data, which is not allowed. + ([@balloob] - [#41941]) + +## All changes + +
+ Click to see all changes! + +- Support adding Spotify share links to the Sonos queue ([@amelchio] - [#40802]) ([sonos docs]) +- Implement config and option flow for rfxtrx integration ([@RobBie1221] - [#39117]) ([rfxtrx docs]) (breaking-change) +- Rewrite random unittest tests to pytest style test functions ([@eliotw] - [#40920]) ([random docs]) +- Bump actions/setup-python from v2.1.2 to v2.1.3 (dependabot - [#40921]) +- Update weather tests to pytest style ([@Antetokounpo] - [#40917]) ([weather docs]) +- Abort deCONZ config flow if no radio hardware is connected ([@Kane610] - [#40811]) ([deconz docs]) +- Improve logging to identify which deCONZ device is at fault ([@Kane610] - [#40808]) ([deconz docs]) +- Rewrite worldclock unittest tests to pytest style test functions ([@eliotw] - [#40922]) ([worldclock docs]) +- Add lock support to deCONZ ([@Kane610] - [#40807]) ([deconz docs]) (new-platform) +- Use DataUpdateCoordinator for canary ([@ctalkington] - [#40691]) ([canary docs]) +- Use direct service calls in demo climate tests instead of climate common ([@frenck] - [#40934]) ([demo docs]) +- Common strings in Freebox config flow ([@SNoof85] - [#40938]) ([freebox docs]) +- Use of reference strings in meteo france config flow ([@SNoof85] - [#40939]) +- Add context to event trigger ([@OnFreund] - [#40932]) ([homeassistant docs]) +- Add voltage, power factor and energy returned sensors to Shelly integration ([@bieniu] - [#40681]) ([shelly docs]) +- Use common strings in roomba config flow ([@springstan] - [#40948]) ([roomba docs]) +- Use of reference strings for Airly config flow ([@SNoof85] - [#40946]) ([airly docs]) +- Use translation references for gios config flow ([@bieniu] - [#40952]) ([gios docs]) +- Use common strings in adguard config flow ([@springstan] - [#40942]) ([adguard docs]) +- Use translation references for Brother config flow ([@bieniu] - [#40953]) +- Test reloading webhook trigger ([@balloob] - [#40950]) ([webhook docs]) +- Use translation references for BraviaTV config flow ([@bieniu] - [#40955]) ([braviatv docs]) +- Use common string in TPLink config flow ([@epenet] - [#40958]) ([tplink docs]) +- Use reference strings for Nut configflow ([@SNoof85] - [#40966]) ([nut docs]) +- Use common strings in spotify config flow ([@springstan] - [#40957]) ([spotify docs]) +- Use common strings in mqtt config flow ([@springstan] - [#40956]) ([mqtt docs]) +- Upgrade surepy to 0.2.6 ([@epenet] - [#40964]) +- Replace strings in atag component ([@MBlokhuijzen] - [#40935]) ([atag docs]) +- Add longitude and latitude common strings ([@SNoof85] - [#40963]) +- Add missing unit for signal strength ([@chemelli74] - [#40436]) +- Clean up goalzero ([@tkdrob] - [#40817]) ([goalzero docs]) +- Replace IP Address in strings.json ([@MBlokhuijzen] - [#40968]) ([denonavr docs]) ([gogogate2 docs]) ([guardian docs]) ([powerwall docs]) ([ps4 docs]) +- Replace strings in hvv_departures with references ([@MBlokhuijzen] - [#40980]) ([hvv_departures docs]) +- Add test coverage for modbus switch (coil part) ([@janiversen] - [#40696]) ([modbus docs]) +- Fix Rachio switch state when paused ([@brg468] - [#40984]) ([rachio docs]) +- Improve deCONZ platforms ([@Kane610] - [#40986]) ([deconz docs]) +- Minor fixes for Plex media browser ([@jjlawren] - [#39878]) ([plex docs]) +- Use reference strings in elkm1 strings.json ([@MBlokhuijzen] - [#40996]) ([elkm1 docs]) +- Replace references in august strings.json ([@MBlokhuijzen] - [#40993]) ([august docs]) +- Use single_instance_allowed for webhook config flows ([@springstan] - [#40965]) +- Remove unnecessary instance attribute in Plex reauth config flow ([@jjlawren] - [#41000]) ([plex docs]) +- Use references in airvisual strings.json ([@daveychu] - [#41005]) ([airvisual docs]) +- Rewrite remember_the_milk tests to pytest style tests ([@igotinfected] - [#41002]) ([remember_the_milk docs]) +- Use references in guardian strings.json ([@daveychu] - [#40987]) ([guardian docs]) +- Scaffold: correct import ([@Danielhiversen] - [#40998]) +- Improve patching for nzbget sensor tests ([@ctalkington] - [#41032]) ([nzbget docs]) +- Verify template sensors that reference other template sensors can reload ([@bdraco] - [#41031]) ([template docs]) +- Use string references for config flow in NWS ([@MatthewFlamm] - [#41007]) ([nws docs]) +- Use references in agent_dvr strings.json ([@daveychu] - [#40999]) ([agent_dvr docs]) +- Update strings.json ([@SNoof85] - [#40994]) ([hangouts docs]) +- Update pyhomematic to 0.1.69 ([@danielperna84] - [#41010]) ([homematic docs]) +- Allow processing data in CoordinatorEntity before writing state ([@balloob] - [#40926]) ([coolmaster docs]) +- Use reference strings in Tibber ([@Danielhiversen] - [#41038]) ([tibber docs]) +- Clean deCONZ tests to depend less on integration code ([@Kane610] - [#41015]) ([deconz docs]) +- Bump actions/upload-artifact from v2.1.4 to v2.2.0 (dependabot - [#41037]) +- Use reference strings in Vilfo ([@SNoof85] - [#41039]) ([vilfo docs]) +- Update config string for Tibber ([@Danielhiversen] - [#41045]) ([tibber docs]) +- Use reference strings in forked_daapd ([@daveychu] - [#40989]) ([forked_daapd docs]) +- Use reference strings in Wled ([@SNoof85] - [#40969]) ([wled docs]) +- Bump pyvesync to 1.2.0 ([@djtimca] - [#40978]) ([vesync docs]) +- Fix the name of the translation key for Brother integration ([@bieniu] - [#41054]) ([brother docs]) +- Use references in isy994 strings.json ([@daveychu] - [#40990]) ([isy994 docs]) +- Update denonavr to 0.9.5 ([@scarface-4711] - [#41058]) ([denonavr docs]) +- Use reference strings in Griddy ([@SNoof85] - [#41079]) ([griddy docs]) +- Use already_configured_service in NWS strings ([@MatthewFlamm] - [#41062]) ([nws docs]) +- Use core GitHub URL in contributing guidelines ([@gerard33] - [#41083]) +- Use reference strings in Dexcom ([@SNoof85] - [#41072]) ([dexcom docs]) +- Use reference strings in elgato ([@SNoof85] - [#41063]) ([elgato docs]) +- Use reference strings in doorbird ([@SNoof85] - [#41061]) ([doorbird docs]) +- Use reference strings in directv ([@SNoof85] - [#41059]) ([directv docs]) ([directv docs]) +- Use reference strings in Glances ([@SNoof85] - [#41078]) ([glances docs]) +- Use reference strings in Garmin Connect ([@SNoof85] - [#41076]) ([garmin_connect docs]) +- Use reference strings in Flume ([@SNoof85] - [#41075]) ([flume docs]) +- Use reference strings in Flick Electric ([@SNoof85] - [#41074]) ([flick_electric docs]) +- Use reference strings in Firmata ([@SNoof85] - [#41073]) ([firmata docs]) +- Use reference strings in Coolmaster ([@SNoof85] - [#41066]) ([coolmaster docs]) +- Use reference strings in Bsblan ([@SNoof85] - [#41049]) ([bsblan docs]) +- Use reference strings in Totalconnect ([@SNoof85] - [#41047]) ([totalconnect docs]) +- Use reference strings in Sense ([@SNoof85] - [#41046]) ([sense docs]) +- Use common strings for Rachio ([@brg468] - [#41090]) ([rachio docs]) +- Use reference strings in JuiceNet ([@MatejMecka] - [#41021]) ([juicenet docs]) +- Use reference strings in Abode ([@bieniu] - [#41004]) ([abode docs]) +- Use reference strings in Huawei LTE ([@SNoof85] - [#41011]) ([huawei_lte docs]) +- Use core GitHub URL in all files ([@springstan] - [#41089]) +- Rewrite season sensor tests to pytest style ([@ctalkington] - [#40918]) ([season docs]) +- Use references in Neato translation strings ([@MBlokhuijzen] - [#41009]) ([neato docs]) +- Rewrite SQL tests to pytest style ([@oxygen0211] - [#41016]) ([sql docs]) +- Spread the load on the Tibber server ([@Danielhiversen] - [#40797]) ([tibber docs]) +- Upgrade flake8 to 3.8.4 ([@scop] - [#41117]) +- Use reference strings in sonos ([@jasonmadigan] - [#41122]) ([sonos docs]) +- Use common strings for Harmony config flow ([@groot406] - [#41094]) ([harmony docs]) +- Use common Strings for Ambiclimate config flow ([@Spartan-II-117] - [#41100]) ([ambiclimate docs]) +- Use reference strings for openweathermap ([@pinkywafer] - [#41055]) ([openweathermap docs]) +- Update strings.json ([@SNoof85] - [#41051]) ([cert_expiry docs]) +- Use reference strings in lifx ([@jasonmadigan] - [#41124]) ([lifx docs]) +- Remove excessive logging ([@hmmbob] - [#41120]) ([rest_command docs]) +- Update common Strings ([@scheric] - [#41131]) ([shopping_list docs]) +- Update pyhomematic to 0.1.70 ([@danielperna84] - [#41108]) ([homematic docs]) +- use common string for "Port" ([@groot406] - [#41104]) ([wiffi docs]) +- Bump azure-servicebus to 0.50.3 ([@hfurubotten] - [#41106]) ([azure_service_bus docs]) +- Use common strings for Mikrotik config flow ([@Spartan-II-117] - [#41110]) ([mikrotik docs]) +- Use reference strings in Wemo ([@jasonmadigan] - [#41067]) ([wemo docs]) +- Use reference strings in izone ([@jasonmadigan] - [#41125]) ([izone docs]) +- Use common strings in zha config flow ([@scheric] - [#41127]) ([zha docs]) +- Use common strings in Tado config flow ([@scheric] - [#41128]) ([tado docs]) +- Use common string in Ring config flow ([@scheric] - [#41132]) ([ring docs]) +- Use reference strings for Zoneminder config flow ([@groot406] - [#41103]) ([zoneminder docs]) +- Use common strings for Sentry config flow ([@groot406] - [#41087]) ([sentry docs]) +- Use common strings for Google Cast config flow ([@Spartan-II-117] - [#41086]) ([cast docs]) +- Use common strings in Powerwall config flow ([@groot406] - [#41137]) ([powerwall docs]) +- Update met config string ([@Danielhiversen] - [#41048]) ([met docs]) +- Use common string in Solarlog config flow ([@scheric] - [#41130]) ([solarlog docs]) +- Use common string in Melcloud config flow ([@thijsdejong] - [#41134]) ([melcloud docs]) +- Add api token to base strings for config flows ([@springstan] - [#41133]) ([juicenet docs]) ([xiaomi_miio docs]) +- Add name to base strings for config flows ([@springstan] - [#40947]) +- Add already_in_progress to base strings for config flows ([@springstan] - [#40961]) +- Replace minecraft translation strings with reference strings ([@MatejMecka] - [#40997]) ([minecraft_server docs]) +- Add ssl and verify_ssl to base strings for config flows ([@springstan] - [#40944]) +- Reorg channel handling for Homematic IP Cloud ([@SukramJ] - [#41118]) ([homematicip_cloud docs]) +- Use already configured key in harmony and mikrotik ([@springstan] - [#41142]) ([harmony docs]) ([mikrotik docs]) +- Use common strings for home connect config flow ([@RobBie1221] - [#41153]) ([home_connect docs]) +- Use common strings for somfy config flow ([@RobBie1221] - [#41150]) ([somfy docs]) +- Use common Strings for Acmeda Config Flow ([@Spartan-II-117] - [#41092]) ([acmeda docs]) +- Use references in config flow of devolo_home_control ([@Shutgun] - [#40949]) ([devolo_home_control docs]) +- Lutron Caseta: update for light transition and cover stop ([@mdonoughe] - [#41155]) ([lutron_caseta docs]) +- Update Kodi to no longer use protected methods ([@cgtobi] - [#40788]) ([kodi docs]) +- Use the shared Zeroconf instance in devolo_home_control ([@Shutgun] - [#40800]) ([devolo_home_control docs]) +- Indentify IKEA and Phillips motion sensors correctly ([@abmantis] - [#41111]) ([zha docs]) +- Fix kodi.add_to_playlist ([@OnFreund] - [#41185]) ([kodi docs]) +- Use common strings in hisense_aehw4a1 config flow ([@scheric] - [#41190]) ([hisense_aehw4a1 docs]) +- Bump version to 0.117.0dev0 ([@frenck] - [#40928]) +- Use common strings in Geonetnz quakes config flow ([@scheric] - [#41192]) ([geonetnz_quakes docs]) +- Use reference strings in Coronavirus ([@SNoof85] - [#41057]) ([coronavirus docs]) +- Use common strings in Icloud config flow ([@scheric] - [#41188]) ([icloud docs]) +- Rewrite simulated unittest tests to pytest style test functions ([@eliotw] - [#41115]) ([simulated docs]) +- Improve demo fan platform tests ([@frenck] - [#41123]) ([demo docs]) +- Rewrite dte_energy_bridge unittest tests to pytest style test functions ([@eliotw] - [#41116]) ([dte_energy_bridge docs]) +- Rewrite aurora tests to pytest style ([@ccatterina] - [#41144]) ([aurora docs]) +- Rewrite ring unittest test to pytest ([@arianahl] - [#41151]) ([ring docs]) +- Rewite Radarr tests as in pytest style for #40879 ([@ronanmu] - [#41145]) ([radarr docs]) +- Refactor dsmr tests ([@RobBie1221] - [#39724]) ([dsmr docs]) +- Fix flaky huawei test ([@balloob] - [#41204]) ([huawei_lte docs]) +- Use reference strings in Nexia ([@SNoof85] - [#41210]) ([nexia docs]) +- Remove unnecessary should poll from media player classes ([@springstan] - [#41220]) ([androidtv docs]) ([frontier_silicon docs]) ([openhome docs]) ([pandora docs]) ([yamaha_musiccast docs]) +- Remove unnecessary should poll from camera classes ([@springstan] - [#41228]) ([demo docs]) +- Remove unnecessary should poll from switch classes ([@springstan] - [#41218]) ([anel_pwrctrl docs]) ([digitalloggers docs]) ([hikvisioncam docs]) ([kankun docs]) ([mfi docs]) ([orvibo docs]) ([xiaomi_miio docs]) +- Remove unnecessary should poll from sensor classes ([@springstan] - [#41219]) ([fints docs]) ([history_stats docs]) ([influxdb docs]) ([twitch docs]) ([xiaomi_miio docs]) +- Rewrite threshold unittest tests to pytest style test functions ([@baget] - [#41141]) ([threshold docs]) +- Remove unnecessary should poll from binary sensor classes ([@springstan] - [#41221]) ([concord232 docs]) ([maxcube docs]) +- Fix spelling in telegram_bot services ([@NikoM87] - [#41235]) ([telegram_bot docs]) +- Rewrite transport_nsw sensor tests to pytest tests ([@frangiz] - [#41169]) ([transport_nsw docs]) +- Fix slack message icon override ([@jeffaudio] - [#41212]) ([slack docs]) +- Remove unnecessary should poll from cover classes ([@springstan] - [#41231]) ([garadget docs]) +- Remove unnecessary should poll from light classes ([@springstan] - [#41229]) ([blinksticklight docs]) ([decora docs]) ([xiaomi_miio docs]) ([zengge docs]) +- Use reference strings in Nuheat ([@SNoof85] - [#41213]) ([nuheat docs]) +- Use reference strings in Myq ([@SNoof85] - [#41209]) ([myq docs]) +- Add and fix some Huawei LTE type hints ([@scop] - [#41196]) ([huawei_lte docs]) +- Use reference strings in Samsung TV config flow ([@zetvio] - [#41248]) ([samsungtv docs]) +- Use references in blebox config flow ([@zetvio] - [#41244]) ([blebox docs]) +- Use reference strings in pvpc_hourly_pricing ([@SNoof85] - [#41214]) ([pvpc_hourly_pricing docs]) +- Use reference strings in Tuya ([@SNoof85] - [#41236]) ([tuya docs]) +- Return attribute dict directly without temporary variable ([@springstan] - [#41206]) +- Axis remove orphan string ([@davet2001] - [#41166]) ([axis docs]) +- Use common strings in Ecobee config flow ([@scheric] - [#41257]) ([ecobee docs]) +- Improve demo media player platform tests ([@frenck] - [#41096]) ([demo docs]) +- Use common strings for GDACS config flow ([@djpremier] - [#41178]) ([gdacs docs]) +- Use common strings for Lutron Caseta config flow ([@TopdRob] - [#41241]) ([lutron_caseta docs]) +- Setup geo_location to only track the geo_location domain ([@bdraco] - [#41254]) ([geo_location docs]) +- Use common Strings for Z-Wave config flow ([@Spartan-II-117] - [#41161]) ([zwave docs]) +- Rewrite zwave node entity tests to pytest style test function ([@RobBie1221] - [#41239]) ([zwave docs]) +- Use reference strings in Tesla ([@SNoof85] - [#41238]) ([tesla docs]) +- Use reference strings in Tradfri ([@SNoof85] - [#41237]) ([tradfri docs]) +- Improve template test sensor ([@sycx2] - [#41199]) ([template docs]) +- Add Profiler integration ([@bdraco] - [#41175]) ([profiler docs]) (new-integration) +- Use common strings for Flu Near You config flow ([@djpremier] - [#41174]) ([flunearyou docs]) +- Avoid event data serialization during recorder that we throw away ([@bdraco] - [#41217]) ([recorder docs]) +- Use reference strings in Notion ([@SNoof85] - [#41211]) ([notion docs]) +- Use common strings for Onvif config flow ([@djpremier] - [#41170]) ([onvif docs]) +- Switch to asyncio.wait for slow update warning implementation ([@bdraco] - [#41184]) +- Use reference strings in rainmachine ([@SNoof85] - [#41216]) ([rainmachine docs]) +- Use reference strings in HomematicIP Cloud #40578 ([@TopdRob] - [#41243]) ([homematicip_cloud docs]) +- Convert States to dicts via as_dict only once ([@bdraco] - [#41208]) +- Use reference strings in Tesla ([@SNoof85] - [#41270]) ([tesla docs]) +- Use reference strings in Rainmachine ([@SNoof85] - [#41272]) ([rainmachine docs]) +- Use of reference strings in Goalzero config flow ([@Pigotka] - [#41275]) ([goalzero docs]) +- Use of reference strings in Heos config flow ([@Pigotka] - [#41282]) ([heos docs]) +- Reorder MQTT binary sensor tests ([@emontnemery] - [#41277]) ([mqtt docs]) +- Bump pyvesync to version 1.2.1 ([@djtimca] - [#41269]) ([vesync docs]) +- Drop legacy_patchable_time from MQTT tests ([@emontnemery] - [#41287]) ([mqtt docs]) +- Add OZW node config parameters websocket commands ([@raman325] - [#40527]) ([ozw docs]) +- Update strings.json ([@SNoof85] - [#41293]) ([local_ip docs]) +- Use reference strings in iaqualink ([@SNoof85] - [#41292]) ([iaqualink docs]) +- add common strings ([@scheric] - [#41300]) ([hue docs]) +- add strings ([@scheric] - [#41297]) ([plugwise docs]) +- Rewrite min_max unittest tests to pytest style test function ([@arianahl] - [#41296]) ([min_max docs]) +- Rewrite reddit tests to pytest style tests ([@igotinfected] - [#41006]) ([reddit docs]) +- Use reference strings in Hunter Douglas PowerView ([@SNoof85] - [#41291]) ([hunterdouglas_powerview docs]) +- Indicate to user that remote was turned off when call was attempted ([@elupus] - [#40715]) ([broadlink docs]) +- Fix reported temperatures in Maxcube ([@Bre77] - [#41259]) ([maxcube docs]) +- Improve yessssms test notify ([@sycx2] - [#41283]) ([yessssms docs]) +- Use reference strings in ambient_station ([@SNoof85] - [#41276]) ([ambient_station docs]) +- Don't use asynctest directly ([@balloob] - [#41306]) +- Rewrite sigfox unittest tests to pytest ([@frangiz] - [#41302]) ([sigfox docs]) +- Use reference strings in Metoffice ([@SNoof85] - [#41295]) ([metoffice docs]) +- Use reference strings in iqvia ([@SNoof85] - [#41289]) ([iqvia docs]) +- Add pin to base strings for config flows ([@springstan] - [#41202]) ([braviatv docs]) ([homematicip_cloud docs]) ([panasonic_viera docs]) ([risco docs]) ([vizio docs]) +- Rewrite statsd unittest tests to pytest style test functions ([@oxygen0211] - [#41223]) ([statsd docs]) +- Use of reference strings in Transmission config flow ([@Pigotka] - [#41215]) ([transmission docs]) +- Move isort, pylint, and pytest configs to pyproject.toml ([@scop] - [#40335]) +- Add reauth_successful to base strings ([@SNoof85] - [#41316]) +- Use reference strings in konnected ([@SNoof85] - [#41290]) ([konnected docs]) +- Rewrite zwave init tests to pytest style test function (phase 1) ([@RobBie1221] - [#41301]) ([zwave docs]) +- Log device info in Broadlink error messages ([@felipediel] - [#41307]) ([broadlink docs]) +- Add cancel_command service for OpenZWave ([@cgarwood] - [#41285]) ([ozw docs]) +- Use common strings for Panasonic Viera ([@TopdRob] - [#41268]) ([panasonic_viera docs]) +- Use of reference strings in Almond config flow ([@Pigotka] - [#41284]) ([almond docs]) +- Add OZW WS API support for locks ([@raman325] - [#41186]) ([ozw docs]) +- Rewrite pushbullet unittest tests to pytest style test function ([@arianahl] - [#41266]) ([pushbullet docs]) +- Fix Netatmo rain sensor naming ([@cgtobi] - [#41326]) ([netatmo docs]) +- Fix Netatmo wind angle ([@cgtobi] - [#41324]) ([netatmo docs]) +- Use reference strings in Tile ([@SNoof85] - [#41328]) ([tile docs]) +- Add Tasmota integration ([@emontnemery] - [#39624]) ([tasmota docs]) (new-integration) +- Rewrite uk_transport tests to use pytest style ([@ronanmu] - [#41168]) ([uk_transport docs]) +- Use name reference and fix already_configured string for GIOS integration ([@bieniu] - [#41323]) ([gios docs]) +- Improve switch template tests, remove common test helpers ([@frenck] - [#41322]) ([template docs]) +- Rewrite imap_email_content tests to use pytest ([@Edward-Knight] - [#41200]) ([imap_email_content docs]) +- Handle somfy error 404 during setup ([@tetienne] - [#41298]) ([somfy docs]) +- Use dict syntax ([@balloob] - [#41325]) +- Add Netatmo weather trend sensors ([@cgtobi] - [#41318]) ([netatmo docs]) +- Fetch timers separately for xiaomi vacuums ([@rytilahti] - [#41330]) ([xiaomi_miio docs]) +- Use reference strings in Synology_DSM ([@SNoof85] - [#41333]) ([synology_dsm docs]) +- Add battery state for devolo Home Control devices ([@Shutgun] - [#41329]) ([devolo_home_control docs]) +- Protect add/remove node services from invalid instance ID ([@cgarwood] - [#41334]) ([ozw docs]) +- Use name translation reference in AccuWeather config flow ([@bieniu] - [#41338]) ([accuweather docs]) +- Use reference strings in Smappee ([@SNoof85] - [#41337]) ([smappee docs]) +- Update axis to use common strings ([@davet2001] - [#41164]) ([axis docs]) +- Return attribute dict directly without temporary variable v2 ([@springstan] - [#41271]) +- Return empty dictionary at first for attributes ([@springstan] - [#41348]) +- add common strings ([@scheric] - [#41350]) ([arcam_fmj docs]) +- Use reference strings in upnp ([@SNoof85] - [#41327]) ([upnp docs]) +- Use reference strings in Upb ([@SNoof85] - [#41340]) ([upb docs]) +- Use reference strings in Vesync ([@SNoof85] - [#41341]) ([vesync docs]) +- Rewrite recorder unittest tests to pytest style test function ([@arianahl] - [#41264]) ([recorder docs]) +- Add ZHA Analog Input cluster for XBee ([@Shulyaka] - [#41311]) ([zha docs]) +- Bump hatasmota to 0.0.10, minor refactor of discovery ([@emontnemery] - [#41331]) ([tasmota docs]) +- Refactor deCONZ tests ([@Kane610] - [#41362]) ([deconz docs]) +- Add native Python types support to templates ([@frenck] - [#41227]) (breaking-change) +- Allow playing Spotify URLs with Sonos ([@amelchio] - [#41366]) ([sonos docs]) +- Bump tuyaha to 0.0.8 ([@PaulAnnekov] - [#41365]) ([tuya docs]) +- Rewrite panel_iframe unittest tests to pytest style tests ([@peleccom] - [#41368]) ([panel_iframe docs]) +- Bump python-openzwave-mqtt to 1.2.2 ([@cgarwood] - [#41357]) ([ozw docs]) +- Add already_configured_location to base strings for config flows ([@bieniu] - [#41335]) ([airly docs]) ([airvisual docs]) ([flunearyou docs]) ([openuv docs]) ([openweathermap docs]) +- Add update_alarm to sonos services.yaml ([@tkdrob] - [#41376]) ([sonos docs]) +- Support of NEW fan speed controller Leviton Decora ZW4SF-1BW ([@yura505] - [#41374]) ([zwave docs]) +- Add CONF_API_TOKEN to constants ([@ctalkington] - [#41379]) +- Use reference strings in Withings ([@SNoof85] - [#41345]) ([withings docs]) +- Add invalid_host to base strings for config flows ([@bieniu] - [#41381]) ([braviatv docs]) ([broadlink docs]) ([dunehd docs]) ([goalzero docs]) ([xiaomi_aqara docs]) +- Remove duplicate ATTR_USERNAME ([@MatejMecka] - [#41386]) ([slack docs]) +- Use reference strings in Smarthab ([@SNoof85] - [#41391]) ([smarthab docs]) +- Add Tasmota binary sensor ([@emontnemery] - [#41380]) ([tasmota docs]) (new-platform) +- Use common strings for Almond Config Flow ([@Spartan-II-117] - [#41097]) ([almond docs]) +- Use reference strings in Alarmdecoder ([@SNoof85] - [#41392]) ([alarmdecoder docs]) +- Enable MQTT discovery by default ([@emontnemery] - [#41361]) ([mqtt docs]) (breaking-change) +- Use common strings in Awair ([@davet2001] - [#41313]) ([awair docs]) +- Update script scaffold templates for config_flow_oauth2 ([@allenporter] - [#41181]) +- Use name translation reference in Airly config flow ([@bieniu] - [#41319]) ([airly docs]) +- Remove Netatmo unnecessary battery sensors ([@cgtobi] - [#41321]) ([netatmo docs]) (breaking-change) +- Make PR search link not show changes requested PRs ([@KTibow] - [#41278]) +- Use already_configured_location string in GIOS config flow ([@bieniu] - [#41384]) ([gios docs]) +- Reduce orm overhead by grouping object expiration ([@bdraco] - [#41394]) ([recorder docs]) +- Add common strings in Agent dvr config flow ([@scheric] - [#41279]) ([agent_dvr docs]) +- Baidu TTS: support more voices ([@jyz0501] - [#41393]) +- Bump ElkM1 lib dependency. ([@gwww] - [#41399]) ([elkm1 docs]) +- Improve performance of generating non-cryptographically secure uuids ([@bdraco] - [#41314]) +- Determine how to run listeners at setup time instead of execution time ([@bdraco] - [#41304]) +- Remove deprecated host & platform configuration for cast ([@emontnemery] - [#41402]) ([cast docs]) (breaking-change) +- Add MQTT integration discovery ([@emontnemery] - [#41332]) ([mqtt docs]) ([tasmota docs]) +- Prepare Plugwise integration for USB products ([@CoMPaTech] - [#41201]) ([plugwise docs]) +- Use common string names in ipp config flow ([@scheric] - [#41409]) ([ipp docs]) +- Add custom data type support into Modbus climate ([@vzahradnik] - [#32439]) ([modbus docs]) (breaking-change) +- Make async_step_discovery default for MQTT config flows ([@emontnemery] - [#41414]) +- Fix flapping pilight test ([@bdraco] - [#41447]) ([pilight docs]) +- Update nexia to use async_add_executor_job ([@bdraco] - [#41451]) ([nexia docs]) +- Fix group tests when run in parallel ([@bdraco] - [#41446]) ([group docs]) +- Remove useless try-except from Tasmota binary sensor ([@emontnemery] - [#41462]) ([tasmota docs]) +- Cache matching MQTT subscriptions ([@emontnemery] - [#41433]) ([mqtt docs]) +- Support matching multiple user ids in event trigger ([@OnFreund] - [#41036]) ([homeassistant docs]) +- Update roomba to use async_add_executor_job ([@bdraco] - [#41448]) ([roomba docs]) +- Update discovery to use async_add_executor_job ([@bdraco] - [#41453]) ([discovery docs]) +- Update config to use async_add_executor_job ([@bdraco] - [#41452]) ([config docs]) +- Update trend to use async_add_executor_job ([@bdraco] - [#41454]) ([trend docs]) +- Update fan to use async_add_executor_job ([@bdraco] - [#41457]) ([fan docs]) +- Update cover to use async_add_executor_job ([@bdraco] - [#41456]) ([cover docs]) +- Update lock to use async_add_executor_job ([@bdraco] - [#41458]) ([lock docs]) +- Update media_player to use async_add_executor_job ([@bdraco] - [#41459]) ([media_player docs]) +- Update filter to use async_add_executor_job ([@bdraco] - [#41455]) ([filter docs]) +- Update triggers to use HassJob ([@bdraco] - [#41450]) ([geo_location docs]) ([homeassistant docs]) ([litejet docs]) ([mqtt docs]) ([sun docs]) ([template docs]) ([webhook docs]) ([zone docs]) +- Poll state when Tasmota device becomes available ([@emontnemery] - [#41401]) ([tasmota docs]) +- Update tesla_powerwall to 0.3.3 ([@jrester] - [#41482]) ([powerwall docs]) +- Use common strings in Atag config flow ([@scheric] - [#41351]) ([atag docs]) +- Change modbus tests to use pytest.mark.parametrize ([@janiversen] - [#41486]) ([modbus docs]) +- Optimize devolo light devices ([@2Fake] - [#41053]) ([devolo_home_control docs]) +- Add active voltage sensors to Sense integration ([@kbickar] - [#41112]) ([emulated_kasa docs]) ([sense docs]) +- Use common strings in fritzbox config flow ([@scheric] - [#41407]) ([fritzbox docs]) +- Use common strings in tellduslive config flow ([@scheric] - [#41408]) ([tellduslive docs]) +- Add mute command to Bluesound integration ([@willholdoway] - [#41501]) ([bluesound docs]) +- Complete Huawei LTE type hints, make mypy check them ([@scop] - [#41503]) ([huawei_lte docs]) +- Add common strings in daikin config flow ([@fredrike] - [#41419]) ([daikin docs]) +- Return attribute dict directly without temporary variable v3 ([@springstan] - [#41502]) ([fibaro docs]) ([homematic docs]) ([lutron_caseta docs]) +- Fix bool registers in modbus integration ([@janiversen] - [#41506]) ([modbus docs]) +- Update device_tracker to use async_add_executor_job ([@bdraco] - [#41515]) ([device_tracker docs]) +- Update notify to use async_add_executor_job ([@bdraco] - [#41516]) ([notify docs]) +- Update history tests to use async_add_executor_job ([@bdraco] - [#41526]) ([history docs]) +- Use async_add_hass_job for debouncer ([@bdraco] - [#41449]) +- Predetermine listener type for script change listeners ([@bdraco] - [#41510]) +- Update kodi device trigger to use async_run_hass_job ([@bdraco] - [#41531]) ([kodi docs]) +- Update arcam_fmj device trigger to use async_run_hass_job ([@bdraco] - [#41530]) ([arcam_fmj docs]) +- Update http to use async_add_executor_job ([@bdraco] - [#41529]) ([http docs]) +- Update wake_on_lan to use async_add_executor_job ([@bdraco] - [#41528]) ([wake_on_lan docs]) +- Set created field when creating db events and states ([@bdraco] - [#41523]) ([recorder docs]) +- Convert last remaining async_add_job in light to async_add_executor_job ([@bdraco] - [#41518]) ([light docs]) +- Fully convert async_track_time_interval to use HassJob ([@bdraco] - [#41513]) +- Update discovery to use HassJob ([@bdraco] - [#41511]) +- Allow custom_serializer to recognize cv.string and cv.boolean to make config schema more reusable ([@raman325] - [#41532]) +- Fix plant doing IO in the event loop. ([@bdraco] - [#41527]) ([plant docs]) +- Fix string parameter processing in parse_time_expression (#41468) ([@4ybaka] - [#41469]) +- Fix date parsing template int in history stats ([@frenck] - [#41476]) ([history_stats docs]) +- Update translate develop to substitute references ([@tefinger] - [#41445]) +- Publish state changes to Zabbix ([@rusitschka] - [#36659]) ([zabbix docs]) +- Use common strings in esphome config flow ([@definitio] - [#41547]) ([esphome docs]) +- Remove duplicated attribute request from ZHA ([@abmantis] - [#41442]) ([zha docs]) +- Remove async_add_job from system_log tests ([@bdraco] - [#41551]) ([system_log docs]) +- Convert final async_add_job to async_add_executor_job in logbook tests ([@bdraco] - [#41552]) ([logbook docs]) +- Update python_script tests to use async_add_executor_job ([@bdraco] - [#41553]) ([python_script docs]) +- Update Onewire SysBus integration to use a 3rd party library ([@epenet] - [#40943]) ([onewire docs]) +- Upgrade codecov to 2.1.10 ([@frenck] - [#41562]) +- Allow users to update their iCloud password when auth fails ([@raman325] - [#39138]) ([icloud docs]) +- Clean up some of the ozw tests ([@firstof9] - [#41578]) ([ozw docs]) +- Add Ruckus Unleashed integration ([@gabe565] - [#40002]) ([ruckus_unleashed docs]) (new-integration) +- Fix deCONZ IKEA TRÅDFRI device name spelling ([@scop] - [#41574]) ([deconz docs]) +- Rewrite mhz19 unittest tests to pytest style tests ([@peleccom] - [#41441]) ([mhz19 docs]) +- Remove redundant flake8 max-line-length ([@scop] - [#41596]) +- Add device_class to Tibber sensor ([@Danielhiversen] - [#41572]) ([tibber docs]) +- add strings ([@scheric] - [#41599]) ([ruckus_unleashed docs]) +- Update Withings integration (add sleeps data) ([@DiederikvandenB] - [#41504]) ([withings docs]) +- Remove illuminance sensor for Xiaomi EU gateway ([@javicalle] - [#41580]) ([xiaomi_miio docs]) +- Fix async functions accidentally marked as callbacks ([@bdraco] - [#41607]) ([atag docs]) ([cloud docs]) ([mqtt docs]) ([netatmo docs]) ([zha docs]) +- Update icmplib to 1.2.2 ([@bdraco] - [#41608]) ([ping docs]) +- Remove icon for Tibber sensor ([@Danielhiversen] - [#41604]) ([tibber docs]) +- Add device info to met ([@balloob] - [#41611]) ([met docs]) +- Add common strings in broadlink config flow ([@chrillebile] - [#41602]) ([broadlink docs]) +- Add rx mode to homematic.put_paramset service ([@rusitschka] - [#40065]) ([homematic docs]) +- Add missing common strings ([@chrillebile] - [#41621]) ([netatmo docs]) +- Bump rachiopy to 1.0.3 and update methods to handle changes ([@brg468] - [#41398]) ([rachio docs]) +- Use common strings in Météo-France ([@scheric] - [#41610]) ([meteo_france docs]) +- Use common strings in iOS config flow ([@scheric] - [#41644]) ([ios docs]) +- Use common strings in profiler config flow ([@chrillebile] - [#41642]) ([profiler docs]) +- Use common strings in Nest config flow ([@chrillebile] - [#41597]) ([nest docs]) +- Use common strings in twentemilieu config flow ([@scheric] - [#41647]) ([twentemilieu docs]) +- Use common strings in risco config flow ([@GauthamVarmaK] - [#41656]) ([risco docs]) +- Use common strings in panasonic config flow ([@chrillebile] - [#41641]) ([panasonic_viera docs]) +- Use consistent "percent" naming in systemmonitor ([@spacegaier] - [#41411]) ([systemmonitor docs]) +- Use common strings in homematicip_cloud config flow ([@GauthamVarmaK] - [#41658]) +- Use common strings in ps4 config flow ([@chrillebile] - [#41623]) ([ps4 docs]) +- Use common strings in logi_circle config flow ([@scheric] - [#41427]) ([logi_circle docs]) +- Use common strings for AirVisual ([@Spartan-II-117] - [#41632]) ([airvisual docs]) +- Bump brother to 0.1.18 ([@bieniu] - [#41056]) ([brother docs]) +- Update display categories in Alexa ([@ochlocracy] - [#41626]) ([alexa docs]) +- Reduce icmplib ping timeout to match ping binary behavior ([@bdraco] - [#41620]) ([ping docs]) +- Allow only one packet with no dts in stream init ([@uvjustin] - [#41129]) ([stream docs]) +- Adjust dts warning messages in stream ([@uvjustin] - [#41467]) ([stream docs]) +- Multiple Hue activate scene ([@fnurgel] - [#41353]) ([hue docs]) +- Prevent tplink missing devices and unavailable state ([@TheGardenMonkey] - [#39762]) ([tplink docs]) +- Add config validator helper positive_float ([@farmio] - [#41640]) +- Clean up speedtest ([@spacegaier] - [#41139]) ([speedtestdotnet docs]) +- Add Tasmota sensor ([@emontnemery] - [#41483]) ([tasmota docs]) (new-platform) +- Bump greeneye_monitor to 2.1 ([@drkp] - [#41692]) ([greeneye_monitor docs]) +- Bump hatasmota to 0.0.13 ([@emontnemery] - [#41705]) ([tasmota docs]) +- Add Advantage Air Integration ([@Bre77] - [#40159]) ([advantage_air docs]) (new-integration) +- Use separate line for return statement in hue_activate_scene ([@fnurgel] - [#41709]) ([hue docs]) +- Refactor Modbus switch to provide a base for other entities ([@vzahradnik] - [#33551]) ([modbus docs]) +- Update zigpy-znp to 0.2.2 ([@puddly] - [#41670]) ([zha docs]) +- Fix too agressive .gitignore ([@thomasloven] - [#41677]) +- Cleanup unused loggers (components A-M) ([@spacegaier] - [#41600]) +- Rewrite Wake on LAN Tests to use pytest style ([@ntilley905] - [#41173]) ([wake_on_lan docs]) +- Improve mobile app template handling ([@balloob] - [#41703]) ([mobile_app docs]) +- Rewrite tests for Template Binary Sensor ([@sycx2] - [#41098]) ([template docs]) +- Merge Tasmota sensor device class and icon maps ([@emontnemery] - [#41706]) ([tasmota docs]) +- Add support for SimpliSafe sensors ([@nzapponi] - [#41080]) ([simplisafe docs]) (new-platform) +- Add common strings in plaato config flow ([@chrillebile] - [#41622]) ([plaato docs]) +- Use common strings in Avri config flow ([@scheric] - [#41717]) ([avri docs]) +- Add media_player.repeat_set service ([@amelchio] - [#41435]) ([demo docs]) ([media_player docs]) +- Add Sonos support for media_player.repeat_set service ([@amelchio] - [#41735]) ([sonos docs]) +- Use native utc timezone for utcnow() ([@bdraco] - [#41727]) +- Upgrade mypy to 0.790 ([@scop] - [#41595]) +- Fix climate platform in devolo Home Control ([@Shutgun] - [#40746]) ([devolo_home_control docs]) +- Use common strings in Griddy config flow ([@scheric] - [#41716]) ([griddy docs]) +- Add elkm1 bypass and trigger services ([@gwww] - [#41584]) ([elkm1 docs]) (breaking-change) +- Add support for Elexa Guardian paired sensors ([@bachya] - [#37930]) ([guardian docs]) +- Bump pynello to 2.0.3 ([@pattyland] - [#41737]) ([nello docs]) ([nello docs]) +- Update pypoint to use async http requests ([@fredrike] - [#41546]) ([point docs]) +- Bump pygti to 0.9.2 ([@vigonotion] - [#41571]) ([hvv_departures docs]) +- Replace old python extension with new pylance in devcontainer ([@pvizeli] - [#41591]) +- Add notify platform to TTS ([@dgomes] - [#40028]) ([tts docs]) (new-platform) +- Pass context to on/off scripts ([@elupus] - [#40254]) ([lg_netcast docs]) ([philips_js docs]) ([wake_on_lan docs]) +- Bump pwmled to 1.5.3 ([@soldag] - [#41681]) ([rpi_gpio_pwm docs]) +- Add fan support to deCONZ ([@Kane610] - [#40806]) ([deconz docs]) (new-platform) +- Add device info to Panasonic Viera ([@joogps] - [#41028]) ([panasonic_viera docs]) +- Rewrite Facebook unit test to pytest style test function ([@tkacikdominik] - [#41671]) ([facebook docs]) +- Filter rfxtrx configure devices option flow on existing config entry ([@RobBie1221] - [#40975]) ([rfxtrx docs]) +- Add Palette to WLED Effect Service ([@timmo001] - [#41724]) ([wled docs]) +- Reduce ORM overhead when the old state was already written to the database ([@bdraco] - [#41736]) ([recorder docs]) +- Log exceptions in EntityPlatform.async_add_entities ([@emontnemery] - [#41730]) +- Add Xbox Integration ([@hunterjm] - [#41697]) ([xbox docs]) (new-integration) +- Add nested light group test ([@frenck] - [#41764]) ([group docs]) +- Upgrade sqlalchemy to 1.3.20 ([@frenck] - [#41765]) ([recorder docs]) ([sql docs]) +- Add Browse Media to Xbox ([@hunterjm] - [#41776]) ([xbox docs]) +- Bump hatasmota to 0.0.15 ([@emontnemery] - [#41781]) ([tasmota docs]) +- Improve deCONZ fan platform handling unsupported commands ([@Kane610] - [#41779]) ([deconz docs]) +- Rewrite homematic unittest tests to pytest style test functions ([@thaohtp] - [#41766]) ([homematic docs]) +- Update pyTibber to 0.15.7 ([@Danielhiversen] - [#41722]) ([tibber docs]) +- Update devolo-home-control-api to 0.15.1 ([@Shutgun] - [#41783]) ([devolo_home_control docs]) +- Update to zeroconf 0.28.6 to accomodate devices that are not strictly name compliant ([@bdraco] - [#41784]) ([zeroconf docs]) +- Update sun listeners to use HassJob ([@bdraco] - [#41695]) +- Rewrite configurator tests to pytest ([@dvermd] - [#41731]) ([configurator docs]) +- Update mjpeg camera to use async_add_executor_job ([@bdraco] - [#41791]) ([mjpeg docs]) +- Convert remaining async_add_job to async_add_executor_job in media_player ([@bdraco] - [#41790]) ([media_player docs]) +- Update generic camera to use async_add_executor_job ([@bdraco] - [#41787]) ([generic docs]) +- Address cleanup commentary for Guardian Paired Sensors ([@bachya] - [#41785]) ([guardian docs]) +- Improve deCONZ climate platform handling unsupported commands ([@Kane610] - [#41780]) ([deconz docs]) +- Update uptime tests to pytest style ([@mrwacky42] - [#41077]) ([uptime docs]) +- Update html5 to use async_add_executor_job ([@bdraco] - [#41788]) ([html5 docs]) +- Update cast to use async_add_executor_job ([@bdraco] - [#41794]) ([cast docs]) +- Remove unneeded context switch in dyson ([@bdraco] - [#41793]) ([dyson docs]) +- Fix canary test doing IO and failing when the cloud is offline ([@bdraco] - [#41799]) ([canary docs]) +- Update shopping_list to use async_add_executor_job ([@bdraco] - [#41795]) ([shopping_list docs]) +- Add Remote entity to Xbox Integration ([@hunterjm] - [#41809]) ([xbox docs]) (new-platform) +- Use canary fixture for options flow test ([@ctalkington] - [#41817]) ([canary docs]) +- Update caldav to use async_add_executor_job ([@bdraco] - [#41808]) ([caldav docs]) +- Switch legacy async_add_job to async_add_executor_job in wemo ([@bdraco] - [#41807]) ([wemo docs]) +- Update image_processing to use async_add_executor_job ([@bdraco] - [#41810]) ([image_processing docs]) +- Add test coverage for onewire ([@epenet] - [#40786]) ([onewire docs]) +- Only validate entity id if it did not exist on state change ([@bdraco] - [#41820]) +- Convert fan tests to pytest style ([@mrwacky42] - [#41631]) ([fan docs]) +- Add gree climate integration ([@cmroche] - [#37498]) ([gree docs]) (new-integration) +- Bump omnilogic to 0.4.2 ([@djtimca] - [#41821]) ([omnilogic docs]) +- Re-add forced update in Panasonic Viera ([@joogps] - [#41804]) ([panasonic_viera docs]) +- Discover Plex clients using GDM ([@jjlawren] - [#39053]) ([plex docs]) +- Add Tasmota light ([@emontnemery] - [#41485]) ([tasmota docs]) (new-platform) +- Don't override proper data for UniFi Controller entry in device registry ([@Kane610] - [#41834]) ([unifi docs]) +- Switch sabnzbd to use async_add_executor_job ([@bdraco] - [#41835]) ([sabnzbd docs]) +- Add Media Source to Xbox Integration ([@hunterjm] - [#41833]) ([media_source docs]) ([xbox docs]) +- Use common strings in Tibber config flow ([@scheric] - [#41837]) ([tibber docs]) +- Use common strings in ovo_energy config flow ([@scheric] - [#41838]) ([ovo_energy docs]) +- Add Huawei LTE battery sensor ([@scop] - [#41668]) ([huawei_lte docs]) +- Mark Huawei LTE sensors with None value as unavailable ([@scop] - [#41667]) ([huawei_lte docs]) +- Use common strings in withings config flow ([@scheric] - [#41770]) ([withings docs]) +- Remove unnecessary check in Plex client scanning ([@jjlawren] - [#41844]) ([plex docs]) +- Update mqtt to use HassJob ([@bdraco] - [#41796]) ([mqtt docs]) +- Add influxdb config option 'measurement_attr' ([@markbergsma] - [#36020]) ([influxdb docs]) +- Revert device trigger modelid for Trådfri remotes for deCONZ ([@Kane610] - [#41843]) ([deconz docs]) +- Tibber, change time for fetching prices ([@Danielhiversen] - [#41840]) ([tibber docs]) +- Use common srings in xiaomi-miio ([@briglx] - [#41864]) ([xiaomi_miio docs]) +- Add basic device information for UniFi clients device registry entries ([@Kane610] - [#41839]) ([unifi docs]) +- Fix flaky ONVIF test ([@balloob] - [#41848]) ([onvif docs]) +- Remove max and min temperature sensors ([@cgtobi] - [#41859]) ([netatmo docs]) +- Fix re-authentication in AirVisual ([@bachya] - [#41801]) ([airvisual docs]) +- Cleanup the min-max sensor ([@balloob] - [#41851]) ([min_max docs]) +- Forward client headers for proxied stream responses ([@ludeeus] - [#41663]) ([hassio docs]) +- Improve template ratelimit performance ([@bdraco] - [#41741]) +- Add Cover Platform to Advantage Air ([@Bre77] - [#41757]) ([advantage_air docs]) (new-platform) +- Ruckus Unleashed Requested Changes ([@gabe565] - [#41824]) ([ruckus_unleashed docs]) +- Fix machine release builds ([@pvizeli] - [#41879]) +- Allow HomeKit to be configured in include mode from the UI ([@bdraco] - [#41662]) ([homekit docs]) +- Add media browser capability to volumio ([@OnFreund] - [#40785]) ([volumio docs]) +- Update remaining i2c sensors to use async_add_executor_job ([@bdraco] - [#41860]) ([bh1750 docs]) ([bme280 docs]) ([bme680 docs]) ([htu21d docs]) +- Update kira to use async_add_executor_job ([@bdraco] - [#41847]) ([kira docs]) +- Update mysensors to use async_add_executor_job ([@bdraco] - [#41849]) ([mysensors docs]) +- Bump actions/setup-python from v2.1.3 to v2.1.4 (dependabot - [#41873]) +- Fix Plugwise hvac action and mode ([@CoMPaTech] - [#41550]) ([plugwise docs]) +- Remove duplicated options handling in SimpliSafe ([@bachya] - [#41806]) ([simplisafe docs]) +- Support HomeKit accessory mode ([@bdraco] - [#41679]) ([homekit docs]) +- Add PRESSURE_CBAR to onewire constants ([@epenet] - [#41826]) ([onewire docs]) +- Properly disconnect from SimpliSafe websocket on HASS shutdown ([@bachya] - [#41894]) ([simplisafe docs]) +- Bump hatasmota to 0.0.16 ([@emontnemery] - [#41902]) ([tasmota docs]) +- Deprecate YAML config for SimpliSafe (0.119 removal) ([@bachya] - [#41896]) ([simplisafe docs]) (breaking-change) +- Update zhong_hong to use async_add_executor_job ([@bdraco] - [#41846]) ([zhong_hong docs]) +- Add persistent notification for reauth config flows ([@raman325] - [#41811]) +- Minor code improvement for KEF ([@basnijholt] - [#41885]) ([kef docs]) +- Convert UpCloud to config flow, improve error handling ([@scop] - [#37941]) ([upcloud docs]) (breaking-change) +- Add common string for reauth title ([@bachya] - [#41865]) ([icloud docs]) ([simplisafe docs]) ([sonarr docs]) ([spotify docs]) ([withings docs]) +- Rewrite scene unittest tests to pytest style test function ([@arianahl] - [#41172]) ([scene docs]) +- Add supervisor set add-on options helper ([@MartinHjelmare] - [#41651]) ([hassio docs]) +- Fix unhandled exception with SimpliSafe socket disconnection ([@bachya] - [#41917]) ([simplisafe docs]) +- Add ElkM1 time and counter services and keypress event ([@gwww] - [#41867]) ([elkm1 docs]) +- Add sensors to Xbox integration ([@hunterjm] - [#41868]) ([xbox docs]) (new-platform) +- Remove sonarr reauth persistent notification ([@ctalkington] - [#41911]) ([sonarr docs]) +- Fix incorrect SimpliSafe websocket disconnect listener ([@bachya] - [#41923]) ([simplisafe docs]) +- Bump pyairvisual to 5.0.3 ([@bachya] - [#41921]) ([airvisual docs]) +- Code Quality improvements for Advantage Air integration ([@Bre77] - [#41861]) ([advantage_air docs]) +- Add Tasmota device trigger ([@emontnemery] - [#41590]) ([tasmota docs]) +- Catch when old entity can't be serialized in Google Report State ([@balloob] - [#41916]) ([google_assistant docs]) +- Catch it when files are ignored by coverage but shouldn't ([@balloob] - [#41876]) +- Don't try and store exceptions when the key is missing ([@palfrey] - [#41803]) +- Fix hvv_departures request time ([@vigonotion] - [#40195]) ([hvv_departures docs]) +- Add automatic keep-alive for IKEA Trådfri ([@tbarnekov] - [#41778]) ([tradfri docs]) +- Fix upcloud coverage that is breaking CI ([@balloob] - [#41934]) +- Remove setup platform functions from UniFi since they are no longer needed ([@Kane610] - [#41935]) ([unifi docs]) +- Update featured integrations screenshot in README ([@gerard33] - [#41085]) +- Add game_icon to steam_online ([@K-4U] - [#39947]) ([steam_online docs]) +- Rewrite wsdot unittest tests to pytest style test functions ([@bebleo] - [#41638]) ([wsdot docs]) +- Rewrite fail2ban unittest tests to pytest style test functions ([@CurrentThread] - [#41606]) ([fail2ban docs]) +- Rewrite tod unittest tests to pytest style test functions ([@CurrentThread] - [#41603]) ([tod docs]) +- Removed unneccessary dependency on adafruit-blinka ([@belidzs] - [#41768]) ([mcp23017 docs]) +- Add deCONZ IKEA TRÅDFRI wireless dimmer fast rotate events ([@scop] - [#41573]) ([deconz docs]) +- Update homekit camera resolutions for tvOS 14 ([@bdraco] - [#41914]) ([homekit docs]) +- Add device actions to water_heater ([@Liopun] - [#41417]) ([water_heater docs]) +- Rewrite shell_command unittest tests to pytest style test function ([@arianahl] - [#41274]) ([shell_command docs]) +- Update litejet and zwave tests to use async_add_executor_job ([@bdraco] - [#41927]) ([litejet docs]) ([zwave docs]) +- Rewrite bayesian unittest tests to pytest style test functions. ([@thaohtp] - [#41740]) ([bayesian docs]) +- Rewrite proximity tests to be pytest functions ([@arianahl] - [#41711]) ([proximity docs]) +- Update google_translate to use async_add_executor_job ([@bdraco] - [#41925]) ([google_translate docs]) +- Use common strings in ovo energy config flow ([@scheric] - [#41940]) ([ovo_energy docs]) +- Rewrite folder unittest tests to pytest style test functions ([@johanhammar] - [#41672]) ([folder docs]) +- Improve template test lock ([@sycx2] - [#41195]) ([template docs]) +- Update telegram_bot to use async_add_executor_job ([@bdraco] - [#41924]) ([telegram_bot docs]) +- Rewrite file unittest tests to pytest style test functions ([@CurrentThread] - [#41616]) ([file docs]) +- Update nest to use async_add_executor_job ([@bdraco] - [#41926]) ([nest docs]) +- Rewrite mold_indicator unittest tests to pytest style test functions ([@CurrentThread] - [#41598]) ([mold_indicator docs]) +- Bump cloud to 0.37.1 ([@balloob] - [#41930]) ([cloud docs]) +- Rewrite APNS tests to use pytest ([@Edward-Knight] - [#41684]) ([apns docs]) +- Remove deprecated YAML config from sonarr ([@ctalkington] - [#41904]) ([sonarr docs]) (breaking-change) +- Use common strings in Mill config flow ([@scheric] - [#41836]) ([mill docs]) +- Add missing Extended GTFS Route Types ([@makuser] - [#40297]) ([gtfs docs]) +- Rewrite smtp Unittest Tests To Pytest Style ([@punitaojha] - [#41720]) ([smtp docs]) +- Revert partial changes to deCONZ integration from earlier PR ([@Kane610] - [#41943]) ([deconz docs]) +- Remove unneeded async_add_job from homematic ([@bdraco] - [#41855]) ([homematic docs]) +- Fix InfluxDB v2 API with write precision None ([@RobBie1221] - [#41937]) ([influxdb docs]) +- No update before adding entity in deCONZ ([@Kane610] - [#41948]) ([deconz docs]) +- Properly unload SimpliSafe websocket listener ([@bachya] - [#41952]) ([simplisafe docs]) +- Fix timestamp overflow error in stream ([@uvjustin] - [#41951]) ([stream docs]) +- Add Bancs de Brouillard in fog condition ([@ioull] - [#41947]) ([meteo_france docs]) +- Remove update on add signalling in Axis integration ([@Kane610] - [#41956]) ([axis docs]) +- Remove deprecated UniFi yaml configuration support ([@Kane610] - [#41954]) ([unifi docs]) +- Clean up SimpliSafe device info and sensor creation ([@bachya] - [#41920]) ([simplisafe docs]) +- Add Binary Sensor Platform to Advantage Air ([@Bre77] - [#41871]) ([advantage_air docs]) (new-platform) +- Fix media source for Xbox integration ([@hunterjm] - [#41959]) ([xbox docs]) +- Wait Synology NAS boot before configuring ([@Quentame] - [#41829]) ([synology_dsm docs]) +- Add device_class to Panasonic Viera media player entity ([@joogps] - [#41966]) ([panasonic_viera docs]) +- Fix typo in comment in demo integration ([@kukulich] - [#41955]) ([demo docs]) +- Add arming state to template alarm control panel ([@kukulich] - [#41964]) ([template docs]) +- Deprecate YAML config for RainMachine (0.119 removal) ([@bachya] - [#41971]) ([rainmachine docs]) (breaking-change) +- Use common strings in Azure DevOps config flow ([@ronal2do] - [#41974]) ([azure_devops docs]) +- Fix schema for set_zigbee_cluster_attribute service ([@Adminiuga] - [#41850]) ([zha docs]) +- Use skip_configuration flag to skip requests in ZHA ([@abmantis] - [#41554]) ([zha docs]) +- Convert rest sensors to async using httpx ([@bdraco] - [#41973]) ([rest docs]) +- Cleanup unused loggers (components N-Z + tests) ([@spacegaier] - [#41982]) +- Decouple RestData from rest.sensor ([@bdraco] - [#41980]) ([pvoutput docs]) ([rest docs]) ([scrape docs]) +- Fix Sonos shuffle/repeat state with Spotify Connect ([@amelchio] - [#41939]) ([media_player docs]) ([sonos docs]) +- Fix Tasmota stale docstring + print level ([@emontnemery] - [#41992]) ([tasmota docs]) +- Use common strings in emulated roku ([@GauthamVarmaK] - [#41745]) ([emulated_roku docs]) +- Use common strings in denonavr integration ([@GauthamVarmaK] - [#41746]) ([denonavr docs]) +- Remove BOM integration because it uses webscraping ([@balloob] - [#41941]) +- Bump oemthermostat to 1.1.1 ([@Cadair] - [#41998]) ([oem docs]) +- Use common string in GeoNet NZ Volcano ([@ronal2do] - [#41981]) ([geonetnz_volcano docs]) +- Prevent doorbird from creating many executor jobs ([@bdraco] - [#41985]) ([doorbird docs]) +- Prevent ios sensor updates from running in the executor ([@bdraco] - [#41986]) +- Migrate IQVIA to DataUpdateCoordinator ([@bachya] - [#41970]) ([iqvia docs]) +- Improve imports in deCONZ tests ([@Kane610] - [#41976]) ([deconz docs]) +- Bump pychromecast to 7.5.1 ([@emontnemery] - [#41991]) ([cast docs]) +- Add device classes to battery, illuminance and temperature miflora sensor ([@marecabo] - [#41975]) ([miflora docs]) +- Add Sensor Platform to Advantage Air ([@Bre77] - [#41870]) ([advantage_air docs]) (new-platform) +- Bump pyEmby to 1.7 ([@mezz64] - [#41984]) ([emby docs]) +- Improve device registry for host and deCONZ service ([@Kane610] - [#41786]) ([deconz docs]) +- Parse html in the executor for scrape sensors ([@bdraco] - [#41987]) ([scrape docs]) +- Move SimpliSafe REST API to DataUpdateCoordinator ([@bachya] - [#41919]) ([simplisafe docs]) +- Add low battery sensor for SimpliSafe locks ([@bachya] - [#42010]) ([simplisafe docs]) +- Bump hatasmota to 0.0.18 ([@emontnemery] - [#42000]) ([tasmota docs]) +- Bump homeconnect to 0.6.3 ([@DavidMStraub] - [#42022]) ([home_connect docs]) +- Remove unused strings in deCONZ config flow ([@ronal2do] - [#41978]) ([deconz docs]) +- Improve RemoteEntity class ([@felipediel] - [#40605]) ([remote docs]) +- Upgrade PyISY to v2.1.0, add support for variable precision ([@shbatm] - [#42043]) ([isy994 docs]) (breaking-change) +- Fix incorrect initial state with SimpliSafe locks ([@bachya] - [#42039]) ([simplisafe docs]) +- Add Switch platform to Advantage Air ([@Bre77] - [#41995]) ([advantage_air docs]) (new-platform) +- Use common strings in xiaomi_aqara ([@briglx] - [#41866]) ([xiaomi_aqara docs]) +- Improve ISY994 NodeServer sorting and format sensor display values ([@shbatm] - [#42050]) ([isy994 docs]) (breaking-change) +- Reduce ssdp context switches into the executor ([@bdraco] - [#42045]) ([ssdp docs]) +- Convert flume to use DataUpdateCoordinator ([@bdraco] - [#42017]) ([flume docs]) +- Convert nuheat to use DataUpdateCoordinator ([@bdraco] - [#42034]) ([nuheat docs]) +- Use common strings in sharkiq config flow ([@scheric] - [#41773]) ([sharkiq docs]) +- Replace invalid credentials with common string invalid_auth ([@ronal2do] - [#41997]) ([life360 docs]) ([simplisafe docs]) +- Use common strings in ambiclimate config flow ([@scheric] - [#41772]) ([ambiclimate docs]) +- Set keyword arguments in DemoLight ([@basnijholt] - [#42040]) ([demo docs]) +- Disable less popular entities in devolo Home Control ([@Shutgun] - [#41945]) ([devolo_home_control docs]) +- Add support for Bond fireplaces with integrated lights ([@prystupa] - [#41255]) ([bond docs]) +- Add tests for singleton decorator ([@balloob] - [#42055]) +- Remove double timeout from gogogate2 ([@bdraco] - [#42052]) ([gogogate2 docs]) +- ElkM1 fix auto-configure. ([@gwww] - [#42064]) ([elkm1 docs]) (breaking-change) +- Update ONVIF to Zeep 4.0/httpx ([@hunterjm] - [#42020]) ([onvif docs]) +- Do not guess app state in Xbox integration ([@hunterjm] - [#42067]) ([xbox docs]) +- Update stream integration for Python 3.9 which removed isAlive from threading in favor of is_alive ([@ColinRobbins] - [#42051]) ([stream docs]) +- Add entity ID to time trigger ([@balloob] - [#41933]) ([homeassistant docs]) +- Increase coverage and optimize history skip_initial_state ([@bdraco] - [#42014]) ([history docs]) +- Sort Kodi BrowseMedia children TV Shows and Movies ([@casenjo] - [#41377]) ([media_player docs]) +- Suppress domain and all listeners during template rate limit ([@bdraco] - [#42005]) +- Reduce domain states rate limit to 1 per second ([@bdraco] - [#42004]) (breaking-change) +- Add httpx as a core dep ([@balloob] - [#42071]) ([rest docs]) +- Implement time tracking in templates ([@bdraco] - [#41147]) (breaking-change) +- Rewrite logentries unittest tests to pytest style test functions ([@thaohtp] - [#41852]) ([logentries docs]) +- Rewrite datadog tests to pytest ([@dvermd] - [#42059]) ([datadog docs]) +- Geo rss test style ([@oxygen0211] - [#42038]) ([geo_rss_events docs]) +- Migrated coinmarketcap tests to utilise pytests instead of unittests ([@GenericStudent] - [#42013]) ([coinmarketcap docs]) +- Rewrite efergy unittest tests to pytest style test functions. ([@thaohtp] - [#41769]) ([efergy docs]) +- Rewrite filesize unittest tests to pytest style test functions ([@CurrentThread] - [#41421]) ([filesize docs]) +- Rewrite time_date unittest tests to pytest style test functions ([@sebasrp] - [#41149]) ([time_date docs]) +- Rewrite openhardwaremonitor tests to pytest style test functions ([@RobBie1221] - [#41157]) ([openhardwaremonitor docs]) +- Rewrite nsw_fuel_station tests to pytest style ([@ronanmu] - [#41171]) ([nsw_fuel_station docs]) +- Fix event test ([@balloob] - [#42078]) +- Don't swallow all errors when checking for config validator platform ([@balloob] - [#42058]) +- Bump codecov/codecov-action from v1.0.13 to v1.0.14 (dependabot - [#42070]) +- Bump androidtv to 0.0.51 (add support for Google TV devices) ([@JeffLIrion] - [#42047]) ([androidtv docs]) +- Deprecate OWFS/FUSE implementation in onewire integration ([@epenet] - [#42041]) ([onewire docs]) (breaking-change) +- Fix onvif sensor detection and onvif stop service call ([@Rihan9] - [#41949]) ([onvif docs]) +- Axis lib migrates to httpx ([@Kane610] - [#42054]) ([axis docs]) +- Update pymyq to 2.0.8 ([@ehendrix23] - [#42088]) ([myq docs]) +- Add support for Tasmota status sensor ([@emontnemery] - [#41782]) ([tasmota docs]) +- Do not allow coroutines to be passed to HassJob ([@balloob] - [#42073]) +- Rewrite alert test to pytest ([@peleccom] - [#41102]) ([alert docs]) +- Rewrite remote unittest tests to pytest style test functions and remove legacy test helpers ([@CurrentThread] - [#41715]) ([demo docs]) ([remote docs]) +- Rewrite demo unittest tests to pytest style test functions ([@CurrentThread] - [#41845]) ([demo docs]) +- Move sleepiq tests to pytest style functions ([@dmonego] - [#42018]) ([sleepiq docs]) +- Allow Cast to play Plex media ([@jjlawren] - [#41869]) ([cast docs]) +- Bump lightwave to 0.19 ([@ColinRobbins] - [#42033]) ([lightwave docs]) +- Add browse media support to squeezebox integration ([@rajlaud] - [#40642]) ([squeezebox docs]) +- Adapt Axis integration to async HTTPx calls ([@Kane610] - [#42095]) ([axis docs]) +- Set force_update property for DSMR integration ([@wouterbaake] - [#42086]) ([dsmr docs]) +- Set should_poll property for DSMR integration ([@RobBie1221] - [#42108]) ([dsmr docs]) +- Add light group icon ([@yuvalabou] - [#42091]) ([group docs]) +- rewrite mqtt unittest tests to pytest style ([@tim-werner] - [#42122]) ([mqtt docs]) +- Remove logging from state in flume ([@bdraco] - [#42126]) ([flume docs]) +- Add rachio service to start multiple zones ([@brg468] - [#42092]) ([rachio docs]) +- Update nuheat exception handling ([@bdraco] - [#42127]) ([nuheat docs]) +- Improve Advantage Air integration to Platinum quality ([@Bre77] - [#41996]) ([advantage_air docs]) +- Add attribute for camera light state ([@cgtobi] - [#40575]) ([netatmo docs]) +- Update mqtt_eventstream tests to pytest style functions ([@dmonego] - [#42119]) ([mqtt_eventstream docs]) +- Bump androidtv to 0.0.52 ([@JeffLIrion] - [#42155]) ([androidtv docs]) +- Update Nest integration to support Google Nest Device Access (new API) ([@allenporter] - [#41689]) ([nest docs]) +- Rewrite zwave init tests to pytest style test function (phase 2) ([@RobBie1221] - [#41431]) ([zwave docs]) +- Improve handling of ignored entries ([@balloob] - [#42148]) ([hue docs]) ([progettihwsw docs]) ([tradfri docs]) +- Use the beautiful ambient light icon ([@dermotduffy] - [#42153]) ([hyperion docs]) +- Upgrade sentry-sdk to 0.19.1 ([@frenck] - [#42132]) ([sentry docs]) +- Handle Fritz exception and log warning ([@JPHutchins] - [#42145]) ([fritz docs]) ([open_energy_view docs]) +- Fix pico tts errors ([@KevinCathcart] - [#41619]) ([tts docs]) +- Add async_setup_entry to calendar platform ([@Olen] - [#42075]) ([calendar docs]) +- Bump aioshelly library to 0.4.0 ([@bieniu] - [#41905]) ([shelly docs]) +- Use async_load_platform in test_discover_notify unittest ([@CurrentThread] - [#42142]) ([demo docs]) +- Clean up filesize unittest test file in test tear down ([@CurrentThread] - [#42143]) ([filesize docs]) +- Fallback to mac in Shelly config flow title ([@OnFreund] - [#40783]) ([shelly docs]) +- Align MQTT light's default color temperature ([@emontnemery] - [#41842]) ([mqtt docs]) +- Add config flow for cloudflare ([@ctalkington] - [#41167]) ([cloudflare docs]) (breaking-change) +- Guard bad supported features for Google ([@balloob] - [#42163]) ([google_assistant docs]) +- Bump python-synology to 1.0.0 ([@Quentame] - [#42161]) ([synology_dsm docs]) +- Fix state overwrite race condition where two platforms request the same entity_id ([@bdraco] - [#42151]) +- Add persistent_notification service to the notify platform ([@KevinCathcart] - [#40638]) ([notify docs]) ([persistent_notification docs]) (new-platform) +- Handle type error in hunterdouglas_powerview ([@jheddings] - [#42137]) ([hunterdouglas_powerview docs]) +- Bump Axis dependency ([@Kane610] - [#42168]) ([axis docs]) +- Add link to log view in persistent notification ([@spacegaier] - [#42060]) +- Update base image to 2020.10.0 ([@pvizeli] - [#42167]) +- Update frontend to 20201021.0 ([@bramkragten] - [#42173]) ([frontend docs]) +- Fix deCONZ device refresh service ([@Kane610] - [#42175]) ([deconz docs]) +- Add counter and timer to default_config ([@frenck] - [#42174]) ([default_config docs]) +- Remove coordinator success from SimpliSafe availability calculation ([@bachya] - [#42180]) ([simplisafe docs]) (beta fix) +- Updated frontend to 20201021.1 ([@bramkragten] - [#42185]) ([frontend docs]) (beta fix) +- Remove duplicated finalize_stream code in stream ([@uvjustin] - [#42171]) ([stream docs]) (beta fix) +- Avoid overloading the executor with service.yaml loads ([@bdraco] - [#42172]) (beta fix) +- Bump simplisafe-python to 9.5.1 ([@bachya] - [#42179]) ([simplisafe docs]) (beta fix) +- Fix precision of climate devices in devolo Home Control ([@Shutgun] - [#41832]) ([devolo_home_control docs]) (beta fix) +- Add Netatmo sensor enable default ([@cgtobi] - [#41928]) ([netatmo docs]) (beta fix) +- Support reloading Tasmota config entries ([@emontnemery] - [#42097]) ([tasmota docs]) (beta fix) +- Set Vizio unique ID for discovery flow early and abort if configured to prevent duplicate discovery flows ([@raman325] - [#42194]) ([vizio docs]) (beta fix) +- Fix bug for SimpliSafe 2 systems repeatedly saying "your settings have been synchronised" ([@nzapponi] - [#42197]) ([simplisafe docs]) (beta fix) +- Fix issue in python > 3.8.2 ([@teharris1] - [#42213]) ([insteon docs]) (beta fix) +- Bump bimmer-connected to 0.7.8 to fix login issue ([@rikroe] - [#42215]) ([bmw_connected_drive docs]) (beta fix) +- Refresh now() templates on second=0 ([@amelchio] - [#42225]) (beta fix) +- Ensure websocket event serializer cache is effective if subscription iden differs ([@bdraco] - [#42226]) ([websocket_api docs]) (beta fix) +- Update frontend to 20201021.2 ([@bramkragten] - [#42242]) ([frontend docs]) (beta fix) +- Update ZHA dependencies ([@Adminiuga] - [#42245]) ([zha docs]) (beta fix) +- Fix MaryTTS filename extensions ([@BrianWithAHat] - [#42228]) ([marytts docs]) (beta fix) +- Fix polling of color for ZHA lights not updating ([@TheJulianJES] - [#42248]) ([zha docs]) (beta fix) +- Fix is_on test for Tesla Charger switch ([@alandtse] - [#42251]) ([tesla docs]) (beta fix) +- Fix Tasmota relay acting as on/off light ([@emontnemery] - [#42259]) ([tasmota docs]) (beta fix) +- Ensure event listener integrations do the queue insert as a callback ([@bdraco] - [#42265]) ([influxdb docs]) ([watson_iot docs]) ([zabbix docs]) (beta fix) +- Only log xiaomi_miio update exceptions once ([@rytilahti] - [#41226]) ([xiaomi_miio docs]) (beta fix) +- Update nest integration with fixes from initial PR ([@allenporter] - [#42250]) ([nest docs]) (beta fix) +- Fix Tesla attribute refreshing ([@alandtse] - [#42257]) ([tesla docs]) (beta fix) +- Fix AVError and allow more missing DTS packets in stream ([@uvjustin] - [#42277]) ([stream docs]) (beta fix) +- Fix Tasmota CT light ([@emontnemery] - [#42287]) ([tasmota docs]) (beta fix) +- Fix reconfiguring of Tasmota lights ([@emontnemery] - [#42288]) ([tasmota docs]) (beta fix) +- Upgrade spotipy to 2.16.1 ([@frenck] - [#42293]) ([spotify docs]) (beta fix) +- Fix for Fibaro HC3 support, climate temp sensor and target temp ([@airthusiast] - [#42300]) ([fibaro docs]) (beta fix) +- Fix iCloud matching accounts ([@Mic92] - [#42303]) ([icloud docs]) (beta fix) +- Bump pyhik to 0.2.8 ([@mezz64] - [#42322]) ([hikvision docs]) (beta fix) +- Fix parameter issue in LCN cover close/stop ([@alengwenus] - [#42342]) ([lcn docs]) (beta fix) +- Ensure config entry platforms are excluded from reload ([@bdraco] - [#42367]) (beta fix) +- Change AfterShip polling interval from 5m to 15m ([@dudyn5ky1] - [#42360]) ([aftership docs]) (beta fix) +- Store original result on template results ([@balloob] - [#42391]) (beta fix) +- Bump hatasmota to 0.0.23 ([@emontnemery] - [#42394]) ([tasmota docs]) (beta fix) +- Bump libhdate depndency ([@tsvi] - [#42396]) ([jewish_calendar docs]) (beta fix) +- Fix CI ([@balloob] - [#42397]) (beta fix) +- Fix MQTT publish from a script with templates ([@balloob] - [#42398]) ([mqtt docs]) (beta fix) +- Allow skip parsing template result ([@frenck] - [#42401]) ([api docs]) ([shell_command docs]) ([template docs]) (beta fix) +- Catch ValueError in google_translate ([@balloob] - [#42405]) ([google_translate docs]) (beta fix) +- Do not set up DSM when setting up Nest legacy ([@balloob] - [#42406]) ([nest docs]) (beta fix) +- Skip template result parsing in several places ([@frenck] - [#42408]) ([rest_command docs]) (beta fix) +- Add missing config flow translation key for Nest ([@frenck] - [#42423]) ([nest docs]) (beta fix) +- Add retry for unavailable static tplink devices after HA starts ([@TheGardenMonkey] - [#42247]) ([tplink docs]) (beta fix) +- Make sure to clean up httpx session on failed connection to Axis device ([@Kane610] - [#42428]) ([axis docs]) (beta fix) +- Fix DLNA DMR media receiver when using Python 3.9 ([@tsvi] - [#42430]) ([dlna_dmr docs]) (beta fix) +- Remove title string from Xbox translations ([@hunterjm] - [#42431]) ([xbox docs]) (beta fix) +- Bump simplisafe-python to 9.6.0 ([@bachya] - [#42437]) ([simplisafe docs]) (beta fix) +- Improve Squeezebox media browser performance ([@rajlaud] - [#42439]) ([squeezebox docs]) (beta fix) +- Add device info default values to Panasonic Viera ([@joogps] - [#42441]) ([panasonic_viera docs]) (beta fix) +- Fix hassio-version ([@pvizeli] - [#42449]) (beta fix) +- Fix DSM Surveillance Station when only home mode is enabled ([@Quentame] - [#42456]) ([synology_dsm docs]) (beta fix) +- Fix initial state of pi4ioe ([@balloob] - [#42459]) ([pi4ioe5v9xxxx docs]) (beta fix) +- Bump hatasmota to 0.0.24 ([@emontnemery] - [#42472]) ([tasmota docs]) (beta fix) +- Update frontend to 20201021.3 ([@bramkragten] - [#42486]) ([frontend docs]) (beta fix) +- Make result wrappers more robust ([@balloob] - [#42488]) (beta fix) +- Bump cryptography to 3.2 ([@balloob] - [#42489]) (beta fix) +- Improve mqtt test ([@balloob] - [#42490]) ([mqtt docs]) (beta fix) +- Fix race in Tasmota discovery ([@emontnemery] - [#42492]) ([tasmota docs]) (beta fix) + +
+ +[#32439]: https://github.com/home-assistant/core/pull/32439 +[#33551]: https://github.com/home-assistant/core/pull/33551 +[#36020]: https://github.com/home-assistant/core/pull/36020 +[#36659]: https://github.com/home-assistant/core/pull/36659 +[#37498]: https://github.com/home-assistant/core/pull/37498 +[#37930]: https://github.com/home-assistant/core/pull/37930 +[#37941]: https://github.com/home-assistant/core/pull/37941 +[#39053]: https://github.com/home-assistant/core/pull/39053 +[#39117]: https://github.com/home-assistant/core/pull/39117 +[#39138]: https://github.com/home-assistant/core/pull/39138 +[#39624]: https://github.com/home-assistant/core/pull/39624 +[#39724]: https://github.com/home-assistant/core/pull/39724 +[#39762]: https://github.com/home-assistant/core/pull/39762 +[#39878]: https://github.com/home-assistant/core/pull/39878 +[#39947]: https://github.com/home-assistant/core/pull/39947 +[#40002]: https://github.com/home-assistant/core/pull/40002 +[#40028]: https://github.com/home-assistant/core/pull/40028 +[#40065]: https://github.com/home-assistant/core/pull/40065 +[#40159]: https://github.com/home-assistant/core/pull/40159 +[#40195]: https://github.com/home-assistant/core/pull/40195 +[#40254]: https://github.com/home-assistant/core/pull/40254 +[#40297]: https://github.com/home-assistant/core/pull/40297 +[#40335]: https://github.com/home-assistant/core/pull/40335 +[#40436]: https://github.com/home-assistant/core/pull/40436 +[#40527]: https://github.com/home-assistant/core/pull/40527 +[#40575]: https://github.com/home-assistant/core/pull/40575 +[#40605]: https://github.com/home-assistant/core/pull/40605 +[#40638]: https://github.com/home-assistant/core/pull/40638 +[#40642]: https://github.com/home-assistant/core/pull/40642 +[#40681]: https://github.com/home-assistant/core/pull/40681 +[#40691]: https://github.com/home-assistant/core/pull/40691 +[#40696]: https://github.com/home-assistant/core/pull/40696 +[#40715]: https://github.com/home-assistant/core/pull/40715 +[#40746]: https://github.com/home-assistant/core/pull/40746 +[#40783]: https://github.com/home-assistant/core/pull/40783 +[#40785]: https://github.com/home-assistant/core/pull/40785 +[#40786]: https://github.com/home-assistant/core/pull/40786 +[#40788]: https://github.com/home-assistant/core/pull/40788 +[#40797]: https://github.com/home-assistant/core/pull/40797 +[#40800]: https://github.com/home-assistant/core/pull/40800 +[#40802]: https://github.com/home-assistant/core/pull/40802 +[#40806]: https://github.com/home-assistant/core/pull/40806 +[#40807]: https://github.com/home-assistant/core/pull/40807 +[#40808]: https://github.com/home-assistant/core/pull/40808 +[#40811]: https://github.com/home-assistant/core/pull/40811 +[#40817]: https://github.com/home-assistant/core/pull/40817 +[#40917]: https://github.com/home-assistant/core/pull/40917 +[#40918]: https://github.com/home-assistant/core/pull/40918 +[#40920]: https://github.com/home-assistant/core/pull/40920 +[#40921]: https://github.com/home-assistant/core/pull/40921 +[#40922]: https://github.com/home-assistant/core/pull/40922 +[#40926]: https://github.com/home-assistant/core/pull/40926 +[#40928]: https://github.com/home-assistant/core/pull/40928 +[#40932]: https://github.com/home-assistant/core/pull/40932 +[#40934]: https://github.com/home-assistant/core/pull/40934 +[#40935]: https://github.com/home-assistant/core/pull/40935 +[#40938]: https://github.com/home-assistant/core/pull/40938 +[#40939]: https://github.com/home-assistant/core/pull/40939 +[#40942]: https://github.com/home-assistant/core/pull/40942 +[#40943]: https://github.com/home-assistant/core/pull/40943 +[#40944]: https://github.com/home-assistant/core/pull/40944 +[#40946]: https://github.com/home-assistant/core/pull/40946 +[#40947]: https://github.com/home-assistant/core/pull/40947 +[#40948]: https://github.com/home-assistant/core/pull/40948 +[#40949]: https://github.com/home-assistant/core/pull/40949 +[#40950]: https://github.com/home-assistant/core/pull/40950 +[#40952]: https://github.com/home-assistant/core/pull/40952 +[#40953]: https://github.com/home-assistant/core/pull/40953 +[#40955]: https://github.com/home-assistant/core/pull/40955 +[#40956]: https://github.com/home-assistant/core/pull/40956 +[#40957]: https://github.com/home-assistant/core/pull/40957 +[#40958]: https://github.com/home-assistant/core/pull/40958 +[#40961]: https://github.com/home-assistant/core/pull/40961 +[#40963]: https://github.com/home-assistant/core/pull/40963 +[#40964]: https://github.com/home-assistant/core/pull/40964 +[#40965]: https://github.com/home-assistant/core/pull/40965 +[#40966]: https://github.com/home-assistant/core/pull/40966 +[#40968]: https://github.com/home-assistant/core/pull/40968 +[#40969]: https://github.com/home-assistant/core/pull/40969 +[#40975]: https://github.com/home-assistant/core/pull/40975 +[#40978]: https://github.com/home-assistant/core/pull/40978 +[#40980]: https://github.com/home-assistant/core/pull/40980 +[#40984]: https://github.com/home-assistant/core/pull/40984 +[#40986]: https://github.com/home-assistant/core/pull/40986 +[#40987]: https://github.com/home-assistant/core/pull/40987 +[#40989]: https://github.com/home-assistant/core/pull/40989 +[#40990]: https://github.com/home-assistant/core/pull/40990 +[#40993]: https://github.com/home-assistant/core/pull/40993 +[#40994]: https://github.com/home-assistant/core/pull/40994 +[#40996]: https://github.com/home-assistant/core/pull/40996 +[#40997]: https://github.com/home-assistant/core/pull/40997 +[#40998]: https://github.com/home-assistant/core/pull/40998 +[#40999]: https://github.com/home-assistant/core/pull/40999 +[#41000]: https://github.com/home-assistant/core/pull/41000 +[#41002]: https://github.com/home-assistant/core/pull/41002 +[#41004]: https://github.com/home-assistant/core/pull/41004 +[#41005]: https://github.com/home-assistant/core/pull/41005 +[#41006]: https://github.com/home-assistant/core/pull/41006 +[#41007]: https://github.com/home-assistant/core/pull/41007 +[#41009]: https://github.com/home-assistant/core/pull/41009 +[#41010]: https://github.com/home-assistant/core/pull/41010 +[#41011]: https://github.com/home-assistant/core/pull/41011 +[#41015]: https://github.com/home-assistant/core/pull/41015 +[#41016]: https://github.com/home-assistant/core/pull/41016 +[#41021]: https://github.com/home-assistant/core/pull/41021 +[#41028]: https://github.com/home-assistant/core/pull/41028 +[#41031]: https://github.com/home-assistant/core/pull/41031 +[#41032]: https://github.com/home-assistant/core/pull/41032 +[#41036]: https://github.com/home-assistant/core/pull/41036 +[#41037]: https://github.com/home-assistant/core/pull/41037 +[#41038]: https://github.com/home-assistant/core/pull/41038 +[#41039]: https://github.com/home-assistant/core/pull/41039 +[#41045]: https://github.com/home-assistant/core/pull/41045 +[#41046]: https://github.com/home-assistant/core/pull/41046 +[#41047]: https://github.com/home-assistant/core/pull/41047 +[#41048]: https://github.com/home-assistant/core/pull/41048 +[#41049]: https://github.com/home-assistant/core/pull/41049 +[#41051]: https://github.com/home-assistant/core/pull/41051 +[#41053]: https://github.com/home-assistant/core/pull/41053 +[#41054]: https://github.com/home-assistant/core/pull/41054 +[#41055]: https://github.com/home-assistant/core/pull/41055 +[#41056]: https://github.com/home-assistant/core/pull/41056 +[#41057]: https://github.com/home-assistant/core/pull/41057 +[#41058]: https://github.com/home-assistant/core/pull/41058 +[#41059]: https://github.com/home-assistant/core/pull/41059 +[#41061]: https://github.com/home-assistant/core/pull/41061 +[#41062]: https://github.com/home-assistant/core/pull/41062 +[#41063]: https://github.com/home-assistant/core/pull/41063 +[#41066]: https://github.com/home-assistant/core/pull/41066 +[#41067]: https://github.com/home-assistant/core/pull/41067 +[#41072]: https://github.com/home-assistant/core/pull/41072 +[#41073]: https://github.com/home-assistant/core/pull/41073 +[#41074]: https://github.com/home-assistant/core/pull/41074 +[#41075]: https://github.com/home-assistant/core/pull/41075 +[#41076]: https://github.com/home-assistant/core/pull/41076 +[#41077]: https://github.com/home-assistant/core/pull/41077 +[#41078]: https://github.com/home-assistant/core/pull/41078 +[#41079]: https://github.com/home-assistant/core/pull/41079 +[#41080]: https://github.com/home-assistant/core/pull/41080 +[#41083]: https://github.com/home-assistant/core/pull/41083 +[#41085]: https://github.com/home-assistant/core/pull/41085 +[#41086]: https://github.com/home-assistant/core/pull/41086 +[#41087]: https://github.com/home-assistant/core/pull/41087 +[#41089]: https://github.com/home-assistant/core/pull/41089 +[#41090]: https://github.com/home-assistant/core/pull/41090 +[#41092]: https://github.com/home-assistant/core/pull/41092 +[#41094]: https://github.com/home-assistant/core/pull/41094 +[#41096]: https://github.com/home-assistant/core/pull/41096 +[#41097]: https://github.com/home-assistant/core/pull/41097 +[#41098]: https://github.com/home-assistant/core/pull/41098 +[#41100]: https://github.com/home-assistant/core/pull/41100 +[#41102]: https://github.com/home-assistant/core/pull/41102 +[#41103]: https://github.com/home-assistant/core/pull/41103 +[#41104]: https://github.com/home-assistant/core/pull/41104 +[#41106]: https://github.com/home-assistant/core/pull/41106 +[#41108]: https://github.com/home-assistant/core/pull/41108 +[#41110]: https://github.com/home-assistant/core/pull/41110 +[#41111]: https://github.com/home-assistant/core/pull/41111 +[#41112]: https://github.com/home-assistant/core/pull/41112 +[#41115]: https://github.com/home-assistant/core/pull/41115 +[#41116]: https://github.com/home-assistant/core/pull/41116 +[#41117]: https://github.com/home-assistant/core/pull/41117 +[#41118]: https://github.com/home-assistant/core/pull/41118 +[#41120]: https://github.com/home-assistant/core/pull/41120 +[#41122]: https://github.com/home-assistant/core/pull/41122 +[#41123]: https://github.com/home-assistant/core/pull/41123 +[#41124]: https://github.com/home-assistant/core/pull/41124 +[#41125]: https://github.com/home-assistant/core/pull/41125 +[#41127]: https://github.com/home-assistant/core/pull/41127 +[#41128]: https://github.com/home-assistant/core/pull/41128 +[#41129]: https://github.com/home-assistant/core/pull/41129 +[#41130]: https://github.com/home-assistant/core/pull/41130 +[#41131]: https://github.com/home-assistant/core/pull/41131 +[#41132]: https://github.com/home-assistant/core/pull/41132 +[#41133]: https://github.com/home-assistant/core/pull/41133 +[#41134]: https://github.com/home-assistant/core/pull/41134 +[#41137]: https://github.com/home-assistant/core/pull/41137 +[#41139]: https://github.com/home-assistant/core/pull/41139 +[#41141]: https://github.com/home-assistant/core/pull/41141 +[#41142]: https://github.com/home-assistant/core/pull/41142 +[#41144]: https://github.com/home-assistant/core/pull/41144 +[#41145]: https://github.com/home-assistant/core/pull/41145 +[#41147]: https://github.com/home-assistant/core/pull/41147 +[#41149]: https://github.com/home-assistant/core/pull/41149 +[#41150]: https://github.com/home-assistant/core/pull/41150 +[#41151]: https://github.com/home-assistant/core/pull/41151 +[#41153]: https://github.com/home-assistant/core/pull/41153 +[#41155]: https://github.com/home-assistant/core/pull/41155 +[#41157]: https://github.com/home-assistant/core/pull/41157 +[#41161]: https://github.com/home-assistant/core/pull/41161 +[#41164]: https://github.com/home-assistant/core/pull/41164 +[#41166]: https://github.com/home-assistant/core/pull/41166 +[#41167]: https://github.com/home-assistant/core/pull/41167 +[#41168]: https://github.com/home-assistant/core/pull/41168 +[#41169]: https://github.com/home-assistant/core/pull/41169 +[#41170]: https://github.com/home-assistant/core/pull/41170 +[#41171]: https://github.com/home-assistant/core/pull/41171 +[#41172]: https://github.com/home-assistant/core/pull/41172 +[#41173]: https://github.com/home-assistant/core/pull/41173 +[#41174]: https://github.com/home-assistant/core/pull/41174 +[#41175]: https://github.com/home-assistant/core/pull/41175 +[#41178]: https://github.com/home-assistant/core/pull/41178 +[#41181]: https://github.com/home-assistant/core/pull/41181 +[#41184]: https://github.com/home-assistant/core/pull/41184 +[#41185]: https://github.com/home-assistant/core/pull/41185 +[#41186]: https://github.com/home-assistant/core/pull/41186 +[#41188]: https://github.com/home-assistant/core/pull/41188 +[#41190]: https://github.com/home-assistant/core/pull/41190 +[#41192]: https://github.com/home-assistant/core/pull/41192 +[#41195]: https://github.com/home-assistant/core/pull/41195 +[#41196]: https://github.com/home-assistant/core/pull/41196 +[#41199]: https://github.com/home-assistant/core/pull/41199 +[#41200]: https://github.com/home-assistant/core/pull/41200 +[#41201]: https://github.com/home-assistant/core/pull/41201 +[#41202]: https://github.com/home-assistant/core/pull/41202 +[#41204]: https://github.com/home-assistant/core/pull/41204 +[#41206]: https://github.com/home-assistant/core/pull/41206 +[#41208]: https://github.com/home-assistant/core/pull/41208 +[#41209]: https://github.com/home-assistant/core/pull/41209 +[#41210]: https://github.com/home-assistant/core/pull/41210 +[#41211]: https://github.com/home-assistant/core/pull/41211 +[#41212]: https://github.com/home-assistant/core/pull/41212 +[#41213]: https://github.com/home-assistant/core/pull/41213 +[#41214]: https://github.com/home-assistant/core/pull/41214 +[#41215]: https://github.com/home-assistant/core/pull/41215 +[#41216]: https://github.com/home-assistant/core/pull/41216 +[#41217]: https://github.com/home-assistant/core/pull/41217 +[#41218]: https://github.com/home-assistant/core/pull/41218 +[#41219]: https://github.com/home-assistant/core/pull/41219 +[#41220]: https://github.com/home-assistant/core/pull/41220 +[#41221]: https://github.com/home-assistant/core/pull/41221 +[#41223]: https://github.com/home-assistant/core/pull/41223 +[#41226]: https://github.com/home-assistant/core/pull/41226 +[#41227]: https://github.com/home-assistant/core/pull/41227 +[#41228]: https://github.com/home-assistant/core/pull/41228 +[#41229]: https://github.com/home-assistant/core/pull/41229 +[#41231]: https://github.com/home-assistant/core/pull/41231 +[#41235]: https://github.com/home-assistant/core/pull/41235 +[#41236]: https://github.com/home-assistant/core/pull/41236 +[#41237]: https://github.com/home-assistant/core/pull/41237 +[#41238]: https://github.com/home-assistant/core/pull/41238 +[#41239]: https://github.com/home-assistant/core/pull/41239 +[#41241]: https://github.com/home-assistant/core/pull/41241 +[#41243]: https://github.com/home-assistant/core/pull/41243 +[#41244]: https://github.com/home-assistant/core/pull/41244 +[#41248]: https://github.com/home-assistant/core/pull/41248 +[#41254]: https://github.com/home-assistant/core/pull/41254 +[#41255]: https://github.com/home-assistant/core/pull/41255 +[#41257]: https://github.com/home-assistant/core/pull/41257 +[#41259]: https://github.com/home-assistant/core/pull/41259 +[#41264]: https://github.com/home-assistant/core/pull/41264 +[#41266]: https://github.com/home-assistant/core/pull/41266 +[#41268]: https://github.com/home-assistant/core/pull/41268 +[#41269]: https://github.com/home-assistant/core/pull/41269 +[#41270]: https://github.com/home-assistant/core/pull/41270 +[#41271]: https://github.com/home-assistant/core/pull/41271 +[#41272]: https://github.com/home-assistant/core/pull/41272 +[#41274]: https://github.com/home-assistant/core/pull/41274 +[#41275]: https://github.com/home-assistant/core/pull/41275 +[#41276]: https://github.com/home-assistant/core/pull/41276 +[#41277]: https://github.com/home-assistant/core/pull/41277 +[#41278]: https://github.com/home-assistant/core/pull/41278 +[#41279]: https://github.com/home-assistant/core/pull/41279 +[#41282]: https://github.com/home-assistant/core/pull/41282 +[#41283]: https://github.com/home-assistant/core/pull/41283 +[#41284]: https://github.com/home-assistant/core/pull/41284 +[#41285]: https://github.com/home-assistant/core/pull/41285 +[#41287]: https://github.com/home-assistant/core/pull/41287 +[#41289]: https://github.com/home-assistant/core/pull/41289 +[#41290]: https://github.com/home-assistant/core/pull/41290 +[#41291]: https://github.com/home-assistant/core/pull/41291 +[#41292]: https://github.com/home-assistant/core/pull/41292 +[#41293]: https://github.com/home-assistant/core/pull/41293 +[#41295]: https://github.com/home-assistant/core/pull/41295 +[#41296]: https://github.com/home-assistant/core/pull/41296 +[#41297]: https://github.com/home-assistant/core/pull/41297 +[#41298]: https://github.com/home-assistant/core/pull/41298 +[#41300]: https://github.com/home-assistant/core/pull/41300 +[#41301]: https://github.com/home-assistant/core/pull/41301 +[#41302]: https://github.com/home-assistant/core/pull/41302 +[#41304]: https://github.com/home-assistant/core/pull/41304 +[#41306]: https://github.com/home-assistant/core/pull/41306 +[#41307]: https://github.com/home-assistant/core/pull/41307 +[#41311]: https://github.com/home-assistant/core/pull/41311 +[#41313]: https://github.com/home-assistant/core/pull/41313 +[#41314]: https://github.com/home-assistant/core/pull/41314 +[#41316]: https://github.com/home-assistant/core/pull/41316 +[#41318]: https://github.com/home-assistant/core/pull/41318 +[#41319]: https://github.com/home-assistant/core/pull/41319 +[#41321]: https://github.com/home-assistant/core/pull/41321 +[#41322]: https://github.com/home-assistant/core/pull/41322 +[#41323]: https://github.com/home-assistant/core/pull/41323 +[#41324]: https://github.com/home-assistant/core/pull/41324 +[#41325]: https://github.com/home-assistant/core/pull/41325 +[#41326]: https://github.com/home-assistant/core/pull/41326 +[#41327]: https://github.com/home-assistant/core/pull/41327 +[#41328]: https://github.com/home-assistant/core/pull/41328 +[#41329]: https://github.com/home-assistant/core/pull/41329 +[#41330]: https://github.com/home-assistant/core/pull/41330 +[#41331]: https://github.com/home-assistant/core/pull/41331 +[#41332]: https://github.com/home-assistant/core/pull/41332 +[#41333]: https://github.com/home-assistant/core/pull/41333 +[#41334]: https://github.com/home-assistant/core/pull/41334 +[#41335]: https://github.com/home-assistant/core/pull/41335 +[#41337]: https://github.com/home-assistant/core/pull/41337 +[#41338]: https://github.com/home-assistant/core/pull/41338 +[#41340]: https://github.com/home-assistant/core/pull/41340 +[#41341]: https://github.com/home-assistant/core/pull/41341 +[#41345]: https://github.com/home-assistant/core/pull/41345 +[#41348]: https://github.com/home-assistant/core/pull/41348 +[#41350]: https://github.com/home-assistant/core/pull/41350 +[#41351]: https://github.com/home-assistant/core/pull/41351 +[#41353]: https://github.com/home-assistant/core/pull/41353 +[#41357]: https://github.com/home-assistant/core/pull/41357 +[#41361]: https://github.com/home-assistant/core/pull/41361 +[#41362]: https://github.com/home-assistant/core/pull/41362 +[#41365]: https://github.com/home-assistant/core/pull/41365 +[#41366]: https://github.com/home-assistant/core/pull/41366 +[#41368]: https://github.com/home-assistant/core/pull/41368 +[#41374]: https://github.com/home-assistant/core/pull/41374 +[#41376]: https://github.com/home-assistant/core/pull/41376 +[#41377]: https://github.com/home-assistant/core/pull/41377 +[#41379]: https://github.com/home-assistant/core/pull/41379 +[#41380]: https://github.com/home-assistant/core/pull/41380 +[#41381]: https://github.com/home-assistant/core/pull/41381 +[#41384]: https://github.com/home-assistant/core/pull/41384 +[#41386]: https://github.com/home-assistant/core/pull/41386 +[#41391]: https://github.com/home-assistant/core/pull/41391 +[#41392]: https://github.com/home-assistant/core/pull/41392 +[#41393]: https://github.com/home-assistant/core/pull/41393 +[#41394]: https://github.com/home-assistant/core/pull/41394 +[#41398]: https://github.com/home-assistant/core/pull/41398 +[#41399]: https://github.com/home-assistant/core/pull/41399 +[#41401]: https://github.com/home-assistant/core/pull/41401 +[#41402]: https://github.com/home-assistant/core/pull/41402 +[#41407]: https://github.com/home-assistant/core/pull/41407 +[#41408]: https://github.com/home-assistant/core/pull/41408 +[#41409]: https://github.com/home-assistant/core/pull/41409 +[#41411]: https://github.com/home-assistant/core/pull/41411 +[#41414]: https://github.com/home-assistant/core/pull/41414 +[#41417]: https://github.com/home-assistant/core/pull/41417 +[#41419]: https://github.com/home-assistant/core/pull/41419 +[#41421]: https://github.com/home-assistant/core/pull/41421 +[#41427]: https://github.com/home-assistant/core/pull/41427 +[#41431]: https://github.com/home-assistant/core/pull/41431 +[#41433]: https://github.com/home-assistant/core/pull/41433 +[#41435]: https://github.com/home-assistant/core/pull/41435 +[#41441]: https://github.com/home-assistant/core/pull/41441 +[#41442]: https://github.com/home-assistant/core/pull/41442 +[#41445]: https://github.com/home-assistant/core/pull/41445 +[#41446]: https://github.com/home-assistant/core/pull/41446 +[#41447]: https://github.com/home-assistant/core/pull/41447 +[#41448]: https://github.com/home-assistant/core/pull/41448 +[#41449]: https://github.com/home-assistant/core/pull/41449 +[#41450]: https://github.com/home-assistant/core/pull/41450 +[#41451]: https://github.com/home-assistant/core/pull/41451 +[#41452]: https://github.com/home-assistant/core/pull/41452 +[#41453]: https://github.com/home-assistant/core/pull/41453 +[#41454]: https://github.com/home-assistant/core/pull/41454 +[#41455]: https://github.com/home-assistant/core/pull/41455 +[#41456]: https://github.com/home-assistant/core/pull/41456 +[#41457]: https://github.com/home-assistant/core/pull/41457 +[#41458]: https://github.com/home-assistant/core/pull/41458 +[#41459]: https://github.com/home-assistant/core/pull/41459 +[#41462]: https://github.com/home-assistant/core/pull/41462 +[#41467]: https://github.com/home-assistant/core/pull/41467 +[#41469]: https://github.com/home-assistant/core/pull/41469 +[#41476]: https://github.com/home-assistant/core/pull/41476 +[#41482]: https://github.com/home-assistant/core/pull/41482 +[#41483]: https://github.com/home-assistant/core/pull/41483 +[#41485]: https://github.com/home-assistant/core/pull/41485 +[#41486]: https://github.com/home-assistant/core/pull/41486 +[#41501]: https://github.com/home-assistant/core/pull/41501 +[#41502]: https://github.com/home-assistant/core/pull/41502 +[#41503]: https://github.com/home-assistant/core/pull/41503 +[#41504]: https://github.com/home-assistant/core/pull/41504 +[#41506]: https://github.com/home-assistant/core/pull/41506 +[#41510]: https://github.com/home-assistant/core/pull/41510 +[#41511]: https://github.com/home-assistant/core/pull/41511 +[#41513]: https://github.com/home-assistant/core/pull/41513 +[#41515]: https://github.com/home-assistant/core/pull/41515 +[#41516]: https://github.com/home-assistant/core/pull/41516 +[#41518]: https://github.com/home-assistant/core/pull/41518 +[#41523]: https://github.com/home-assistant/core/pull/41523 +[#41526]: https://github.com/home-assistant/core/pull/41526 +[#41527]: https://github.com/home-assistant/core/pull/41527 +[#41528]: https://github.com/home-assistant/core/pull/41528 +[#41529]: https://github.com/home-assistant/core/pull/41529 +[#41530]: https://github.com/home-assistant/core/pull/41530 +[#41531]: https://github.com/home-assistant/core/pull/41531 +[#41532]: https://github.com/home-assistant/core/pull/41532 +[#41546]: https://github.com/home-assistant/core/pull/41546 +[#41547]: https://github.com/home-assistant/core/pull/41547 +[#41550]: https://github.com/home-assistant/core/pull/41550 +[#41551]: https://github.com/home-assistant/core/pull/41551 +[#41552]: https://github.com/home-assistant/core/pull/41552 +[#41553]: https://github.com/home-assistant/core/pull/41553 +[#41554]: https://github.com/home-assistant/core/pull/41554 +[#41562]: https://github.com/home-assistant/core/pull/41562 +[#41571]: https://github.com/home-assistant/core/pull/41571 +[#41572]: https://github.com/home-assistant/core/pull/41572 +[#41573]: https://github.com/home-assistant/core/pull/41573 +[#41574]: https://github.com/home-assistant/core/pull/41574 +[#41578]: https://github.com/home-assistant/core/pull/41578 +[#41580]: https://github.com/home-assistant/core/pull/41580 +[#41584]: https://github.com/home-assistant/core/pull/41584 +[#41590]: https://github.com/home-assistant/core/pull/41590 +[#41591]: https://github.com/home-assistant/core/pull/41591 +[#41595]: https://github.com/home-assistant/core/pull/41595 +[#41596]: https://github.com/home-assistant/core/pull/41596 +[#41597]: https://github.com/home-assistant/core/pull/41597 +[#41598]: https://github.com/home-assistant/core/pull/41598 +[#41599]: https://github.com/home-assistant/core/pull/41599 +[#41600]: https://github.com/home-assistant/core/pull/41600 +[#41602]: https://github.com/home-assistant/core/pull/41602 +[#41603]: https://github.com/home-assistant/core/pull/41603 +[#41604]: https://github.com/home-assistant/core/pull/41604 +[#41606]: https://github.com/home-assistant/core/pull/41606 +[#41607]: https://github.com/home-assistant/core/pull/41607 +[#41608]: https://github.com/home-assistant/core/pull/41608 +[#41610]: https://github.com/home-assistant/core/pull/41610 +[#41611]: https://github.com/home-assistant/core/pull/41611 +[#41616]: https://github.com/home-assistant/core/pull/41616 +[#41619]: https://github.com/home-assistant/core/pull/41619 +[#41620]: https://github.com/home-assistant/core/pull/41620 +[#41621]: https://github.com/home-assistant/core/pull/41621 +[#41622]: https://github.com/home-assistant/core/pull/41622 +[#41623]: https://github.com/home-assistant/core/pull/41623 +[#41626]: https://github.com/home-assistant/core/pull/41626 +[#41631]: https://github.com/home-assistant/core/pull/41631 +[#41632]: https://github.com/home-assistant/core/pull/41632 +[#41638]: https://github.com/home-assistant/core/pull/41638 +[#41640]: https://github.com/home-assistant/core/pull/41640 +[#41641]: https://github.com/home-assistant/core/pull/41641 +[#41642]: https://github.com/home-assistant/core/pull/41642 +[#41644]: https://github.com/home-assistant/core/pull/41644 +[#41647]: https://github.com/home-assistant/core/pull/41647 +[#41651]: https://github.com/home-assistant/core/pull/41651 +[#41656]: https://github.com/home-assistant/core/pull/41656 +[#41658]: https://github.com/home-assistant/core/pull/41658 +[#41662]: https://github.com/home-assistant/core/pull/41662 +[#41663]: https://github.com/home-assistant/core/pull/41663 +[#41667]: https://github.com/home-assistant/core/pull/41667 +[#41668]: https://github.com/home-assistant/core/pull/41668 +[#41670]: https://github.com/home-assistant/core/pull/41670 +[#41671]: https://github.com/home-assistant/core/pull/41671 +[#41672]: https://github.com/home-assistant/core/pull/41672 +[#41677]: https://github.com/home-assistant/core/pull/41677 +[#41679]: https://github.com/home-assistant/core/pull/41679 +[#41681]: https://github.com/home-assistant/core/pull/41681 +[#41684]: https://github.com/home-assistant/core/pull/41684 +[#41689]: https://github.com/home-assistant/core/pull/41689 +[#41692]: https://github.com/home-assistant/core/pull/41692 +[#41695]: https://github.com/home-assistant/core/pull/41695 +[#41697]: https://github.com/home-assistant/core/pull/41697 +[#41703]: https://github.com/home-assistant/core/pull/41703 +[#41705]: https://github.com/home-assistant/core/pull/41705 +[#41706]: https://github.com/home-assistant/core/pull/41706 +[#41709]: https://github.com/home-assistant/core/pull/41709 +[#41711]: https://github.com/home-assistant/core/pull/41711 +[#41715]: https://github.com/home-assistant/core/pull/41715 +[#41716]: https://github.com/home-assistant/core/pull/41716 +[#41717]: https://github.com/home-assistant/core/pull/41717 +[#41720]: https://github.com/home-assistant/core/pull/41720 +[#41722]: https://github.com/home-assistant/core/pull/41722 +[#41724]: https://github.com/home-assistant/core/pull/41724 +[#41727]: https://github.com/home-assistant/core/pull/41727 +[#41730]: https://github.com/home-assistant/core/pull/41730 +[#41731]: https://github.com/home-assistant/core/pull/41731 +[#41735]: https://github.com/home-assistant/core/pull/41735 +[#41736]: https://github.com/home-assistant/core/pull/41736 +[#41737]: https://github.com/home-assistant/core/pull/41737 +[#41740]: https://github.com/home-assistant/core/pull/41740 +[#41741]: https://github.com/home-assistant/core/pull/41741 +[#41745]: https://github.com/home-assistant/core/pull/41745 +[#41746]: https://github.com/home-assistant/core/pull/41746 +[#41757]: https://github.com/home-assistant/core/pull/41757 +[#41764]: https://github.com/home-assistant/core/pull/41764 +[#41765]: https://github.com/home-assistant/core/pull/41765 +[#41766]: https://github.com/home-assistant/core/pull/41766 +[#41768]: https://github.com/home-assistant/core/pull/41768 +[#41769]: https://github.com/home-assistant/core/pull/41769 +[#41770]: https://github.com/home-assistant/core/pull/41770 +[#41772]: https://github.com/home-assistant/core/pull/41772 +[#41773]: https://github.com/home-assistant/core/pull/41773 +[#41776]: https://github.com/home-assistant/core/pull/41776 +[#41778]: https://github.com/home-assistant/core/pull/41778 +[#41779]: https://github.com/home-assistant/core/pull/41779 +[#41780]: https://github.com/home-assistant/core/pull/41780 +[#41781]: https://github.com/home-assistant/core/pull/41781 +[#41782]: https://github.com/home-assistant/core/pull/41782 +[#41783]: https://github.com/home-assistant/core/pull/41783 +[#41784]: https://github.com/home-assistant/core/pull/41784 +[#41785]: https://github.com/home-assistant/core/pull/41785 +[#41786]: https://github.com/home-assistant/core/pull/41786 +[#41787]: https://github.com/home-assistant/core/pull/41787 +[#41788]: https://github.com/home-assistant/core/pull/41788 +[#41790]: https://github.com/home-assistant/core/pull/41790 +[#41791]: https://github.com/home-assistant/core/pull/41791 +[#41793]: https://github.com/home-assistant/core/pull/41793 +[#41794]: https://github.com/home-assistant/core/pull/41794 +[#41795]: https://github.com/home-assistant/core/pull/41795 +[#41796]: https://github.com/home-assistant/core/pull/41796 +[#41799]: https://github.com/home-assistant/core/pull/41799 +[#41801]: https://github.com/home-assistant/core/pull/41801 +[#41803]: https://github.com/home-assistant/core/pull/41803 +[#41804]: https://github.com/home-assistant/core/pull/41804 +[#41806]: https://github.com/home-assistant/core/pull/41806 +[#41807]: https://github.com/home-assistant/core/pull/41807 +[#41808]: https://github.com/home-assistant/core/pull/41808 +[#41809]: https://github.com/home-assistant/core/pull/41809 +[#41810]: https://github.com/home-assistant/core/pull/41810 +[#41811]: https://github.com/home-assistant/core/pull/41811 +[#41817]: https://github.com/home-assistant/core/pull/41817 +[#41820]: https://github.com/home-assistant/core/pull/41820 +[#41821]: https://github.com/home-assistant/core/pull/41821 +[#41824]: https://github.com/home-assistant/core/pull/41824 +[#41826]: https://github.com/home-assistant/core/pull/41826 +[#41829]: https://github.com/home-assistant/core/pull/41829 +[#41832]: https://github.com/home-assistant/core/pull/41832 +[#41833]: https://github.com/home-assistant/core/pull/41833 +[#41834]: https://github.com/home-assistant/core/pull/41834 +[#41835]: https://github.com/home-assistant/core/pull/41835 +[#41836]: https://github.com/home-assistant/core/pull/41836 +[#41837]: https://github.com/home-assistant/core/pull/41837 +[#41838]: https://github.com/home-assistant/core/pull/41838 +[#41839]: https://github.com/home-assistant/core/pull/41839 +[#41840]: https://github.com/home-assistant/core/pull/41840 +[#41842]: https://github.com/home-assistant/core/pull/41842 +[#41843]: https://github.com/home-assistant/core/pull/41843 +[#41844]: https://github.com/home-assistant/core/pull/41844 +[#41845]: https://github.com/home-assistant/core/pull/41845 +[#41846]: https://github.com/home-assistant/core/pull/41846 +[#41847]: https://github.com/home-assistant/core/pull/41847 +[#41848]: https://github.com/home-assistant/core/pull/41848 +[#41849]: https://github.com/home-assistant/core/pull/41849 +[#41850]: https://github.com/home-assistant/core/pull/41850 +[#41851]: https://github.com/home-assistant/core/pull/41851 +[#41852]: https://github.com/home-assistant/core/pull/41852 +[#41855]: https://github.com/home-assistant/core/pull/41855 +[#41859]: https://github.com/home-assistant/core/pull/41859 +[#41860]: https://github.com/home-assistant/core/pull/41860 +[#41861]: https://github.com/home-assistant/core/pull/41861 +[#41864]: https://github.com/home-assistant/core/pull/41864 +[#41865]: https://github.com/home-assistant/core/pull/41865 +[#41866]: https://github.com/home-assistant/core/pull/41866 +[#41867]: https://github.com/home-assistant/core/pull/41867 +[#41868]: https://github.com/home-assistant/core/pull/41868 +[#41869]: https://github.com/home-assistant/core/pull/41869 +[#41870]: https://github.com/home-assistant/core/pull/41870 +[#41871]: https://github.com/home-assistant/core/pull/41871 +[#41873]: https://github.com/home-assistant/core/pull/41873 +[#41876]: https://github.com/home-assistant/core/pull/41876 +[#41879]: https://github.com/home-assistant/core/pull/41879 +[#41885]: https://github.com/home-assistant/core/pull/41885 +[#41894]: https://github.com/home-assistant/core/pull/41894 +[#41896]: https://github.com/home-assistant/core/pull/41896 +[#41902]: https://github.com/home-assistant/core/pull/41902 +[#41904]: https://github.com/home-assistant/core/pull/41904 +[#41905]: https://github.com/home-assistant/core/pull/41905 +[#41911]: https://github.com/home-assistant/core/pull/41911 +[#41914]: https://github.com/home-assistant/core/pull/41914 +[#41916]: https://github.com/home-assistant/core/pull/41916 +[#41917]: https://github.com/home-assistant/core/pull/41917 +[#41919]: https://github.com/home-assistant/core/pull/41919 +[#41920]: https://github.com/home-assistant/core/pull/41920 +[#41921]: https://github.com/home-assistant/core/pull/41921 +[#41923]: https://github.com/home-assistant/core/pull/41923 +[#41924]: https://github.com/home-assistant/core/pull/41924 +[#41925]: https://github.com/home-assistant/core/pull/41925 +[#41926]: https://github.com/home-assistant/core/pull/41926 +[#41927]: https://github.com/home-assistant/core/pull/41927 +[#41928]: https://github.com/home-assistant/core/pull/41928 +[#41930]: https://github.com/home-assistant/core/pull/41930 +[#41933]: https://github.com/home-assistant/core/pull/41933 +[#41934]: https://github.com/home-assistant/core/pull/41934 +[#41935]: https://github.com/home-assistant/core/pull/41935 +[#41937]: https://github.com/home-assistant/core/pull/41937 +[#41939]: https://github.com/home-assistant/core/pull/41939 +[#41940]: https://github.com/home-assistant/core/pull/41940 +[#41941]: https://github.com/home-assistant/core/pull/41941 +[#41943]: https://github.com/home-assistant/core/pull/41943 +[#41945]: https://github.com/home-assistant/core/pull/41945 +[#41947]: https://github.com/home-assistant/core/pull/41947 +[#41948]: https://github.com/home-assistant/core/pull/41948 +[#41949]: https://github.com/home-assistant/core/pull/41949 +[#41951]: https://github.com/home-assistant/core/pull/41951 +[#41952]: https://github.com/home-assistant/core/pull/41952 +[#41954]: https://github.com/home-assistant/core/pull/41954 +[#41955]: https://github.com/home-assistant/core/pull/41955 +[#41956]: https://github.com/home-assistant/core/pull/41956 +[#41959]: https://github.com/home-assistant/core/pull/41959 +[#41964]: https://github.com/home-assistant/core/pull/41964 +[#41966]: https://github.com/home-assistant/core/pull/41966 +[#41970]: https://github.com/home-assistant/core/pull/41970 +[#41971]: https://github.com/home-assistant/core/pull/41971 +[#41973]: https://github.com/home-assistant/core/pull/41973 +[#41974]: https://github.com/home-assistant/core/pull/41974 +[#41975]: https://github.com/home-assistant/core/pull/41975 +[#41976]: https://github.com/home-assistant/core/pull/41976 +[#41978]: https://github.com/home-assistant/core/pull/41978 +[#41980]: https://github.com/home-assistant/core/pull/41980 +[#41981]: https://github.com/home-assistant/core/pull/41981 +[#41982]: https://github.com/home-assistant/core/pull/41982 +[#41984]: https://github.com/home-assistant/core/pull/41984 +[#41985]: https://github.com/home-assistant/core/pull/41985 +[#41986]: https://github.com/home-assistant/core/pull/41986 +[#41987]: https://github.com/home-assistant/core/pull/41987 +[#41991]: https://github.com/home-assistant/core/pull/41991 +[#41992]: https://github.com/home-assistant/core/pull/41992 +[#41995]: https://github.com/home-assistant/core/pull/41995 +[#41996]: https://github.com/home-assistant/core/pull/41996 +[#41997]: https://github.com/home-assistant/core/pull/41997 +[#41998]: https://github.com/home-assistant/core/pull/41998 +[#42000]: https://github.com/home-assistant/core/pull/42000 +[#42004]: https://github.com/home-assistant/core/pull/42004 +[#42005]: https://github.com/home-assistant/core/pull/42005 +[#42010]: https://github.com/home-assistant/core/pull/42010 +[#42013]: https://github.com/home-assistant/core/pull/42013 +[#42014]: https://github.com/home-assistant/core/pull/42014 +[#42017]: https://github.com/home-assistant/core/pull/42017 +[#42018]: https://github.com/home-assistant/core/pull/42018 +[#42020]: https://github.com/home-assistant/core/pull/42020 +[#42022]: https://github.com/home-assistant/core/pull/42022 +[#42033]: https://github.com/home-assistant/core/pull/42033 +[#42034]: https://github.com/home-assistant/core/pull/42034 +[#42038]: https://github.com/home-assistant/core/pull/42038 +[#42039]: https://github.com/home-assistant/core/pull/42039 +[#42040]: https://github.com/home-assistant/core/pull/42040 +[#42041]: https://github.com/home-assistant/core/pull/42041 +[#42043]: https://github.com/home-assistant/core/pull/42043 +[#42045]: https://github.com/home-assistant/core/pull/42045 +[#42047]: https://github.com/home-assistant/core/pull/42047 +[#42050]: https://github.com/home-assistant/core/pull/42050 +[#42051]: https://github.com/home-assistant/core/pull/42051 +[#42052]: https://github.com/home-assistant/core/pull/42052 +[#42054]: https://github.com/home-assistant/core/pull/42054 +[#42055]: https://github.com/home-assistant/core/pull/42055 +[#42058]: https://github.com/home-assistant/core/pull/42058 +[#42059]: https://github.com/home-assistant/core/pull/42059 +[#42060]: https://github.com/home-assistant/core/pull/42060 +[#42064]: https://github.com/home-assistant/core/pull/42064 +[#42067]: https://github.com/home-assistant/core/pull/42067 +[#42070]: https://github.com/home-assistant/core/pull/42070 +[#42071]: https://github.com/home-assistant/core/pull/42071 +[#42073]: https://github.com/home-assistant/core/pull/42073 +[#42075]: https://github.com/home-assistant/core/pull/42075 +[#42078]: https://github.com/home-assistant/core/pull/42078 +[#42086]: https://github.com/home-assistant/core/pull/42086 +[#42088]: https://github.com/home-assistant/core/pull/42088 +[#42091]: https://github.com/home-assistant/core/pull/42091 +[#42092]: https://github.com/home-assistant/core/pull/42092 +[#42095]: https://github.com/home-assistant/core/pull/42095 +[#42097]: https://github.com/home-assistant/core/pull/42097 +[#42108]: https://github.com/home-assistant/core/pull/42108 +[#42119]: https://github.com/home-assistant/core/pull/42119 +[#42122]: https://github.com/home-assistant/core/pull/42122 +[#42126]: https://github.com/home-assistant/core/pull/42126 +[#42127]: https://github.com/home-assistant/core/pull/42127 +[#42132]: https://github.com/home-assistant/core/pull/42132 +[#42137]: https://github.com/home-assistant/core/pull/42137 +[#42142]: https://github.com/home-assistant/core/pull/42142 +[#42143]: https://github.com/home-assistant/core/pull/42143 +[#42145]: https://github.com/home-assistant/core/pull/42145 +[#42148]: https://github.com/home-assistant/core/pull/42148 +[#42151]: https://github.com/home-assistant/core/pull/42151 +[#42153]: https://github.com/home-assistant/core/pull/42153 +[#42155]: https://github.com/home-assistant/core/pull/42155 +[#42161]: https://github.com/home-assistant/core/pull/42161 +[#42163]: https://github.com/home-assistant/core/pull/42163 +[#42167]: https://github.com/home-assistant/core/pull/42167 +[#42168]: https://github.com/home-assistant/core/pull/42168 +[#42171]: https://github.com/home-assistant/core/pull/42171 +[#42172]: https://github.com/home-assistant/core/pull/42172 +[#42173]: https://github.com/home-assistant/core/pull/42173 +[#42174]: https://github.com/home-assistant/core/pull/42174 +[#42175]: https://github.com/home-assistant/core/pull/42175 +[#42179]: https://github.com/home-assistant/core/pull/42179 +[#42180]: https://github.com/home-assistant/core/pull/42180 +[#42185]: https://github.com/home-assistant/core/pull/42185 +[#42194]: https://github.com/home-assistant/core/pull/42194 +[#42197]: https://github.com/home-assistant/core/pull/42197 +[#42213]: https://github.com/home-assistant/core/pull/42213 +[#42215]: https://github.com/home-assistant/core/pull/42215 +[#42225]: https://github.com/home-assistant/core/pull/42225 +[#42226]: https://github.com/home-assistant/core/pull/42226 +[#42228]: https://github.com/home-assistant/core/pull/42228 +[#42242]: https://github.com/home-assistant/core/pull/42242 +[#42245]: https://github.com/home-assistant/core/pull/42245 +[#42247]: https://github.com/home-assistant/core/pull/42247 +[#42248]: https://github.com/home-assistant/core/pull/42248 +[#42250]: https://github.com/home-assistant/core/pull/42250 +[#42251]: https://github.com/home-assistant/core/pull/42251 +[#42257]: https://github.com/home-assistant/core/pull/42257 +[#42259]: https://github.com/home-assistant/core/pull/42259 +[#42265]: https://github.com/home-assistant/core/pull/42265 +[#42277]: https://github.com/home-assistant/core/pull/42277 +[#42287]: https://github.com/home-assistant/core/pull/42287 +[#42288]: https://github.com/home-assistant/core/pull/42288 +[#42293]: https://github.com/home-assistant/core/pull/42293 +[#42300]: https://github.com/home-assistant/core/pull/42300 +[#42303]: https://github.com/home-assistant/core/pull/42303 +[#42322]: https://github.com/home-assistant/core/pull/42322 +[#42342]: https://github.com/home-assistant/core/pull/42342 +[#42360]: https://github.com/home-assistant/core/pull/42360 +[#42367]: https://github.com/home-assistant/core/pull/42367 +[#42391]: https://github.com/home-assistant/core/pull/42391 +[#42394]: https://github.com/home-assistant/core/pull/42394 +[#42396]: https://github.com/home-assistant/core/pull/42396 +[#42397]: https://github.com/home-assistant/core/pull/42397 +[#42398]: https://github.com/home-assistant/core/pull/42398 +[#42401]: https://github.com/home-assistant/core/pull/42401 +[#42405]: https://github.com/home-assistant/core/pull/42405 +[#42406]: https://github.com/home-assistant/core/pull/42406 +[#42408]: https://github.com/home-assistant/core/pull/42408 +[#42423]: https://github.com/home-assistant/core/pull/42423 +[#42428]: https://github.com/home-assistant/core/pull/42428 +[#42430]: https://github.com/home-assistant/core/pull/42430 +[#42431]: https://github.com/home-assistant/core/pull/42431 +[#42437]: https://github.com/home-assistant/core/pull/42437 +[#42439]: https://github.com/home-assistant/core/pull/42439 +[#42441]: https://github.com/home-assistant/core/pull/42441 +[#42449]: https://github.com/home-assistant/core/pull/42449 +[#42456]: https://github.com/home-assistant/core/pull/42456 +[#42459]: https://github.com/home-assistant/core/pull/42459 +[#42472]: https://github.com/home-assistant/core/pull/42472 +[#42486]: https://github.com/home-assistant/core/pull/42486 +[#42488]: https://github.com/home-assistant/core/pull/42488 +[#42489]: https://github.com/home-assistant/core/pull/42489 +[#42490]: https://github.com/home-assistant/core/pull/42490 +[#42492]: https://github.com/home-assistant/core/pull/42492 +[@2Fake]: https://github.com/2Fake +[@4ybaka]: https://github.com/4ybaka +[@Adminiuga]: https://github.com/Adminiuga +[@Antetokounpo]: https://github.com/Antetokounpo +[@Bre77]: https://github.com/Bre77 +[@BrianWithAHat]: https://github.com/BrianWithAHat +[@Cadair]: https://github.com/Cadair +[@CoMPaTech]: https://github.com/CoMPaTech +[@ColinRobbins]: https://github.com/ColinRobbins +[@CurrentThread]: https://github.com/CurrentThread +[@Danielhiversen]: https://github.com/Danielhiversen +[@DavidMStraub]: https://github.com/DavidMStraub +[@DiederikvandenB]: https://github.com/DiederikvandenB +[@Edward-Knight]: https://github.com/Edward-Knight +[@GauthamVarmaK]: https://github.com/GauthamVarmaK +[@GenericStudent]: https://github.com/GenericStudent +[@JPHutchins]: https://github.com/JPHutchins +[@JeffLIrion]: https://github.com/JeffLIrion +[@K-4U]: https://github.com/K-4U +[@KTibow]: https://github.com/KTibow +[@Kane610]: https://github.com/Kane610 +[@KevinCathcart]: https://github.com/KevinCathcart +[@Liopun]: https://github.com/Liopun +[@MBlokhuijzen]: https://github.com/MBlokhuijzen +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MatejMecka]: https://github.com/MatejMecka +[@MatthewFlamm]: https://github.com/MatthewFlamm +[@Mic92]: https://github.com/Mic92 +[@NikoM87]: https://github.com/NikoM87 +[@Olen]: https://github.com/Olen +[@OnFreund]: https://github.com/OnFreund +[@PaulAnnekov]: https://github.com/PaulAnnekov +[@Pigotka]: https://github.com/Pigotka +[@Quentame]: https://github.com/Quentame +[@Rihan9]: https://github.com/Rihan9 +[@RobBie1221]: https://github.com/RobBie1221 +[@SNoof85]: https://github.com/SNoof85 +[@Shulyaka]: https://github.com/Shulyaka +[@Shutgun]: https://github.com/Shutgun +[@Spartan-II-117]: https://github.com/Spartan-II-117 +[@SukramJ]: https://github.com/SukramJ +[@TheGardenMonkey]: https://github.com/TheGardenMonkey +[@TheJulianJES]: https://github.com/TheJulianJES +[@TopdRob]: https://github.com/TopdRob +[@abmantis]: https://github.com/abmantis +[@airthusiast]: https://github.com/airthusiast +[@alandtse]: https://github.com/alandtse +[@alengwenus]: https://github.com/alengwenus +[@allenporter]: https://github.com/allenporter +[@amelchio]: https://github.com/amelchio +[@arianahl]: https://github.com/arianahl +[@bachya]: https://github.com/bachya +[@baget]: https://github.com/baget +[@balloob]: https://github.com/balloob +[@basnijholt]: https://github.com/basnijholt +[@bdraco]: https://github.com/bdraco +[@bebleo]: https://github.com/bebleo +[@belidzs]: https://github.com/belidzs +[@bieniu]: https://github.com/bieniu +[@bramkragten]: https://github.com/bramkragten +[@brg468]: https://github.com/brg468 +[@briglx]: https://github.com/briglx +[@casenjo]: https://github.com/casenjo +[@ccatterina]: https://github.com/ccatterina +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@chrillebile]: https://github.com/chrillebile +[@cmroche]: https://github.com/cmroche +[@ctalkington]: https://github.com/ctalkington +[@danielperna84]: https://github.com/danielperna84 +[@davet2001]: https://github.com/davet2001 +[@daveychu]: https://github.com/daveychu +[@definitio]: https://github.com/definitio +[@dermotduffy]: https://github.com/dermotduffy +[@dgomes]: https://github.com/dgomes +[@djpremier]: https://github.com/djpremier +[@djtimca]: https://github.com/djtimca +[@dmonego]: https://github.com/dmonego +[@drkp]: https://github.com/drkp +[@dudyn5ky1]: https://github.com/dudyn5ky1 +[@dvermd]: https://github.com/dvermd +[@ehendrix23]: https://github.com/ehendrix23 +[@eliotw]: https://github.com/eliotw +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@farmio]: https://github.com/farmio +[@felipediel]: https://github.com/felipediel +[@firstof9]: https://github.com/firstof9 +[@fnurgel]: https://github.com/fnurgel +[@frangiz]: https://github.com/frangiz +[@fredrike]: https://github.com/fredrike +[@frenck]: https://github.com/frenck +[@gabe565]: https://github.com/gabe565 +[@gerard33]: https://github.com/gerard33 +[@groot406]: https://github.com/groot406 +[@gwww]: https://github.com/gwww +[@hfurubotten]: https://github.com/hfurubotten +[@hmmbob]: https://github.com/hmmbob +[@hunterjm]: https://github.com/hunterjm +[@igotinfected]: https://github.com/igotinfected +[@ioull]: https://github.com/ioull +[@janiversen]: https://github.com/janiversen +[@jasonmadigan]: https://github.com/jasonmadigan +[@javicalle]: https://github.com/javicalle +[@jeffaudio]: https://github.com/jeffaudio +[@jheddings]: https://github.com/jheddings +[@jjlawren]: https://github.com/jjlawren +[@johanhammar]: https://github.com/johanhammar +[@joogps]: https://github.com/joogps +[@jrester]: https://github.com/jrester +[@jyz0501]: https://github.com/jyz0501 +[@kbickar]: https://github.com/kbickar +[@kukulich]: https://github.com/kukulich +[@ludeeus]: https://github.com/ludeeus +[@makuser]: https://github.com/makuser +[@marecabo]: https://github.com/marecabo +[@markbergsma]: https://github.com/markbergsma +[@mdonoughe]: https://github.com/mdonoughe +[@mezz64]: https://github.com/mezz64 +[@mrwacky42]: https://github.com/mrwacky42 +[@ntilley905]: https://github.com/ntilley905 +[@nzapponi]: https://github.com/nzapponi +[@ochlocracy]: https://github.com/ochlocracy +[@oxygen0211]: https://github.com/oxygen0211 +[@palfrey]: https://github.com/palfrey +[@pattyland]: https://github.com/pattyland +[@peleccom]: https://github.com/peleccom +[@pinkywafer]: https://github.com/pinkywafer +[@prystupa]: https://github.com/prystupa +[@puddly]: https://github.com/puddly +[@punitaojha]: https://github.com/punitaojha +[@pvizeli]: https://github.com/pvizeli +[@rajlaud]: https://github.com/rajlaud +[@raman325]: https://github.com/raman325 +[@rikroe]: https://github.com/rikroe +[@ronal2do]: https://github.com/ronal2do +[@ronanmu]: https://github.com/ronanmu +[@rusitschka]: https://github.com/rusitschka +[@rytilahti]: https://github.com/rytilahti +[@scarface-4711]: https://github.com/scarface-4711 +[@scheric]: https://github.com/scheric +[@scop]: https://github.com/scop +[@sebasrp]: https://github.com/sebasrp +[@shbatm]: https://github.com/shbatm +[@soldag]: https://github.com/soldag +[@spacegaier]: https://github.com/spacegaier +[@springstan]: https://github.com/springstan +[@sycx2]: https://github.com/sycx2 +[@tbarnekov]: https://github.com/tbarnekov +[@tefinger]: https://github.com/tefinger +[@teharris1]: https://github.com/teharris1 +[@tetienne]: https://github.com/tetienne +[@thaohtp]: https://github.com/thaohtp +[@thijsdejong]: https://github.com/thijsdejong +[@thomasloven]: https://github.com/thomasloven +[@tim-werner]: https://github.com/tim-werner +[@timmo001]: https://github.com/timmo001 +[@tkacikdominik]: https://github.com/tkacikdominik +[@tkdrob]: https://github.com/tkdrob +[@tsvi]: https://github.com/tsvi +[@uvjustin]: https://github.com/uvjustin +[@vigonotion]: https://github.com/vigonotion +[@vzahradnik]: https://github.com/vzahradnik +[@willholdoway]: https://github.com/willholdoway +[@wouterbaake]: https://github.com/wouterbaake +[@yura505]: https://github.com/yura505 +[@yuvalabou]: https://github.com/yuvalabou +[@zetvio]: https://github.com/zetvio +[abode docs]: /integrations/abode/ +[accuweather docs]: /integrations/accuweather/ +[acmeda docs]: /integrations/acmeda/ +[adguard docs]: /integrations/adguard/ +[advantage_air docs]: /integrations/advantage_air/ +[aftership docs]: /integrations/aftership/ +[agent_dvr docs]: /integrations/agent_dvr/ +[airly docs]: /integrations/airly/ +[airvisual docs]: /integrations/airvisual/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[alert docs]: /integrations/alert/ +[alexa docs]: /integrations/alexa/ +[almond docs]: /integrations/almond/ +[ambiclimate docs]: /integrations/ambiclimate/ +[ambient_station docs]: /integrations/ambient_station/ +[androidtv docs]: /integrations/androidtv/ +[anel_pwrctrl docs]: /integrations/anel_pwrctrl/ +[api docs]: /integrations/api/ +[apns docs]: /integrations/apns/ +[arcam_fmj docs]: /integrations/arcam_fmj/ +[atag docs]: /integrations/atag/ +[august docs]: /integrations/august/ +[aurora docs]: /integrations/aurora/ +[avri docs]: /integrations/avri/ +[awair docs]: /integrations/awair/ +[axis docs]: /integrations/axis/ +[azure_devops docs]: /integrations/azure_devops/ +[azure_service_bus docs]: /integrations/azure_service_bus/ +[bayesian docs]: /integrations/bayesian/ +[bh1750 docs]: /integrations/bh1750/ +[blebox docs]: /integrations/blebox/ +[blinksticklight docs]: /integrations/blinksticklight/ +[bluesound docs]: /integrations/bluesound/ +[bme280 docs]: /integrations/bme280/ +[bme680 docs]: /integrations/bme680/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[bond docs]: /integrations/bond/ +[braviatv docs]: /integrations/braviatv/ +[broadlink docs]: /integrations/broadlink/ +[brother docs]: /integrations/brother/ +[bsblan docs]: /integrations/bsblan/ +[caldav docs]: /integrations/caldav/ +[calendar docs]: /integrations/calendar/ +[canary docs]: /integrations/canary/ +[cast docs]: /integrations/cast/ +[cert_expiry docs]: /integrations/cert_expiry/ +[cloud docs]: /integrations/cloud/ +[cloudflare docs]: /integrations/cloudflare/ +[coinmarketcap docs]: /integrations/coinmarketcap/ +[concord232 docs]: /integrations/concord232/ +[config docs]: /integrations/config/ +[configurator docs]: /integrations/configurator/ +[coolmaster docs]: /integrations/coolmaster/ +[coronavirus docs]: /integrations/coronavirus/ +[cover docs]: /integrations/cover/ +[daikin docs]: /integrations/daikin/ +[datadog docs]: /integrations/datadog/ +[deconz docs]: /integrations/deconz/ +[decora docs]: /integrations/decora/ +[default_config docs]: /integrations/default_config/ +[demo docs]: /integrations/demo/ +[denonavr docs]: /integrations/denonavr/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[dexcom docs]: /integrations/dexcom/ +[digitalloggers docs]: /integrations/digitalloggers/ +[directv docs]: /integrations/directv/ +[discovery docs]: /integrations/discovery/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[doorbird docs]: /integrations/doorbird/ +[dsmr docs]: /integrations/dsmr/ +[dte_energy_bridge docs]: /integrations/dte_energy_bridge/ +[dunehd docs]: /integrations/dunehd/ +[dyson docs]: /integrations/dyson/ +[ecobee docs]: /integrations/ecobee/ +[efergy docs]: /integrations/efergy/ +[elgato docs]: /integrations/elgato/ +[elkm1 docs]: /integrations/elkm1/ +[emby docs]: /integrations/emby/ +[emulated_kasa docs]: /integrations/emulated_kasa/ +[emulated_roku docs]: /integrations/emulated_roku/ +[esphome docs]: /integrations/esphome/ +[facebook docs]: /integrations/facebook/ +[fail2ban docs]: /integrations/fail2ban/ +[fan docs]: /integrations/fan/ +[fibaro docs]: /integrations/fibaro/ +[file docs]: /integrations/file/ +[filesize docs]: /integrations/filesize/ +[filter docs]: /integrations/filter/ +[fints docs]: /integrations/fints/ +[firmata docs]: /integrations/firmata/ +[flick_electric docs]: /integrations/flick_electric/ +[flume docs]: /integrations/flume/ +[flunearyou docs]: /integrations/flunearyou/ +[folder docs]: /integrations/folder/ +[forked_daapd docs]: /integrations/forked_daapd/ +[freebox docs]: /integrations/freebox/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[frontend docs]: /integrations/frontend/ +[frontier_silicon docs]: /integrations/frontier_silicon/ +[garadget docs]: /integrations/garadget/ +[garmin_connect docs]: /integrations/garmin_connect/ +[gdacs docs]: /integrations/gdacs/ +[generic docs]: /integrations/generic/ +[geo_location docs]: /integrations/geo_location/ +[geo_rss_events docs]: /integrations/geo_rss_events/ +[geonetnz_quakes docs]: /integrations/geonetnz_quakes/ +[geonetnz_volcano docs]: /integrations/geonetnz_volcano/ +[gios docs]: /integrations/gios/ +[glances docs]: /integrations/glances/ +[goalzero docs]: /integrations/goalzero/ +[gogogate2 docs]: /integrations/gogogate2/ +[google_assistant docs]: /integrations/google_assistant/ +[google_translate docs]: /integrations/google_translate/ +[gree docs]: /integrations/gree/ +[greeneye_monitor docs]: /integrations/greeneye_monitor/ +[griddy docs]: /integrations/griddy/ +[group docs]: /integrations/group/ +[gtfs docs]: /integrations/gtfs/ +[guardian docs]: /integrations/guardian/ +[hangouts docs]: /integrations/hangouts/ +[harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ +[heos docs]: /integrations/heos/ +[hikvision docs]: /integrations/hikvision/ +[hikvisioncam docs]: /integrations/hikvisioncam/ +[hisense_aehw4a1 docs]: /integrations/hisense_aehw4a1/ +[history docs]: /integrations/history/ +[history_stats docs]: /integrations/history_stats/ +[home_connect docs]: /integrations/home_connect/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homematic docs]: /integrations/homematic/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[html5 docs]: /integrations/html5/ +[http docs]: /integrations/http/ +[htu21d docs]: /integrations/htu21d/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[hvv_departures docs]: /integrations/hvv_departures/ +[hyperion docs]: /integrations/hyperion/ +[iaqualink docs]: /integrations/iaqualink/ +[icloud docs]: /integrations/icloud/ +[image_processing docs]: /integrations/image_processing/ +[imap_email_content docs]: /integrations/imap_email_content/ +[influxdb docs]: /integrations/influxdb/ +[insteon docs]: /integrations/insteon/ +[ios docs]: /integrations/ios/ +[ipp docs]: /integrations/ipp/ +[iqvia docs]: /integrations/iqvia/ +[isy994 docs]: /integrations/isy994/ +[izone docs]: /integrations/izone/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[juicenet docs]: /integrations/juicenet/ +[kankun docs]: /integrations/kankun/ +[kef docs]: /integrations/kef/ +[kira docs]: /integrations/kira/ +[kodi docs]: /integrations/kodi/ +[konnected docs]: /integrations/konnected/ +[lcn docs]: /integrations/lcn/ +[lg_netcast docs]: /integrations/lg_netcast/ +[life360 docs]: /integrations/life360/ +[lifx docs]: /integrations/lifx/ +[light docs]: /integrations/light/ +[lightwave docs]: /integrations/lightwave/ +[litejet docs]: /integrations/litejet/ +[local_ip docs]: /integrations/local_ip/ +[lock docs]: /integrations/lock/ +[logbook docs]: /integrations/logbook/ +[logentries docs]: /integrations/logentries/ +[logi_circle docs]: /integrations/logi_circle/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[marytts docs]: /integrations/marytts/ +[maxcube docs]: /integrations/maxcube/ +[mcp23017 docs]: /integrations/mcp23017/ +[media_player docs]: /integrations/media_player/ +[media_source docs]: /integrations/media_source/ +[melcloud docs]: /integrations/melcloud/ +[met docs]: /integrations/met/ +[meteo_france docs]: /integrations/meteo_france/ +[metoffice docs]: /integrations/metoffice/ +[mfi docs]: /integrations/mfi/ +[mhz19 docs]: /integrations/mhz19/ +[miflora docs]: /integrations/miflora/ +[mikrotik docs]: /integrations/mikrotik/ +[mill docs]: /integrations/mill/ +[min_max docs]: /integrations/min_max/ +[minecraft_server docs]: /integrations/minecraft_server/ +[mjpeg docs]: /integrations/mjpeg/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[mold_indicator docs]: /integrations/mold_indicator/ +[mqtt docs]: /integrations/mqtt/ +[mqtt_eventstream docs]: /integrations/mqtt_eventstream/ +[myq docs]: /integrations/myq/ +[mysensors docs]: /integrations/mysensors/ +[neato docs]: /integrations/neato/ +[nello docs]: /integrations/nello/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[nexia docs]: /integrations/nexia/ +[notify docs]: /integrations/notify/ +[notion docs]: /integrations/notion/ +[nsw_fuel_station docs]: /integrations/nsw_fuel_station/ +[nuheat docs]: /integrations/nuheat/ +[nut docs]: /integrations/nut/ +[nws docs]: /integrations/nws/ +[nzbget docs]: /integrations/nzbget/ +[oem docs]: /integrations/oem/ +[omnilogic docs]: /integrations/omnilogic/ +[onewire docs]: /integrations/onewire/ +[onvif docs]: /integrations/onvif/ +[open_energy_view docs]: /integrations/open_energy_view/ +[openhardwaremonitor docs]: /integrations/openhardwaremonitor/ +[openhome docs]: /integrations/openhome/ +[openuv docs]: /integrations/openuv/ +[openweathermap docs]: /integrations/openweathermap/ +[orvibo docs]: /integrations/orvibo/ +[ovo_energy docs]: /integrations/ovo_energy/ +[ozw docs]: /integrations/ozw/ +[panasonic_viera docs]: /integrations/panasonic_viera/ +[pandora docs]: /integrations/pandora/ +[panel_iframe docs]: /integrations/panel_iframe/ +[persistent_notification docs]: /integrations/persistent_notification/ +[philips_js docs]: /integrations/philips_js/ +[pi4ioe5v9xxxx docs]: /integrations/pi4ioe5v9xxxx/ +[pilight docs]: /integrations/pilight/ +[ping docs]: /integrations/ping/ +[plaato docs]: /integrations/plaato/ +[plant docs]: /integrations/plant/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[point docs]: /integrations/point/ +[powerwall docs]: /integrations/powerwall/ +[profiler docs]: /integrations/profiler/ +[progettihwsw docs]: /integrations/progettihwsw/ +[proximity docs]: /integrations/proximity/ +[ps4 docs]: /integrations/ps4/ +[pushbullet docs]: /integrations/pushbullet/ +[pvoutput docs]: /integrations/pvoutput/ +[pvpc_hourly_pricing docs]: /integrations/pvpc_hourly_pricing/ +[python_script docs]: /integrations/python_script/ +[rachio docs]: /integrations/rachio/ +[radarr docs]: /integrations/radarr/ +[rainmachine docs]: /integrations/rainmachine/ +[random docs]: /integrations/random/ +[recorder docs]: /integrations/recorder/ +[reddit docs]: /integrations/reddit/ +[remember_the_milk docs]: /integrations/remember_the_milk/ +[remote docs]: /integrations/remote/ +[rest docs]: /integrations/rest/ +[rest_command docs]: /integrations/rest_command/ +[rfxtrx docs]: /integrations/rfxtrx/ +[ring docs]: /integrations/ring/ +[risco docs]: /integrations/risco/ +[roomba docs]: /integrations/roomba/ +[rpi_gpio_pwm docs]: /integrations/rpi_gpio_pwm/ +[ruckus_unleashed docs]: /integrations/ruckus_unleashed/ +[sabnzbd docs]: /integrations/sabnzbd/ +[samsungtv docs]: /integrations/samsungtv/ +[scene docs]: /integrations/scene/ +[scrape docs]: /integrations/scrape/ +[season docs]: /integrations/season/ +[sense docs]: /integrations/sense/ +[sentry docs]: /integrations/sentry/ +[sharkiq docs]: /integrations/sharkiq/ +[shell_command docs]: /integrations/shell_command/ +[shelly docs]: /integrations/shelly/ +[shopping_list docs]: /integrations/shopping_list/ +[sigfox docs]: /integrations/sigfox/ +[simplisafe docs]: /integrations/simplisafe/ +[simulated docs]: /integrations/simulated/ +[slack docs]: /integrations/slack/ +[sleepiq docs]: /integrations/sleepiq/ +[smappee docs]: /integrations/smappee/ +[smarthab docs]: /integrations/smarthab/ +[smtp docs]: /integrations/smtp/ +[solarlog docs]: /integrations/solarlog/ +[somfy docs]: /integrations/somfy/ +[sonarr docs]: /integrations/sonarr/ +[sonos docs]: /integrations/sonos/ +[speedtestdotnet docs]: /integrations/speedtestdotnet/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[squeezebox docs]: /integrations/squeezebox/ +[ssdp docs]: /integrations/ssdp/ +[statsd docs]: /integrations/statsd/ +[steam_online docs]: /integrations/steam_online/ +[stream docs]: /integrations/stream/ +[sun docs]: /integrations/sun/ +[synology_dsm docs]: /integrations/synology_dsm/ +[system_log docs]: /integrations/system_log/ +[systemmonitor docs]: /integrations/systemmonitor/ +[tado docs]: /integrations/tado/ +[tasmota docs]: /integrations/tasmota/ +[telegram_bot docs]: /integrations/telegram_bot/ +[tellduslive docs]: /integrations/tellduslive/ +[template docs]: /integrations/template/ +[tesla docs]: /integrations/tesla/ +[threshold docs]: /integrations/threshold/ +[tibber docs]: /integrations/tibber/ +[tile docs]: /integrations/tile/ +[time_date docs]: /integrations/time_date/ +[tod docs]: /integrations/tod/ +[totalconnect docs]: /integrations/totalconnect/ +[tplink docs]: /integrations/tplink/ +[tradfri docs]: /integrations/tradfri/ +[transmission docs]: /integrations/transmission/ +[transport_nsw docs]: /integrations/transport_nsw/ +[trend docs]: /integrations/trend/ +[tts docs]: /integrations/tts/ +[tuya docs]: /integrations/tuya/ +[twentemilieu docs]: /integrations/twentemilieu/ +[twitch docs]: /integrations/twitch/ +[uk_transport docs]: /integrations/uk_transport/ +[unifi docs]: /integrations/unifi/ +[upb docs]: /integrations/upb/ +[upcloud docs]: /integrations/upcloud/ +[upnp docs]: /integrations/upnp/ +[uptime docs]: /integrations/uptime/ +[vesync docs]: /integrations/vesync/ +[vilfo docs]: /integrations/vilfo/ +[vizio docs]: /integrations/vizio/ +[volumio docs]: /integrations/volumio/ +[wake_on_lan docs]: /integrations/wake_on_lan/ +[water_heater docs]: /integrations/water_heater/ +[watson_iot docs]: /integrations/watson_iot/ +[weather docs]: /integrations/weather/ +[webhook docs]: /integrations/webhook/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[wiffi docs]: /integrations/wiffi/ +[withings docs]: /integrations/withings/ +[wled docs]: /integrations/wled/ +[worldclock docs]: /integrations/worldclock/ +[wsdot docs]: /integrations/wsdot/ +[xbox docs]: /integrations/xbox/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yamaha_musiccast docs]: /integrations/yamaha_musiccast/ +[yessssms docs]: /integrations/yessssms/ +[zabbix docs]: /integrations/zabbix/ +[zengge docs]: /integrations/zengge/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[zhong_hong docs]: /integrations/zhong_hong/ +[zone docs]: /integrations/zone/ +[zoneminder docs]: /integrations/zoneminder/ +[zwave docs]: /integrations/zwave/ diff --git a/source/_posts/2020-11-06-android-300-release.markdown b/source/_posts/2020-11-06-android-300-release.markdown new file mode 100644 index 00000000000..d434b8584e7 --- /dev/null +++ b/source/_posts/2020-11-06-android-300-release.markdown @@ -0,0 +1,130 @@ +--- +title: "Home Assistant Companion Android App Release 3.0.0" +description: "What's new with the Home Assistant Companion Android App in 3.0.0" +date: 2020-11-06 00:00:00 +date_formatted: "November 06, 2020" +comments: true +author: Daniel Shokouhi +categories: Release-Notes +og_image: /images/blog/2020-11-06-android-300-release/Companion.png +--- + +Hey everyone its been a little while since we last spoke. We have a brand new Home Assistant Companion for Android release that we are excited to get into your hands and will roll out over the next day or so in the Google Play store. + +Before we get into the release details I'd like to mention that this month marks the [1 year anniversary](https://youtu.be/tc17q1Zn0Xs?t=3487) of the Home Assistant Companion app being offered in the Google Play Store! Just to think how far along the entire app has come from its initial alpha state to what is currently being offered in today's release. Can you believe its already been a year? + +It has been pretty busy over on the Android side of things during Hacktoberfest! We have seen a total of 84 pull requests from a wide range of contributors that we are thankful for, so thank you for all of your efforts! In case you missed it we actually had a release shortly after version 2.4.0 but as we did not have an accompanying blog post, we'll cover whats new since we last spoke in this post. All of the features listed below are already documented on the [Companion](https://companion.home-assistant.io/) site, please be sure to check in there for greater details. Before we continue with what's new lets go over the breaking changes for this release. + +## Breaking Changes + +In our [last blog post](https://www.home-assistant.io/blog/2020/09/12/android-240-release/) we mentioned that we were going to be breaking up some sensors and their attributes. As of 3.0.0 we have completed this task and no longer have non-static attributes as part of any sensor. If you are missing any data please check the Manage Sensors screen under App Configuration and enable the sensor you were previously using as an attribute. + +Another major breaking change in this release is that the widgets were refactored to align with the application architecture. Unfortunately this means that some existing widgets may disappear from your home screen and will need to be recreated. We apologize for this and are unable to bring back the existing widgets that were lost. If you forgot what data was there we do have that saved, more on that down [below](#other-enhancements). + +## Onboarding Improvements + +The first big change is that our onboarding screen has changed, we now ask the user to enter their preferred device name that gets attached to all entities that are created by the app. This was a source of frustration for some users as this meant that anytime they logged into the app they would then need to rename their entities to the name that they actually want. By default the device name is the device model but that is not meaningful to some users, especially if they have more than one device of the same model. + + +

+Screenshot of the new onboarding flow +Screenshot of the new onboarding flow. +

+ + +## New Sensors + +We have several new sensors to welcome to the app, all of which are disabled by default. The first set of sensors were actually introduced in 2.5.0: + +- [Traffic Stat sensors](https://companion.home-assistant.io/docs/core/sensors#traffic-stats-sensor) - Sensors whose state represent the amount of data sent and received by the device. Mobile data may not be accurate, it depends on the data that we get from the API. + +The following sensors are new in 3.0.0: + +- [Keyguard sensors](https://companion.home-assistant.io/docs/core/sensors#keyguard-sensors) - Sensors that represent various states from the Keyguard API, such as if a device is currently locked or has a password setup. These sensors will update during the periodic 15 minute interval. +- [Last Notification sensor](https://companion.home-assistant.io/docs/core/sensors#last-notification-sensor) - A very powerful sensor that requires a special permission you must grant to read all notifications posted on the device. All attributes of the notification are provided as attributes for the sensor. You can think of this sensor as a great way to integrate any app that posts a notification to your device allowing you to automate around it. Personally I have been using it to integrate a food delivery app, to detect when my order will be delivered and automate around it. This sensor will update as soon as a notification is posted. +- [Last Update Trigger](https://companion.home-assistant.io/docs/core/sensors#last-update-trigger-sensor) - A sensor whose state will represent the reason for the last update that was sent to your Home Assistant instance. This sensor will update anytime an update is sent to your Home Assistant instance. + +## Sensor Settings + +We didn't stop at just adding new sensors, we also made enhancements to the overall sensor experience. Starting from version 2.5.0 certain sensors have custom settings that can help with what updates actually get sent to your Home Assistant instance. + + +

+Screenshot of location settings +Screenshot of location settings. +

+ +- Next Alarm - This sensor has a setting for an allow list. This means that if you have an app that reports really odd timestamps as an actual alarm, you can now ignore them by telling the app which packages to send reports from. By default the list is blank. Tasker users are recommended to make use of this setting. +- Last Notification - This sensor also has an allow list to let the user create a list of apps from which they want notification data from. By default all notifications are sent to your Home Assistant server. We highly recommend that you set up an allow list as soon as you can think of one to prevent a high amount of updates. You will be surprised by the amount of data that will show up in a short time period. +- Last Reboot - A bug was discovered where sometimes the timing in the calculation of the device's last reboot could be off causing an unnecessary update. There is now a deadband setting to allow you to adjust the timing to ignore updates. By default this is set to 1 minute, you most likely won't need to change this. +- Location Sensors - All 3 location sensors now have settings to allow you to adjust the minimum accuracy required to send a update to your Home Assistant server. There is also a setting to adjust the minimum amount of time between updates. This should help a lot of users out who don't get the location results they expect. We recommend changing this setting after you evaluate all of the location fixes in 3.0.0 as location tracking may already be improved without needing to adjust these. +- WiFi BSSID - This sensor has a setting that will allow the user to provide an alias for the currently connected BSSID. Not everyone can remember a MAC address let alone dozens of them. This setting is designed to help out those who use this sensor to make better sense of things without the need for secrets or templates. If you live in a household with multiple access points you may find it useful to set up an alias to help with things like room presence. By default this sensor reports the connected MAC address. + + +## Android 11 Power Menu + +We now integrate with Android 11's power menu device control feature. The following domains are [currently supported](https://companion.home-assistant.io/docs/integrations/android-power-menu): + +- `automation` On/Off +- `climate` Temperature slider +- `cover` Open/Close +- `fan` On/Off, speed slider +- `input_boolean` On/Off +- `input_number` Number control slider +- `light` On/Off, Brightness control slider +- `lock` Lock/Unlock +- `scene` Turn on scene +- `script` Turn on script +- `switch` On/Off + + +

+Screenshot of power menu +Screenshot of power menu. +

+ + +## Notification Improvements + +There have been several improvements to notifications as well. + +- An event gets sent upon a notification being [cleared](https://companion.home-assistant.io/docs/notifications/notification-cleared) along with all notification data. +- Notifications can make use of the alarm stream to bypass a device's ringer mode setting. This can be useful if there is an important event such as an alarm being triggered. Make sure to check the updated Android examples on the [companion site](https://companion.home-assistant.io/docs/notifications/critical-notifications). +- [Text To Speech notifications](https://companion.home-assistant.io/docs/notifications/notifications-basic#text-to-speech-notifications), with the ability to use the alarm stream if desired. By default it will use the device's music stream. There is also an additional option to temporarily change the volume level to the maximum level while speaking, the level would then restored to what it was previously. +- New device [commands](https://companion.home-assistant.io/docs/notifications/notification-commands) to control your phone: broadcasting an intent to another app, controlling Do Not Disturb and ringer mode. +- Opening another app with an [actionable notification](https://companion.home-assistant.io/docs/notifications/actionable-notifications#building-automations-for-notification-actions), make sure to follow the Android examples. + + +## Other Enhancements + +We have also spent time making improvements to all other areas most notably inside App Configuration: + +

+Screenshot of settings +Screenshot of settings. +

+ +- App language can now be overridden to match a user's profile, this will impact the name of entities that get added as well as the App Configuration appearance. By default your device will use your phones language however, we noticed some users actually prefer Home Assistant to always be in a different language on their device. With this feature you can now set the language to be one of any that are supported by the app. You can also help us translate the app on [Lokalise](https://lokalise.com/public/145814835dd655bc5ab0d0.36753359/). +- History of recently received notifications, along with all data that was sent +- Notification rate limit information to help you understand if you are about to go over the daily limit. +- Editable widgets, with the ability to delete missing widgets as mentioned in the [breaking changes](#breaking-changes). This is really helpful if you ever created a widget and realized you needed to make one more adjustment. +- Widgets now update when the screen turns on to provide faster updates +- A new widget to control any [media player](https://companion.home-assistant.io/docs/integrations/android-widgets#media-player) + +

+Screenshot of media player widget +Screenshot of media player widget. +

+ +- Enable/Disable all sensors +- [Events](https://companion.home-assistant.io/docs/integrations/app-events) for entering or exiting a zone along with all location data +- Link to the current release changelog on GitHub +- File upload support for add-ons or person image upload +- The ability to opt out of sending crash reports to help the team investigate crashes. If you decide to opt out please make sure to report issues on GitHub otherwise we may not know the issue exists. +- Lots of location fixes for more accurate reporting +- Lots of bug fixes and other miscellaneous enhancements + + +Big thank you to everyone involved. Hope you take the time to digest all the new features. Looking forward to all the new use cases and feature requests everyone has been having. + +The full changelog can be found on [GitHub](https://github.com/home-assistant/android/releases/tag/3.0.0). diff --git a/source/_redirects b/source/_redirects index 60a5ce98966..48dd17cab53 100644 --- a/source/_redirects +++ b/source/_redirects @@ -2097,6 +2097,7 @@ /getting-started/z-wave-installation /docs/z-wave/installation /getting-started/z-wave-panel /docs/z-wave/control-panel /getting-started/z-wave-device-specific /docs/z-wave/device-specific +/hassio/zwave /docs/z-wave /topics/events /docs/configuration/events /topics/packages /docs/configuration/packages /topics/platform_options /docs/configuration/platform_options diff --git a/source/conference/index.markdown b/source/conference/index.markdown index 815f8b50752..127b0b5c5f6 100644 --- a/source/conference/index.markdown +++ b/source/conference/index.markdown @@ -20,7 +20,7 @@ We're currently looking for people that want to speak at the conference. Talks w Talks can be about things you created, like a great automation, an amazing Lovelace dashboard, or a cool new feature. It can also be about your experience with Home Assistant, like how it has improved peoples lives, how you use it for education or some other unique use case. -If you're interested in speaking, [fill in the form](https://forms.gle/2bxEzk4kWx4fPVMPA). The deadline for submitting a talk is October 31, 2020. +_The deadline for submitting a talk was October 31, 2020._ ## Speakers & Schedule diff --git a/source/hassio/zwave.markdown b/source/hassio/zwave.markdown deleted file mode 100644 index 323deb20f35..00000000000 --- a/source/hassio/zwave.markdown +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Z-Wave" -description: "Instructions on how-to enable Z-Wave with Hass.io." ---- - -To enable Z-Wave, plug your Z-Wave USB stick into your Raspberry Pi 3 and add the following to your `configuration.yaml`: - -```yaml -zwave: - usb_path: /dev/ttyACM0 -``` - -## RAZBERRY BOARD - -If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following line into `config.txt` (you have to access that on the SD card directly. Simply plug it into your PC and edit it there. -The `config.txt` is not accessible from the Home Assistant Operating System, you may need to open the SD card on a Windows or Linux system: - -```txt -dtoverlay=pi3-miniuart-bt -``` - -After that, you need to change `usb_path` to `/dev/ttyAMA0` in your `configuration.yaml`. - -```yaml -zwave: - usb_path: /dev/ttyAMA0 -``` - -## HUSBZB-1 - -```yaml -zwave: - usb_path: /dev/ttyUSB0 - -zha: - usb_path: /dev/ttyUSB1 - database_path: /config/zigbee.db -``` - -## Ubuntu and Debian based host system - -If your instance is running on a Debian-based system, e.g., Ubuntu, the ModemManager may cause unexpected issues. - -The ModemManager might be claiming or interfering with a USB Z-Wave stick, like the much used Aeotec ones. If you experience issues where the stick stops responding, needs to be re-plugged or Home Assistant needs a restart to get Z-Wave back, chances are high that the ModemManager is causing the issue. - -Execute the following command on your host system to disable the ModemManager: - -```bash -systemctl disable ModemManager.service -``` - -### Finding the path - -If the above defaults don't work, you can check what hardware has been found using the [`ha` command](/hassio/commandline/#hardware): - -```bash -ha hardware info -``` - -Or you can use the UI and look in the *System* section of the *Supervisor* menu. There you'll find a *Hardware* button which will list all the hardware found. - -## Further reading - -For more information on using Z-Wave, see the [main documentation](/docs/z-wave/). diff --git a/source/images/blog/2020-10-0.117/compact-header.png b/source/images/blog/2020-10-0.117/compact-header.png new file mode 100644 index 00000000000..898c4035abd Binary files /dev/null and b/source/images/blog/2020-10-0.117/compact-header.png differ diff --git a/source/images/blog/2020-10-0.117/counter-timer.png b/source/images/blog/2020-10-0.117/counter-timer.png new file mode 100644 index 00000000000..b36390e4577 Binary files /dev/null and b/source/images/blog/2020-10-0.117/counter-timer.png differ diff --git a/source/images/blog/2020-10-0.117/quick-bar.gif b/source/images/blog/2020-10-0.117/quick-bar.gif new file mode 100644 index 00000000000..494d374f113 Binary files /dev/null and b/source/images/blog/2020-10-0.117/quick-bar.gif differ diff --git a/source/images/blog/2020-10-0.117/social.png b/source/images/blog/2020-10-0.117/social.png new file mode 100644 index 00000000000..786826d3bf4 Binary files /dev/null and b/source/images/blog/2020-10-0.117/social.png differ diff --git a/source/images/blog/2020-10-0.117/yaml-automation-editor.png b/source/images/blog/2020-10-0.117/yaml-automation-editor.png new file mode 100644 index 00000000000..c2c653310c7 Binary files /dev/null and b/source/images/blog/2020-10-0.117/yaml-automation-editor.png differ diff --git a/source/images/blog/2020-11-06-android-300-release/Companion.png b/source/images/blog/2020-11-06-android-300-release/Companion.png new file mode 100644 index 00000000000..21fb311e7bd Binary files /dev/null and b/source/images/blog/2020-11-06-android-300-release/Companion.png differ diff --git a/source/images/blog/2020-11-06-android-300-release/location_sensor_settings.png b/source/images/blog/2020-11-06-android-300-release/location_sensor_settings.png new file mode 100644 index 00000000000..1db2bba3023 Binary files /dev/null and b/source/images/blog/2020-11-06-android-300-release/location_sensor_settings.png differ diff --git a/source/images/blog/2020-11-06-android-300-release/media_player_widget.png b/source/images/blog/2020-11-06-android-300-release/media_player_widget.png new file mode 100644 index 00000000000..42ffa474633 Binary files /dev/null and b/source/images/blog/2020-11-06-android-300-release/media_player_widget.png differ diff --git a/source/images/blog/2020-11-06-android-300-release/onboarding.png b/source/images/blog/2020-11-06-android-300-release/onboarding.png new file mode 100644 index 00000000000..89d1ca45456 Binary files /dev/null and b/source/images/blog/2020-11-06-android-300-release/onboarding.png differ diff --git a/source/images/blog/2020-11-06-android-300-release/power_menu.png b/source/images/blog/2020-11-06-android-300-release/power_menu.png new file mode 100644 index 00000000000..ce5f582d77c Binary files /dev/null and b/source/images/blog/2020-11-06-android-300-release/power_menu.png differ diff --git a/source/images/blog/2020-11-06-android-300-release/settings.png b/source/images/blog/2020-11-06-android-300-release/settings.png new file mode 100644 index 00000000000..1e11434714e Binary files /dev/null and b/source/images/blog/2020-11-06-android-300-release/settings.png differ diff --git a/source/lovelace/dashboards-and-views.markdown b/source/lovelace/dashboards-and-views.markdown index 1baafdb87be..77f264b2d9f 100644 --- a/source/lovelace/dashboards-and-views.markdown +++ b/source/lovelace/dashboards-and-views.markdown @@ -113,12 +113,12 @@ dashboards: type: string show_in_sidebar: required: false - description: Should this view be shown in the sidebar. + description: Should this dashboard be shown in the sidebar. type: boolean default: true require_admin: required: false - description: Should this view be only accessible for admin users. + description: Should this dashboard be only accessible for admin users. type: boolean default: false {% endconfiguration %} diff --git a/source/lovelace/index.markdown b/source/lovelace/index.markdown index ef7ab61eeef..8e06d523737 100644 --- a/source/lovelace/index.markdown +++ b/source/lovelace/index.markdown @@ -29,7 +29,7 @@ To try it yourself, check out [the demo](https://demo.home-assistant.io). ## Additional Lovelace Resources -- [Awesome HA](https://www.awesome-ha.com/#lovelace-ui) +- [Awesome HA](https://www.awesome-ha.com/#lovelace-user-interface) - [Community Custom Cards](https://github.com/custom-cards) - [Home Assistant Cards](https://home-assistant-cards.bessarabov.com/) - [Material Design Icons](https://materialdesignicons.com/tag/community)