diff --git a/Gemfile b/Gemfile
index e8ebf448207..b29288f0477 100644
--- a/Gemfile
+++ b/Gemfile
@@ -21,7 +21,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '2.1.0'
-gem 'nokogiri', '1.11.6'
+gem 'nokogiri', '1.11.7'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library
diff --git a/Gemfile.lock b/Gemfile.lock
index d4fd0b8d79d..541435c2c3c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -74,10 +74,10 @@ GEM
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
- nokogiri (1.11.6)
+ nokogiri (1.11.7)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
- nokogiri (1.11.6-x64-mingw32)
+ nokogiri (1.11.7-x64-mingw32)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
@@ -130,7 +130,7 @@ DEPENDENCIES
jekyll-sitemap (= 1.4.0)
jekyll-time-to-read (= 0.1.2)
jekyll-toc (= 0.17.1)
- nokogiri (= 1.11.6)
+ nokogiri (= 1.11.7)
rake (= 13.0.3)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
diff --git a/_config.yml b/_config.yml
index d3332543cac..23fd2e6247a 100644
--- a/_config.yml
+++ b/_config.yml
@@ -105,8 +105,8 @@ social:
# Home Assistant release details
current_major_version: 2021
current_minor_version: 6
-current_patch_version: 0
-date_released: 2021-06-02
+current_patch_version: 2
+date_released: 2021-06-04
# 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/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown
index 83bb9add61f..364bc1572f6 100644
--- a/source/_docs/mqtt/broker.markdown
+++ b/source/_docs/mqtt/broker.markdown
@@ -92,68 +92,6 @@ mqtt:
certificate: /home/paulus/downloads/mosquitto.org.crt
```
-### HiveMQ Cloud
-
-HiveMQ Cloud is a fully managed MQTT broker that provides you a private broker.
-A free plan for up to 100 devices is available. You can see all of HiveMQ's
-different plan options here:
-
-Home Assistant is not affiliated with HiveMQ Cloud and does not receive any kickbacks.
-
-1. [Create an account](http://console.hivemq.cloud) (links to sign up).
-2. When sign up you will receive automatically the free plan that allows you to
- connect up to 100 devices.
-3. Create MQTT credentials in the "Access Management" tab of your
- "Cluster Detail View" you can use to connect Home Assistant
- and any MQTT device.
-4. [Download](https://letsencrypt.org/certs/trustid-x3-root.pem) the trusted
- certificate from let’s encrypt to ensure secure communication between
- Home Assistant and your HiveMQ Cloud cluster.
-5. Copy the broker info to your `configuration.yaml`. You can find the
- "Broker Hostname" in the "Cluster Overview". Use the credentials you just
- created as username and password and the path from the downloaded certificate:
- 
-
-```yaml
-mqtt:
- broker: "HIVEMQ_BROKER_HOSTNAME"
- port: 8883
- username: "MQTT_USERNAME"
- password: "MQTT_PASSWORD"
- certificate: PATH_TO_STORED_CERTIFICATE
-```
-
-After restarting Home Assistant, your MQTT integration connected to HiveMQ Cloud
-will appear.
-
-### CloudMQTT
-
-[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance. Plans start at 5$ per month.
-
-
-Home Assistant is not affiliated with CloudMQTT nor will receive any kickbacks.
-
-
- 1. [Create an account](https://customer.cloudmqtt.com/login)
- 2. [Create a new CloudMQTT instance](https://customer.cloudmqtt.com/subscription/create)
- 3. From the control panel, click on the _Details_ button.
- 4. Create unique users for Home Assistant and each phone to connect
-Home Assistant will automatically load the correct certificate if you connect to an encrypted channel of CloudMQTT (port range 20000-30000).
-
-
If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then add `certificate: auto` to your broker configuration and restart Home Assistant.
diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown
index a543b9baa2e..5a79a75c638 100644
--- a/source/_integrations/alarm_control_panel.mqtt.markdown
+++ b/source/_integrations/alarm_control_panel.mqtt.markdown
@@ -125,6 +125,11 @@ device:
description: "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant."
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown
index 3c3f1dffb70..edd2575a06e 100644
--- a/source/_integrations/binary_sensor.mqtt.markdown
+++ b/source/_integrations/binary_sensor.mqtt.markdown
@@ -100,6 +100,11 @@ device_class:
description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend.
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
expire_after:
description: Defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`.
required: false
diff --git a/source/_integrations/buienradar.markdown b/source/_integrations/buienradar.markdown
index a16d885cace..71f2e00564f 100644
--- a/source/_integrations/buienradar.markdown
+++ b/source/_integrations/buienradar.markdown
@@ -67,8 +67,8 @@ The following entities will be created:
- **Precipation forecast average**: The average expected precipitation/rain in mm/h within the given time-frame.
- **Precipation forecast total**: The total expected precipitation/rain in mm within the given time-frame. The total expected rain in the configured time-frame will be equal to _precipitation_forecast_total_/_timeframe_ mm/min. So, with time-frame configured to 30 minutes and a value of 5, the expected rain is 5 mm in 30 minutes, which is the same as 10 mm/h. If time-frame is set to 90 minutes and a value of 5, the expected rain is 5 mm in 90 minutes, which is equal to 3.3 mm/h.
- **Irradiance**: "Sun intensity in Watt per square meter ([W/m2](https://en.wikipedia.org/wiki/W/m2))."
-- **Rain last 24h**: The rail over the last 24 hours (in mm).
-- **Rain last hour: The rail over the last hour (in mm).
+- **Rain last 24h**: The rain over the last 24 hours (in mm).
+- **Rain last hour**: The rain over the last hour (in mm).
- **Temperature n days ahead**: "The forecasted temperature n days ahead (in [C](https://en.wikipedia.org/wiki/Celsius))."
- **Minimum temperature n days ahead**: "The forecasted minimum temperature n days ahead (in [C](https://en.wikipedia.org/wiki/Celsius))."
- **Rain chance n days ahead**: The forecasted chance for rain n days ahead (%).
diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown
index 00304a9a52b..e4fc88be5f7 100644
--- a/source/_integrations/camera.mqtt.markdown
+++ b/source/_integrations/camera.mqtt.markdown
@@ -89,6 +89,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown
index a3bd1b3ff90..2c4d803957c 100644
--- a/source/_integrations/climate.mqtt.markdown
+++ b/source/_integrations/climate.mqtt.markdown
@@ -128,6 +128,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
fan_mode_command_template:
description: A template to render the value sent to the `fan_mode_command_topic` with.
required: false
diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown
index 2e8410b4a42..a735951c0d9 100644
--- a/source/_integrations/cover.mqtt.markdown
+++ b/source/_integrations/cover.mqtt.markdown
@@ -110,6 +110,11 @@ device_class:
description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend.
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown
index 167ce449a6d..df7a66d1c13 100644
--- a/source/_integrations/fan.mqtt.markdown
+++ b/source/_integrations/fan.mqtt.markdown
@@ -101,6 +101,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown
index 54cbad670df..ccbe1b1d7f1 100644
--- a/source/_integrations/light.mqtt.markdown
+++ b/source/_integrations/light.mqtt.markdown
@@ -151,6 +151,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
effect_command_topic:
description: "The MQTT topic to publish commands to change the light's effect state."
required: false
@@ -516,6 +521,11 @@ device:
description: 'The firmware version of the device.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
effect:
description: Flag that defines if the light supports effects.
required: false
@@ -849,6 +859,11 @@ device:
description: 'The firmware version of the device.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
effect_list:
description: List of possible effects.
required: false
diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown
index 3dc3bfae24b..f9aa691b6ee 100644
--- a/source/_integrations/lock.mqtt.markdown
+++ b/source/_integrations/lock.mqtt.markdown
@@ -97,6 +97,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index 06f9f77bf3f..8c843a25607 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -57,7 +57,7 @@ name:
default: "modbus_hub"
type: string
timeout:
- description: "Timeout while waiting for a response in seconds. Remark: a timeout of fewer than 5 seconds will be automatically adjusted to 5 seconds."
+ description: "Timeout while waiting for a response in seconds."
required: false
default: 5
type: integer
@@ -209,7 +209,7 @@ name:
required: true
type: string
scan_interval:
- description: Defines the update interval of the entity in seconds. If scan_interval is lower than `timeout` or 5 seconds it is automatically adjusted to `timeout` (default 5 seconds).
+ description: Defines the update interval of the entity in seconds.
required: false
type: integer
default: 10
diff --git a/source/_integrations/number.mqtt.markdown b/source/_integrations/number.mqtt.markdown
index 9264a5720ef..d2da4c14d4e 100644
--- a/source/_integrations/number.mqtt.markdown
+++ b/source/_integrations/number.mqtt.markdown
@@ -87,6 +87,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/panasonic_viera.markdown b/source/_integrations/panasonic_viera.markdown
index 66d48f662fa..758b4a98218 100644
--- a/source/_integrations/panasonic_viera.markdown
+++ b/source/_integrations/panasonic_viera.markdown
@@ -138,6 +138,7 @@ The list with all known valid keys can be found [here](https://github.com/floria
- TX-50DX700B
- TX-55ASM655
- TX-55ASW654
+- TX-55CS630E (can't power on)
- TX-55CX680B
- TX-55CX700E
- TX-55EXW584
diff --git a/source/_integrations/scene.mqtt.markdown b/source/_integrations/scene.mqtt.markdown
index 9525f24fc91..0b1428a22bf 100644
--- a/source/_integrations/scene.mqtt.markdown
+++ b/source/_integrations/scene.mqtt.markdown
@@ -51,18 +51,23 @@ availability_topic:
required: false
type: string
command_topic:
- description: The MQTT topic to publish commands to change the switch state.
+ description: The MQTT topic to publish commands to change the scene state.
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
- description: Icon for the switch.
+ description: Icon for the scene.
required: false
type: icon
name:
- description: The name to use when displaying this switch.
+ description: The name to use when displaying this scene.
required: false
type: string
- default: MQTT Switch
+ default: MQTT Scene
payload_available:
description: The payload that represents the available state.
required: false
@@ -89,7 +94,7 @@ retain:
type: boolean
default: false
unique_id:
- description: An ID that uniquely identifies this switch device. If two switches have the same unique ID, Home Assistant will raise an exception.
+ description: An ID that uniquely identifies this scene entity. If two scenes have the same unique ID, Home Assistant will raise an exception.
required: false
type: string
{% endconfiguration %}
@@ -102,15 +107,15 @@ Make sure that your topic matches exactly. `some-topic/` and `some-topic` are di
## Examples
-In this section, you will find some real-life examples of how to use this sensor.
+In this section, you will find some real-life examples of how to use the MQTT Scene.
### Full configuration
-The example below shows a full configuration for a switch.
+The example below shows a full configuration for a scene.
```yaml
# Example configuration.yaml entry
-switch:
+scene:
- platform: mqtt
unique_id: living_room_party_scene
name: "Living Room Party Scene"
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown
index 82055159f79..be0ba3801af 100644
--- a/source/_integrations/sensor.mqtt.markdown
+++ b/source/_integrations/sensor.mqtt.markdown
@@ -92,6 +92,11 @@ device_class:
required: false
type: device_class
default: None
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
expire_after:
description: Defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`.
required: false
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 1447bc93eff..291a96b9b76 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -97,6 +97,11 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/switch.rest.markdown b/source/_integrations/switch.rest.markdown
index 9b7ee792589..1457f6986ad 100644
--- a/source/_integrations/switch.rest.markdown
+++ b/source/_integrations/switch.rest.markdown
@@ -49,12 +49,12 @@ body_on:
description: "The body of the POST request that commands the switch to become enabled. This value can be a [template](/topics/templating/)."
required: false
type: string
- default: ON
+ default: "ON"
body_off:
description: "The body of the POST request that commands the switch to become disabled. This value can also be a [template](/topics/templating/)."
required: false
type: string
- default: OFF
+ default: "OFF"
is_on_template:
description: "A [template](/docs/configuration/templating/#processing-incoming-data) that determines the state of the switch from the value returned by the GET request on the resource URL. This template should compute to a boolean (True or False). If the value is valid JSON, it will be available in the template as the variable `value_json`. Default is equivalent to `'{% raw %}{{ value_json == body_on }}{% endraw %}'`. This means that by default, the state of the switch is on if and only if the response to the GET request matches."
required: false
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index 4e7838ec4be..acde6dd6814 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -93,6 +93,11 @@ docked_topic:
description: The MQTT topic subscribed to receive docked state values from the vacuum.
required: false
type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
error_template:
description: Defines a [template](/topics/templating/) to define potential error messages emitted by the vacuum. This is required if `error_topic` is set.
required: false
diff --git a/source/_posts/2021-05-28-community-highlights.markdown b/source/_posts/2021-05-28-community-highlights.markdown
index e10c98dec8f..28adbdbbd53 100644
--- a/source/_posts/2021-05-28-community-highlights.markdown
+++ b/source/_posts/2021-05-28-community-highlights.markdown
@@ -23,8 +23,8 @@ Information on [how to share](#got-a-tip-for-the-next-edition).
This week's blueprint is all about medication. It may happen that you forget
to swallow it, what if you create an automation that sends you a message as a
-reminder every time? [Mati24](LINK) has now made a handy blueprint for that,
-try it out!
+reminder every time? [Mati24](https://community.home-assistant.io/u/mati24) has
+now made a handy blueprint for that, try it out!
{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/advanced-medication-reminder/300137" %}
diff --git a/source/_posts/2021-06-02-release-20216.markdown b/source/_posts/2021-06-02-release-20216.markdown
index 58c8eae065c..24d5a14aa24 100644
--- a/source/_posts/2021-06-02-release-20216.markdown
+++ b/source/_posts/2021-06-02-release-20216.markdown
@@ -38,6 +38,8 @@ worth scanning the all changes section for your favorite integrations.
- [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 2021.6.1 - June 3](#release-202161---june-3)
+- [Release 2021.6.2 - June 4](#release-202162---june-4)
- [If you need help...](#if-you-need-help)
- [Breaking Changes](#breaking-changes)
- [Integrations that removed deprecated YAML import](#integrations-that-removed-deprecated-yaml-import)
@@ -247,6 +249,76 @@ The following integrations are now available via the Home Assistant UI:
- [Buienradar][buienradar docs], done by [@RobBie1221]
- [Growatt][growatt_server docs], done by [@indykoning]
+## Release 2021.6.1 - June 3
+
+- Fix last activity consideration for AVM Fritz!Tools device tracker ([@mib1185] - [#51375]) ([fritz docs])
+- Handle Sonos connection issues better when polling ([@jjlawren] - [#51376]) ([sonos docs])
+- Fix no value error for heatit climate entities ([@raman325] - [#51392]) ([zwave_js docs])
+- Fix Tibber Pulse device name and sensor update ([@Danielhiversen] - [#51402]) ([tibber docs])
+- Fix shopping list "complete all" service name ([@spacegaier] - [#51406]) ([shopping_list docs])
+- Bump aiohomekit to 0.2.67 (fixes #51391) ([@Jc2k] - [#51418]) ([homekit_controller docs])
+- Bump zwave-js-server-python to 0.26.1 ([@raman325] - [#51425]) ([zwave_js docs])
+- Update frontend to 20210603.0 ([@bramkragten] - [#51442]) ([frontend docs])
+
+[#51375]: https://github.com/home-assistant/core/pull/51375
+[#51376]: https://github.com/home-assistant/core/pull/51376
+[#51392]: https://github.com/home-assistant/core/pull/51392
+[#51402]: https://github.com/home-assistant/core/pull/51402
+[#51406]: https://github.com/home-assistant/core/pull/51406
+[#51418]: https://github.com/home-assistant/core/pull/51418
+[#51425]: https://github.com/home-assistant/core/pull/51425
+[#51442]: https://github.com/home-assistant/core/pull/51442
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Jc2k]: https://github.com/Jc2k
+[@bramkragten]: https://github.com/bramkragten
+[@jjlawren]: https://github.com/jjlawren
+[@mib1185]: https://github.com/mib1185
+[@raman325]: https://github.com/raman325
+[@spacegaier]: https://github.com/spacegaier
+[fritz docs]: /integrations/fritz/
+[frontend docs]: /integrations/frontend/
+[homekit_controller docs]: /integrations/homekit_controller/
+[shopping_list docs]: /integrations/shopping_list/
+[sonos docs]: /integrations/sonos/
+[tibber docs]: /integrations/tibber/
+[zwave_js docs]: /integrations/zwave_js/
+
+## Release 2021.6.2 - June 4
+
+- Hot fix version of Apply modbus interval patch ([@balloob] - [#51487]) ([modbus docs])
+- Update to iaqualink 0.3.90 ([@flz] - [#51452]) ([iaqualink docs])
+- Retry isy994 setup later if isy.initialize times out ([@bdraco] - [#51453]) ([isy994 docs])
+- xknx 0.18.3 ([@farmio] - [#51277]) ([knx docs])
+- Update xknx to version 0.18.4 ([@farmio] - [#51459]) ([knx docs])
+- Bump aiolyric to 1.0.7 ([@timmo001] - [#51473]) ([lyric docs])
+- Improve logging for SamsungTV ([@chemelli74] - [#51477]) ([samsungtv docs])
+- Upgrade elgato to 2.1.1 ([@frenck] - [#51483]) ([elgato docs])
+- Protect our user agent ([@balloob] - [#51486])
+
+[#51277]: https://github.com/home-assistant/core/pull/51277
+[#51452]: https://github.com/home-assistant/core/pull/51452
+[#51453]: https://github.com/home-assistant/core/pull/51453
+[#51459]: https://github.com/home-assistant/core/pull/51459
+[#51473]: https://github.com/home-assistant/core/pull/51473
+[#51477]: https://github.com/home-assistant/core/pull/51477
+[#51483]: https://github.com/home-assistant/core/pull/51483
+[#51486]: https://github.com/home-assistant/core/pull/51486
+[#51487]: https://github.com/home-assistant/core/pull/51487
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@chemelli74]: https://github.com/chemelli74
+[@farmio]: https://github.com/farmio
+[@flz]: https://github.com/flz
+[@frenck]: https://github.com/frenck
+[@timmo001]: https://github.com/timmo001
+[elgato docs]: /integrations/elgato/
+[iaqualink docs]: /integrations/iaqualink/
+[isy994 docs]: /integrations/isy994/
+[knx docs]: /integrations/knx/
+[lyric docs]: /integrations/lyric/
+[modbus docs]: /integrations/modbus/
+[samsungtv docs]: /integrations/samsungtv/
+
## 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).
@@ -603,7 +675,7 @@ certificate for MQTT, you now need to adjust to the following:
```yaml
mqtt:
certificate: auto
- host: ... # all other info
+ host: ... # all other info
```
([@balloob] - [#51112]) ([MQTT docs])
@@ -2261,7 +2333,7 @@ The following integrations are no longer available as of this release:
[bluetooth_tracker docs]: /integrations/bluetooth_tracker/
[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
[bond docs]: /integrations/bond/
-[boschshc docs]: /integrations/boschshc/
+[boschshc docs]: /integrations/bosch_shc/
[braviatv docs]: /integrations/braviatv/
[broadlink docs]: /integrations/broadlink/
[brother docs]: /integrations/brother/
@@ -2382,7 +2454,7 @@ The following integrations are no longer available as of this release:
[namecheapdns docs]: /integrations/namecheapdns/
[nest docs]: /integrations/nest/
[netatmo docs]: /integrations/netatmo/
-[nettigo docs]: /integrations/nettigo/
+[nettigo docs]: /integrations/nam/
[network docs]: /integrations/network/
[nexia docs]: /integrations/nexia/
[notify docs]: /integrations/notify/
diff --git a/source/_posts/2021-06-04-community-highlights.markdown b/source/_posts/2021-06-04-community-highlights.markdown
new file mode 100644
index 00000000000..546d797e1c0
--- /dev/null
+++ b/source/_posts/2021-06-04-community-highlights.markdown
@@ -0,0 +1,113 @@
+---
+title: "Community Highlights: 24th edition"
+description: "Teach your kids when it's the right time to get up with a blueprint, display your 3D printer with a card in Lovelace and get started building your own weather station."
+date: 2021-06-04 00:00:00
+date_formatted: "June 4, 2021"
+author: Klaas Schoute
+author_twitter: klaasnicolaas
+categories: Community
+og_image: /images/blog/2021-06-04-community-highlights/social.png
+---
+
+The 24th edition of the Home Assistant Community Highlights! Some interesting
+things popped up around our community, which we thought was worth sharing.
+
+Do you want to share something for the next edition?
+Information on [how to share](#got-a-tip-for-the-next-edition).
+
+./Klaas
+*Intern on Home Assistant Energy*
+
+## Blueprint of the week
+------
+
+I think this situation is familiar to many parents: your children who get
+out of bed too early and who you would like to learn when it is the right
+time to get out of bed.
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/sleep-trainer-for-children-using-input-datetime-and-an-rgb-light/292003" %}
+
+This week's blueprint is that of [koosvanw](https://community.home-assistant.io/u/koosvanw),
+who created a blueprint for the above situation that works with a light that
+can change color and where the brightness can also be adjusted. Try it out!
+Read more about it on the [community forum][week_blueprint] or install this
+automation in your instance with a click on the My button!
+
+## Threedy card
+------
+
+
+
+Do you have a 3D printer and are you not quite sure how to display it in a
+beautiful way in your Lovelace dashboard? Then try this card from
+[dangreco](https://github.com/dangreco), which works well in combination
+with [octoprint](/integrations/octoprint).
+
+

+
+## ESPHome weather station
+------
+
+
+
+Have you always wanted to build a weather station in your garden? Then
+try the ESPHome variant of [hugokernel](https://github.com/hugokernel),
+it is quite extensive with many measuring options.
+
+

+
+## Garage fingerprint
+------
+
+This week we also came across something cool that was shared on our [subreddit][reddit]
+page. For example, you could open a garage door by means of geofencing from your
+phone or with an NFC tag. But [Nhminer](https://www.reddit.com/user/Nhminer/) has
+tried another option, namely opening with a fingerprint sensor 😲
+
+
+
+Do you want to know more about it? Then also check
+[this forum topic](https://community.home-assistant.io/t/garage-fingerprint-sensor/312977).
+
+## Got a tip for the next edition?
+------
+
+Have you seen (or made) something awesome, interesting, unique, amazing,
+inspirational, unusual or funny, using Home Assistant?
+
+[Click here to send us your Community Highlight suggestion](/suggest-community-highlight).
+
+Also, don't forget to share your creations with us via Social Media:
+
+- Tweet it! Be sure to mention [@home_assistant][twitter]
+- Share it on our [Facebook group][facebook-group]
+- Post it to our [subreddit][reddit]
+- Tag [@homeasssistant][instagram] on Instagram
+- Or via chat, drop us a line in the [#lounge at Discord][chat]
+
+See you next edition!
+
+[chat]: https://www.home-assistant.io/join-chat
+[facebook-group]: https://www.facebook.com/groups/HomeAssistant
+[instagram]: https://www.instagram.com/homeassistant
+[reddit]: https://www.reddit.com/r/homeassistant
+[twitter]: https://www.twitter.com/home_assistant
+[blueprints]: https://community.home-assistant.io/c/blueprints-exchange
+[community]: https://community.home-assistant.io
+[week_blueprint]: https://community.home-assistant.io/t/sleep-trainer-for-children-using-input-datetime-and-an-rgb-light/292003
\ No newline at end of file
diff --git a/source/images/blog/2021-06-04-community-highlights/social.png b/source/images/blog/2021-06-04-community-highlights/social.png
new file mode 100644
index 00000000000..eb1f642d18e
Binary files /dev/null and b/source/images/blog/2021-06-04-community-highlights/social.png differ
diff --git a/source/images/blog/2021-06-04-community-highlights/threedy.png b/source/images/blog/2021-06-04-community-highlights/threedy.png
new file mode 100644
index 00000000000..0654d36ebde
Binary files /dev/null and b/source/images/blog/2021-06-04-community-highlights/threedy.png differ
diff --git a/source/images/blog/2021-06-04-community-highlights/weather.jpg b/source/images/blog/2021-06-04-community-highlights/weather.jpg
new file mode 100644
index 00000000000..e87864c5a02
Binary files /dev/null and b/source/images/blog/2021-06-04-community-highlights/weather.jpg differ
diff --git a/source/images/integrations/mqtt/hivemq-details.png b/source/images/integrations/mqtt/hivemq-details.png
deleted file mode 100644
index 86626f84493..00000000000
Binary files a/source/images/integrations/mqtt/hivemq-details.png and /dev/null differ
diff --git a/source/integrations/index.html b/source/integrations/index.html
index 8ca9b2cd2b8..adfd32c4170 100644
--- a/source/integrations/index.html
+++ b/source/integrations/index.html
@@ -47,11 +47,11 @@ regenerate: false
{%- for category in categories -%}
{%- assign components_count = components | where: 'ha_category', category | size -%}
{%- if category and category != 'Other' and components_count != 0 -%}
-
{{ category }} ({{ components_count }})
+
{{ category }} ({{ components_count }})
{%- endif -%}
{%- endfor -%}
-
Other ({{ components | where: 'ha_category', 'Other' | size }})
+
Other ({{ components | where: 'ha_category', 'Other' | size }})