diff --git a/Gemfile.lock b/Gemfile.lock
index e7015419b2d..5513812557f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -29,7 +29,7 @@ GEM
ffi (1.15.0-x64-mingw32)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
- i18n (1.8.9)
+ i18n (1.8.10)
concurrent-ruby (~> 1.0)
jekyll (4.2.0)
addressable (~> 2.4)
@@ -66,7 +66,7 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.5.0)
+ listen (3.5.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
diff --git a/sass/oscailte/base/_navigation.scss b/sass/oscailte/base/_navigation.scss
index 6b3e1a8c3e8..a844c01f786 100644
--- a/sass/oscailte/base/_navigation.scss
+++ b/sass/oscailte/base/_navigation.scss
@@ -31,7 +31,7 @@ body {
float: left;
}
-$menu-collapse: 944px;
+$menu-collapse: 1024px;
// @media only screen and (max-width: $lap-end){
@media only screen and (max-width: $menu-collapse) {
diff --git a/source/_headers b/source/_headers
index d33567d39d7..5c1916e5f10 100644
--- a/source/_headers
+++ b/source/_headers
@@ -18,3 +18,5 @@
Cache-Control: public, max-age: 1800, s-maxage=604800, must-revalidate
/static/*
Cache-Control: public, max-age: 1800, s-maxage=604800, must-revalidate
+/integrations.json
+ Access-Control-Allow-Origin: *
\ No newline at end of file
diff --git a/source/_includes/installation/operating_system.md b/source/_includes/installation/operating_system.md
index 043b9847111..517aca52015 100644
--- a/source/_includes/installation/operating_system.md
+++ b/source/_includes/installation/operating_system.md
@@ -91,7 +91,8 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
{% elsif page.installation_type == 'alternative' %}
- [KVM/Proxmox][qcow2] (.qcow2)
- [VMware ESXi/vSphere][Virtual Appliance] (.ova)
-{% elsif page.installation_type == 'windows' %}
+{% endif %}
+{% if page.installation_type == 'windows' %}
- [Hyper-V][vhdx] (.vhdx)
{% endif %}
{% endif %}
@@ -153,8 +154,8 @@ _All these can be extended if your usage calls for more resources._
- title: VMware ESXi/vSphere
content: |
Use the “E1001” or “E1001E” virtual network adapater. There are confirmed mDNS/Multicast discovery issues when using VMware’s “VMXnet3” virtual network adapter.
-
-{% elsif page.installation_type == 'windows' %}
+{% endif %}
+{% if page.installation_type == 'windows' %}
- title: Hyper-V
content: |
diff --git a/source/_integrations/cover.template.markdown b/source/_integrations/cover.template.markdown
index c04930f1a33..0de715b5881 100644
--- a/source/_integrations/cover.template.markdown
+++ b/source/_integrations/cover.template.markdown
@@ -159,16 +159,14 @@ cover:
friendly_name: "Garage Door"
position_template: "{{ states('sensor.garage_door') }}"
open_cover:
- - condition:
- condition: state
+ - condition: state
entity_id: sensor.garage_door
state: "off"
- service: switch.turn_on
target:
entity_id: switch.garage_door
close_cover:
- - condition:
- condition: state
+ - condition: state
entity_id: sensor.garage_door
state: "on"
- service: switch.turn_off
diff --git a/source/_integrations/faadelays.markdown b/source/_integrations/faa_delays.markdown
similarity index 98%
rename from source/_integrations/faadelays.markdown
rename to source/_integrations/faa_delays.markdown
index 0defacdac88..0944ed0f709 100644
--- a/source/_integrations/faadelays.markdown
+++ b/source/_integrations/faa_delays.markdown
@@ -8,7 +8,7 @@ ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@ntilley905'
-ha_domain: faadelays
+ha_domain: faa_delays
---
The FAA Delays integration collects and displays information about delays at US Airports based on the
diff --git a/source/_integrations/opencv.markdown b/source/_integrations/opencv.markdown
index e22621450c2..821cfe0a181 100644
--- a/source/_integrations/opencv.markdown
+++ b/source/_integrations/opencv.markdown
@@ -20,14 +20,12 @@ To setup OpenCV with Home Assistant, add the following section to your `configur
# Example configuration.yaml entry
image_processing:
- platform: opencv
- name: Front Door Faces
source:
- entity_id: camera.front_door
classifier:
mom: /path/to/classifier.xml
```
-- **name** (*Required*): The name of the OpenCV image processor.
- **source** array (*Required*): List of image sources.
- **entity_id** (*Required*): A camera entity id to get picture from.
- **name** (*Optional*): This parameter allows you to override the name of your `image_processing` entity.
diff --git a/source/_integrations/tasmota.markdown b/source/_integrations/tasmota.markdown
index 4c39dfb4a08..61371b74b8d 100644
--- a/source/_integrations/tasmota.markdown
+++ b/source/_integrations/tasmota.markdown
@@ -27,7 +27,8 @@ This integration allows you to control [Tasmota](https://tasmota.github.io/docs/
## Requirements
-- MQTT server and the [MQTT integration](/integrations/mqtt/) set up in Home Assistant.
+- MQTT broker and the [MQTT integration](/integrations/mqtt/) set up in Home Assistant.
+- Tasmota devices' MQTT setting configured to communicate with the MQTT broker.
- Tasmota devices flashed with version 9.2, or later.
- Tasmota devices configured for native discovery (`SetOption19 0`)
@@ -46,3 +47,7 @@ Tasmota Buttons, Fans, Lights, relays, Sensors, Shutters and Switches are suppor

{% include integrations/config_flow.md %}
+
+You must also configure each Tasmota device's MQTT settings to communicate with whatever MQTT broker you are using. Enter the broker address under host and enter a username/password combination that allows access to the broker.
+
+If using the Mosquitto Broker add-on for Home Assistant, first create a new Home Assistant user under {% my users title="Configuration > Users" %}. Then, in Tasmota > Configure MQTT under "Host" enter the address of your Home Assistant instance and under "User" and "Password" enter the Home Assistant user you just created.
diff --git a/source/_integrations/yandex_transport.markdown b/source/_integrations/yandex_transport.markdown
index bf890d1c3c7..35ec3682a4a 100644
--- a/source/_integrations/yandex_transport.markdown
+++ b/source/_integrations/yandex_transport.markdown
@@ -73,7 +73,7 @@ sensor:
## Options For Entities
You can configure view information about the next bus using Lovelace card.
-To enable displaying the relative time in your `default_vew` add the following lines:
+To enable displaying the relative time in your `default_view` add the following lines:
```yaml
# Example default_view entry
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 1dc4f67d97b..94cffadd918 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -66,14 +66,13 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- [RaspBee II (a.k.a. RaspBee 2) Raspberry Pi Shield from dresden elektronik](https://www.dresden-elektronik.com/product/raspbee-II.html)
- [RaspBee Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee)
- Silicon Labs EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- - [ITEAD Sonoff ZBBridge](https://www.itead.cc/smart-home/sonoff-zbbridge.html) (Note! This first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
+ - [ITead Zigbee 3.0 USB Dongle (EFR32MG21) Model 9888010100045](https://www.itead.cc/zigbee-3-0-usb-dongle.html)
+ - [ITead Sonoff ZBBridge](https://www.itead.cc/smart-home/sonoff-zbbridge.html) (Note! [WiFi-based bridges are not recommended for ZHA with EZSP radios](https://github.com/home-assistant/home-assistant.io/issues/17170). Also, this first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware to use as Serial-to-IP adapter](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
- [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee Ember 3581 USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/walthowd/husbzb-firmware))
- [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html)/[POPP ZB-Stick](https://shop.zwave.eu/detail/index/sArticle/2496) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587
- - Telegesis ETRX357USB (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))
- - Telegesis ETRX357USB-LRS (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))
- - Telegesis ETRX357USB-LRS+8M (Note! This first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))
+ - Telegesis ETRX357USB/ETRX357USB-LR/ETRX357USB-LRS+8M (Note! These first have to be [flashed with other EmberZNet firmware](https://github.com/walthowd/husbzb-firmware))
- Texas Instruments based radios with Z-Stack 3.x.x (via the [zigpy-znp](https://github.com/zha-ng/zigpy-znp) library for zigpy)
- [CC2652P/CC2652R/CC2652RB USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
- [CC1352P/CC1352R USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
diff --git a/source/_redirects b/source/_redirects
index 30ee4f54810..3de1f0fb905 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -2118,6 +2118,7 @@
/hassio/index /installation
/hassio/installation /installation
/hassio/installing_third_party_addons /common-tasks/os#installing-third-party-add-ons
+/integrations/faadelays /integrations/faa_delays
# Migrated Community Guides
/cookbook/apache_configuration https://community.home-assistant.io/t/reverse-proxy-with-apache/196942
diff --git a/source/integrations.json b/source/integrations.json
new file mode 100644
index 00000000000..d2c1d7e6865
--- /dev/null
+++ b/source/integrations.json
@@ -0,0 +1,14 @@
+---
+layout: none
+---
+{
+{%- for integration in site.integrations %}
+{%- assign target = integration.ha_domain | append: ".markdown" | prepend: "_integrations/" -%}
+{%- if integration.path == target %}
+ "{{integration.ha_domain}}": {
+ "title": "{{integration.title}}"
+ }{%- if forloop.last -%}{%- else -%},{%- endif -%}
+{%- endif -%}
+{%- endfor %}
+}
+
diff --git a/source/more-info/unhealthy/untrusted.markdown b/source/more-info/unhealthy/untrusted.markdown
new file mode 100644
index 00000000000..94c952a9190
--- /dev/null
+++ b/source/more-info/unhealthy/untrusted.markdown
@@ -0,0 +1,12 @@
+---
+title: "System detected untrusted content"
+description: "More information on why untrusted content marks an installation as unhealthy."
+---
+
+## The issue
+
+Home Assistant detected untrusted code. It looks like someone/something tried to inject not signed images or code into your Home Assistant system. But don't worry, we blocked this action and nothing was applied.
+
+## The solution
+
+Please make sure your network is not affected by an intruder and try it again. To reset this status, you need to restart the Supervisor.
diff --git a/source/more-info/unsupported/content_trust.markdown b/source/more-info/unsupported/content_trust.markdown
new file mode 100644
index 00000000000..21bc61f5eec
--- /dev/null
+++ b/source/more-info/unsupported/content_trust.markdown
@@ -0,0 +1,25 @@
+---
+title: "Ignored content trust"
+description: "More information on why disabling content-trust marks the installation as unsupported."
+---
+
+## The issue
+
+You have disabled the content-trust check. That means Home Assistant can't verify anymore if the content is trusted and was not modified by attackers.
+We strongly recommend to have this check enabled.
+
+For content-trust, we use the open source solution [CodeNotary](https://codenotary.io).
+
+## The solution
+
+To resolve this status, you need to re-enable the content-trust protection mechanism by using the CLI:
+
+```bash
+ha supervisor options --content-trust
+```
+
+When you have enabled the content-trust, restart the Supervisor.
+
+```bash
+ha supervisor restart
+```