diff --git a/.textlintrc.json b/.textlintrc.json index aaf0c0dcc69..6476a18fd0f 100644 --- a/.textlintrc.json +++ b/.textlintrc.json @@ -271,7 +271,6 @@ "Vultr", "WebDAV", "WeMo", - "Wink", "WLED", "WWLLN", "Xiaomi", diff --git a/CODEOWNERS b/CODEOWNERS index 83b0b3c047c..eedc7d89a3b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -65,10 +65,10 @@ source/_integrations/blink.markdown @fronzbot source/_integrations/blueprint.markdown @home-assistant/core source/_integrations/bmp280.markdown @belidzs source/_integrations/bmw_connected_drive.markdown @gerard33 @rikroe -source/_integrations/bond.markdown @prystupa @joshs85 +source/_integrations/bond.markdown @bdraco @prystupa @joshs85 source/_integrations/bosch_shc.markdown @tschamm source/_integrations/braviatv.markdown @bieniu @Drafteed -source/_integrations/broadlink.markdown @danielhiversen @felipediel +source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am source/_integrations/brother.markdown @bieniu source/_integrations/brunt.markdown @eavanvalkenburg source/_integrations/bsblan.markdown @liudger @@ -104,7 +104,7 @@ source/_integrations/debugpy.markdown @frenck source/_integrations/deconz.markdown @Kane610 source/_integrations/delijn.markdown @bollewolle @Emilv2 source/_integrations/demo.markdown @home-assistant/core -source/_integrations/denonavr.markdown @scarface-4711 @starkillerOG +source/_integrations/denonavr.markdown @ol-iver @starkillerOG source/_integrations/derivative.markdown @afaucogney source/_integrations/device_automation.markdown @home-assistant/core source/_integrations/devolo_home_control.markdown @2Fake @Shutgun @@ -127,7 +127,7 @@ source/_integrations/ecovacs.markdown @OverloadUT source/_integrations/edl21.markdown @mtdcr source/_integrations/efergy.markdown @tkdrob source/_integrations/egardia.markdown @jeroenterheerdt -source/_integrations/eight_sleep.markdown @mezz64 +source/_integrations/eight_sleep.markdown @mezz64 @raman325 source/_integrations/elgato.markdown @frenck source/_integrations/elkm1.markdown @gwww @bdraco source/_integrations/elv.markdown @majuss @@ -139,13 +139,12 @@ source/_integrations/enigma2.markdown @fbradyirl source/_integrations/enocean.markdown @bdurrer source/_integrations/enphase_envoy.markdown @gtdiehl source/_integrations/entur_public_transport.markdown @hfurubotten -source/_integrations/environment_canada.markdown @michaeldavie +source/_integrations/environment_canada.markdown @gwww @michaeldavie source/_integrations/ephember.markdown @ttroy50 source/_integrations/epson.markdown @pszafer source/_integrations/epsonworkforce.markdown @ThaStealth source/_integrations/eq3btsmart.markdown @rytilahti source/_integrations/esphome.markdown @OttoWinter @jesserockz -source/_integrations/essent.markdown @TheLastProject source/_integrations/evohome.markdown @zxdavb source/_integrations/ezviz.markdown @RenierM26 @baqs source/_integrations/faa_delays.markdown @ntilley905 @@ -162,6 +161,7 @@ source/_integrations/flo.markdown @dmulcahey source/_integrations/flock.markdown @fabaff source/_integrations/flume.markdown @ChrisMandich @bdraco source/_integrations/flunearyou.markdown @bachya +source/_integrations/flux_led.markdown @icemanch source/_integrations/forecast_solar.markdown @klaasnicolaas @frenck source/_integrations/forked_daapd.markdown @uvjustin source/_integrations/fortios.markdown @kimfrellsen @@ -169,7 +169,7 @@ source/_integrations/foscam.markdown @skgsergio source/_integrations/freebox.markdown @hacf-fr @Quentame source/_integrations/freedompro.markdown @stefano055415 source/_integrations/fritz.markdown @mammuth @AaronDavidSchneider @chemelli74 -source/_integrations/fritzbox.markdown @mib1185 +source/_integrations/fritzbox.markdown @mib1185 @flabbamann source/_integrations/fronius.markdown @nielstron source/_integrations/frontend.markdown @home-assistant/frontend source/_integrations/garages_amsterdam.markdown @klaasnicolaas @@ -196,6 +196,7 @@ source/_integrations/growatt_server.markdown @indykoning @muppet3000 @JasperPlan source/_integrations/guardian.markdown @bachya source/_integrations/habitica.markdown @ASMfreaK @leikoilja source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey @Aohzan +source/_integrations/hassio.markdown @home-assistant/supervisor source/_integrations/heatmiser.markdown @andylockran source/_integrations/heos.markdown @andrewsayre source/_integrations/here_travel_time.markdown @eifinger @@ -214,9 +215,8 @@ source/_integrations/homematic.markdown @pvizeli @danielperna84 source/_integrations/honeywell.markdown @rdfurman source/_integrations/http.markdown @home-assistant/core source/_integrations/huawei_lte.markdown @scop @fphammerle -source/_integrations/huawei_router.markdown @abmantis source/_integrations/hue.markdown @balloob @frenck -source/_integrations/huisbaasje.markdown @denniss17 +source/_integrations/huisbaasje.markdown @dennisschroer source/_integrations/humidifier.markdown @home-assistant/core @Shulyaka source/_integrations/hunterdouglas_powerview.markdown @bdraco source/_integrations/hvv_departures.markdown @vigonotion @@ -272,6 +272,7 @@ source/_integrations/litterrobot.markdown @natekspencer source/_integrations/local_ip.markdown @issacg source/_integrations/logger.markdown @home-assistant/core source/_integrations/logi_circle.markdown @evanjd +source/_integrations/lookin.markdown @ANMalko source/_integrations/loopenergy.markdown @pavoni source/_integrations/luci.markdown @mzdrale source/_integrations/luftdaten.markdown @fabaff @@ -320,7 +321,6 @@ source/_integrations/nam.markdown @bieniu source/_integrations/nanoleaf.markdown @milanmeu 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 @allenporter source/_integrations/netatmo.markdown @cgtobi @@ -345,10 +345,11 @@ source/_integrations/nsw_rural_fire_service_feed.markdown @exxamalte source/_integrations/nuki.markdown @pschmitt @pvizeli @pree source/_integrations/numato.markdown @clssn source/_integrations/number.markdown @home-assistant/core @Shulyaka -source/_integrations/nut.markdown @bdraco +source/_integrations/nut.markdown @bdraco @ollo69 source/_integrations/nws.markdown @MatthewFlamm source/_integrations/nzbget.markdown @chriscla source/_integrations/obihai.markdown @dshokouhi +source/_integrations/octoprint.markdown @rfleming71 source/_integrations/ohmconnect.markdown @robbiet480 source/_integrations/ombi.markdown @larssont source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu @@ -407,6 +408,7 @@ source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert source/_integrations/rainmachine.markdown @bachya source/_integrations/random.markdown @fabaff source/_integrations/recollect_waste.markdown @bachya +source/_integrations/recorder.markdown @home-assistant/core source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/renault.markdown @epenet source/_integrations/repetier.markdown @MTrab @@ -481,7 +483,7 @@ source/_integrations/srp_energy.markdown @briglx source/_integrations/starline.markdown @anonym-tsk source/_integrations/statistics.markdown @fabaff source/_integrations/stiebel_eltron.markdown @fucm -source/_integrations/stookalert.markdown @fwestenberg +source/_integrations/stookalert.markdown @fwestenberg @frenck source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter source/_integrations/stt.markdown @pvizeli source/_integrations/subaru.markdown @G-Two @@ -517,7 +519,6 @@ source/_integrations/tile.markdown @bachya source/_integrations/time_date.markdown @fabaff 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 @thegardenmonkey source/_integrations/traccar.markdown @ludeeus @@ -527,7 +528,7 @@ source/_integrations/trafikverket_train.markdown @endor-force source/_integrations/trafikverket_weatherstation.markdown @endor-force source/_integrations/transmission.markdown @engrbm87 @JPHutchins source/_integrations/tts.markdown @pvizeli -source/_integrations/tuya.markdown @Tuya @zlinoliver @METISU +source/_integrations/tuya.markdown @Tuya @zlinoliver @METISU @frenck source/_integrations/twentemilieu.markdown @frenck source/_integrations/twinkly.markdown @dr1rrb source/_integrations/ubus.markdown @noltari @@ -545,6 +546,7 @@ source/_integrations/utility_meter.markdown @dgomes source/_integrations/vallox.markdown @andre-richter source/_integrations/velbus.markdown @Cereal2nd @brefra source/_integrations/velux.markdown @Julius2342 +source/_integrations/venstar.markdown @garbled1 source/_integrations/vera.markdown @pavoni source/_integrations/verisure.markdown @frenck source/_integrations/versasense.markdown @flamm3blemuff1n @@ -554,7 +556,7 @@ source/_integrations/vicare.markdown @oischinger source/_integrations/vilfo.markdown @ManneW source/_integrations/vivotek.markdown @HarlemSquirrel source/_integrations/vizio.markdown @raman325 -source/_integrations/vlc_telnet.markdown @rodripf @dmcc +source/_integrations/vlc_telnet.markdown @rodripf @dmcc @MartinHjelmare source/_integrations/volkszaehler.markdown @fabaff source/_integrations/volumio.markdown @OnFreund source/_integrations/wake_on_lan.markdown @ntilley905 diff --git a/_config.yml b/_config.yml index 35843df6e7a..8cb816d0039 100644 --- a/_config.yml +++ b/_config.yml @@ -107,9 +107,9 @@ social: # Home Assistant release details current_major_version: 2021 -current_minor_version: 10 -current_patch_version: 7 -date_released: 2021-11-01 +current_minor_version: 11 +current_patch_version: 0 +date_released: 2021-11-03 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index c8e24c09584..0e81810c7d2 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -43,10 +43,6 @@ http: ifttt: key: ["nope"] -wink: - access_token: ["wouldn't you"] - refresh_token: ["like to know"] - zwave: usb_path: "/dev/ttyUSB0" config_path: "/usr/local/share/python-openzwave/config" diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index 34b7ce86ed7..a75db47168b 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -237,33 +237,43 @@ The same thing can also be expressed as a filter: - `area_id(lookup_value)` returns the area ID for a given device ID, entity ID, or area name. Can also be used as a filter. - `area_name(lookup_value)` returns the area name for a given device ID, entity ID, or area ID. Can also be used as a filter. +- `area_entities(area_name_or_id)` returns the list of entity IDs tied to a given area ID or name. Can also be used as a filter. +- `area_devices(area_name_or_id)` returns the list of device IDs tied to a given area ID or name. Can also be used as a filter. #### Areas examples {% raw %} ```text -{{ area_id('Living Room') }} # deadbeefdeadbeefdeadbeefdeadbeef +{{ area_id('Living Room') }} # 'deadbeefdeadbeefdeadbeefdeadbeef' ``` ```text -{{ area_id('my_device_id') }} # deadbeefdeadbeefdeadbeefdeadbeef +{{ area_id('my_device_id') }} # 'deadbeefdeadbeefdeadbeefdeadbeef' ``` ```text -{{ area_id('sensor.sony') }} # deadbeefdeadbeefdeadbeefdeadbeef +{{ area_id('sensor.sony') }} # 'deadbeefdeadbeefdeadbeefdeadbeef' ``` ```text -{{ area_name('deadbeefdeadbeefdeadbeefdeadbeef') }} # Living Room +{{ area_name('deadbeefdeadbeefdeadbeefdeadbeef') }} # 'Living Room' ``` ```text -{{ area_name('my_device_id') }} # Living Room +{{ area_name('my_device_id') }} # 'Living Room' ``` ```text -{{ area_name('sensor.sony') }} # Living Room +{{ area_name('sensor.sony') }} # 'Living Room' +``` + +```text +{{ area_entities('deadbeefdeadbeefdeadbeefdeadbeef') }} # ['sensor.sony'] +``` + +```text +{{ area_devices('Living Room') }} # ['my_device_id'] ``` {% endraw %} @@ -278,6 +288,17 @@ The same thing can also be expressed as a filter: - `utcnow()` returns a datetime object of the current time in the UTC timezone. - For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`. - Using `utcnow()` will cause templates to be refreshed at the start of every new minute. +- `today_at(value)` converts a string containing a military time format to a datetime object with today's date in your time zone. + + {% raw %} + + ```yaml + # Is the current time past 10:15? + {{ now() > today_at("10:15") }} + ``` + + {% endraw %} + - `as_datetime()` converts a string containing a timestamp to a datetime object. - `as_timestamp(value, default)` converts datetime object or string to UNIX timestamp. If that fails, returns the `default` value, or if omitted `None`. This function also be used as a filter. - `as_local()` converts datetime object to local time. This function also be used as a filter. @@ -525,6 +546,7 @@ The numeric functions and filters will not fail if the input is not a valid numb - `round(1, "half", default)` will always round to the nearest .5 value. `precision` should be 1 for this mode - Filter `[x, y, ...] | max` will obtain the largest item in a sequence. - Filter `[x, y, ...] | min` will obtain the smallest item in a sequence. +- Filter `[x, y, ...] | average` will return the average value of the sequence. - Filter `value_one|bitwise_and(value_two)` perform a bitwise and(&) operation with two values. - Filter `value_one|bitwise_or(value_two)` perform a bitwise or(\|) operation with two values. - Filter `ord` will return for a string of length one an integer representing the Unicode code point of the character when the argument is a Unicode object, or the value of the byte when the argument is an 8-bit string. diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 286ef972f35..6210a70f7fb 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -290,6 +290,7 @@ Supported abbreviations: Supported abbreviations for device registry configuration: ```txt + 'cu': 'configuration_url' 'cns': 'connections', 'ids': 'identifiers', 'name': 'name', diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown index bb65a50c8f7..8088732119e 100644 --- a/source/_docs/scripts/service-calls.markdown +++ b/source/_docs/scripts/service-calls.markdown @@ -108,6 +108,23 @@ data: ``` {% endraw %} + +You can use a template returning a native dictionary as well, which is useful if the attributes to be set depend on the situation. + +{% raw %} + +```yaml +service: climate.set_temperature +data: > + {% if states('sensor.temperature_living') < 19 %} + {"hvac_mode": "heat", "temperature": 19 } + {% else %} + {"hvac_mode": "auto" } + {% endif %} +``` + +{% endraw %} + ### `homeassistant` services There are four `homeassistant` services that aren't tied to any single domain, these are: diff --git a/source/_integrations/advantage_air.markdown b/source/_integrations/advantage_air.markdown index b4731d97bf0..10965c54883 100644 --- a/source/_integrations/advantage_air.markdown +++ b/source/_integrations/advantage_air.markdown @@ -14,6 +14,7 @@ ha_platforms: - climate - cover - sensor + - select - switch --- @@ -52,6 +53,10 @@ The `advantage_air` binary sensor platform will create a binary sensor for each The `advantage_air` switch platform will create a switch entity to toggle fresh air mode, if it is supported. +### Select + +The `advantage_air` select platform allows you to change the zone used for the "MyZone" feature. + ## Services ### Service `advantage_air.set_time_to` diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index d48f6e5c9a4..917808420c9 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -67,7 +67,7 @@ availability_topic: required: false type: string code: - description: If defined, specifies a code to enable or disable the alarm in the frontend. + description: If defined, specifies a code to enable or disable the alarm in the frontend. Note that the code is validated locally and blocks sending MQTT messages to the remote device. For remote code validation, the code can be configured to either of the special values `REMOTE_CODE` (numeric code) or `REMOTE_CODE_TEXT` (text code). In this case, local code validation is bypassed but the frontend will still show a numeric or text code dialog. Use `command_template` to send the code to the remote device. Example configurations for remote code validation [can be found here](./#configurations-with-remote-code-validation). required: false type: string code_arm_required: @@ -94,6 +94,10 @@ device: required: false type: map keys: + configuration_url: + description: 'A link to the webpage that can manage the configuration of this device. Can be either an HTTP or HTTPS link.' + required: false + type: string connections: description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.' required: false @@ -131,6 +135,11 @@ enabled_by_default: required: false type: boolean default: true +entity_category: + description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity. + required: false + type: string + default: None icon: description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity." required: false @@ -211,3 +220,64 @@ value_template: required: false type: template {% endconfiguration %} + +## Examples + +In this section you find some real-life examples of how to use this alarm control panel. + +### Configuration with local code validation + +The example below shows a full configuration with local code validation. + +{% raw %} + +```yaml +# Example using text based code with local validation configuration.yaml +alarm_control_panel: + - platform: mqtt + name: "Alarm Panel With Numeric Keypad" + state_topic: "alarmdecoder/panel" + value_template: "{{value_json.state}}" + command_topic: "alarmdecoder/panel/set" + code: mys3cretc0de +``` + +{% endraw %} + +### Configurations with remote code validation + +The example below shows a full configuration with local code validation and `command_template`. + +{% raw %} + +```yaml +# Example using text code with remote validation configuration.yaml +alarm_control_panel: + - platform: mqtt + name: "Alarm Panel With Text Code Dialog" + state_topic: "alarmdecoder/panel" + value_template: "{{ value_json.state }}" + command_topic: "alarmdecoder/panel/set" + code: REMOTE_CODE_TEXT + command_template: "{ action: '{{ action }}', code: '{{ code }}'}" +``` + +```yaml +# Example using numeric code with remote validation configuration.yaml +alarm_control_panel: + - platform: mqtt + name: "Alarm Panel With Numeric Keypad" + state_topic: "alarmdecoder/panel" + value_template: "{{ value_json.state }}" + command_topic: "alarmdecoder/panel/set" + code: REMOTE_CODE + command_template: "{ action: '{{ action }}', code: '{{ code }}'}" +``` + +{% endraw %} + +
+```
+
+Copy/paste this code parameter into Home Assistant to finish setting up the integration.
+
## Services
Note that the `system_id` parameter required by the below service calls can be discovered
@@ -45,7 +67,8 @@ entity.
### `simplisafe.clear_notifications`
Clear any existing notifications within the SimpliSafe cloud; this will mark existing
-notifications as "read" in the SimpliSafe web and mobile apps.
+notifications as "read" in the SimpliSafe web and mobile apps, as well as prevent them
+from triggering future `SIMPLISAFE_NOTIFICATION` events.
### `simplisafe.remove_pin`
@@ -91,6 +114,69 @@ For any property denoting a volume, the following values should be used:
## Events
+### `SIMPLISAFE_EVENT`
+
+`SIMPLISAFE_EVENT` events represent events that appear on the timeline of the SimpliSafe
+web and mobile apps. When received, they come with event data that contains the
+following keys:
+
+* `changed_by`: the PIN that triggered the event (if appropriate)
+* `event_type`: the type of event
+* `info`: a human-friendly string describing the event in more detail
+* `sensor_name`: the sensor that triggered the event (if appropriate)
+* `sensor_serial`: the serial number of the sensor that triggered the event (if appropriate)
+* `sensor_type`: the type of sensor that triggered the event (if appropriate)
+* `system_id`: the system ID to which the event belongs
+* `timestamp`: the UTC datetime at which the event was received
+
+For example, when someone rings the doorbell, a
+`SIMPLISAFE_EVENT` event will fire with the following event data:
+
+```python
+{
+ "event_type": "SIMPLISAFE_EVENT",
+ "data": {
+ "last_event_changed_by": "",
+ "last_event_type": "doorbell_detected",
+ "last_event_info": "Someone is at your \"Front Door\"",
+ "last_event_sensor_name": "Front Door",
+ "last_event_sensor_serial": "",
+ "last_event_sensor_type": "doorbell",
+ "system_id": [systemid],
+ "last_event_timestamp": "2021-01-28T22:01:32+00:00"
+ },
+ "origin": "LOCAL",
+ "time_fired": "2021-01-28T22:01:37.478539+00:00",
+ "context": {
+ "id": "[id]",
+ "parent_id": null,
+ "user_id": null
+ }
+}
+```
+
+`last_event_type` can have the following values:
+
+* `automatic_test`
+* `camera_motion_detected`
+* `doorbell_detected`
+* `device_test`
+* `secret_alert_triggered`
+* `sensor_paired_and_named`
+* `user_initiated_test`
+
+To build an automation using one of these, use `SIMPLISAFE_EVENT`
+as an event trigger, with `last_event_type` as the `event_data`.
+For example, the following will trigger when the doorbell rings:
+
+```yaml
+trigger:
+ - platform: event
+ event_type: SIMPLISAFE_EVENT
+ event_data:
+ last_event_type: doorbell_detected
+```
+
### `SIMPLISAFE_NOTIFICATION`
`SIMPLISAFE_NOTIFICATION` events represent system notifications that would appear in the
diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown
index 7e6561ebebe..f4a8a75d15f 100644
--- a/source/_integrations/sonos.markdown
+++ b/source/_integrations/sonos.markdown
@@ -25,6 +25,13 @@ The `sonos` integration allows you to control your [Sonos](https://www.sonos.com
{% include integrations/config_flow.md %}
+## Feature controls
+
+Speaker-level features are exposed as `switch` entities which allow direct control and indicate if the features are currently enabled.
+
+- **All devices**: Crossfade, Status Light, Touch Controls
+- **Home theater devices**: Night Sound & Speech Enhancement
+
## Battery support
Battery sensors are fully supported for the `Sonos Roam` and `Sonos Move` devices on S2 firmware. `Sonos Move` speakers still on S1 firmware are supported but may update infrequently.
@@ -181,21 +188,6 @@ Update an existing Sonos alarm.
| `enabled` | yes | Boolean for whether or not to enable this alarm.
| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players.
-### Service `sonos.set_option`
-
-Set Sonos speaker options.
-
-Night Sound and Speech Enhancement modes are only supported when playing from the TV source of products like Sonos Playbar and Sonos Beam. Other speaker types will ignore these options.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of `entity_id`s that will have their options set.
-| `buttons_enabled` | yes | Boolean to control the functioning of hardware buttons on the device.
-| `crossfade` | yes | Boolean to control crossfading between songs.
-| `night_sound` | yes | Boolean to control Night Sound mode.
-| `speech_enhance` | yes | Boolean to control Speech Enhancement mode.
-| `status_light` | yes | Boolean to control the Status (LED) Light.
-
### Service `sonos.play_queue`
Starts playing the Sonos queue.
diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown
index 182df4edf55..ff4b94aa29d 100644
--- a/source/_integrations/ssdp.markdown
+++ b/source/_integrations/ssdp.markdown
@@ -37,6 +37,7 @@ The following integrations are automatically discovered by the SSDP integration:
- [Keenetic NDMS2 Router](/integrations/keenetic_ndms2/)
- [Konnected.io](/integrations/konnected/)
- [Logitech Harmony](/integrations/harmony/)
+ - [OctoPrint](/integrations/octoprint/)
- [Philips Hue](/integrations/hue/)
- [Roku](/integrations/roku/)
- [Samsung SyncThru Printer](/integrations/syncthru/)
diff --git a/source/_integrations/stookalert.markdown b/source/_integrations/stookalert.markdown
index ac83b69fb21..8e792ebe977 100644
--- a/source/_integrations/stookalert.markdown
+++ b/source/_integrations/stookalert.markdown
@@ -8,31 +8,13 @@ ha_release: 0.104
ha_iot_class: Cloud Polling
ha_codeowners:
- '@fwestenberg'
+ - '@frenck'
ha_domain: stookalert
+ha_config_flow: true
ha_platforms:
- binary_sensor
---
-The `stookalert` sensor platform queries the [RIVM Stookalert](https://www.rivm.nl/stookalert) API for unfavorable weather conditions or poor air quality. With a Stookalert, the RIVM calls on people not to burn wood. This can prevent health problems in people in the area.
+The Stookalert integration queries the [RIVM Stookalert](https://www.rivm.nl/stookalert) API for unfavorable weather conditions or poor air quality. With a Stookalert, the RIVM calls on people not to burn wood. This can prevent health problems in people in the area.
-## Configuration
-
-To enable the platform, add the following lines to your `configuration.yaml` file:
-
-```yaml
-binary_sensor:
- - platform: stookalert
- province: YOUR_NL_PROVINCE
-```
-
-{% configuration %}
-province:
- description: A province to use for the binary sensor's state. Currently only provinces in the Netherlands are supported. Valid values are `Drenthe`, `Flevoland`, `Friesland`, `Gelderland`, `Groningen`, `Limburg`, `Noord-Brabant`, `Noord-Holland`, `Overijssel`, `Utrecht`, `Zeeland` or `Zuid-Holland`.
- required: true
- type: string
-name:
- description: The sensor name to use in the frontend.
- required: false
- default: "Stookalert"
- type: string
-{% endconfiguration %}
+{% include integrations/config_flow.md %}
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 28ff0338d34..296121f9d2c 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -65,6 +65,10 @@ device:
required: false
type: map
keys:
+ configuration_url:
+ description: 'A link to the webpage that can manage the configuration of this device. Can be either an HTTP or HTTPS link.'
+ required: false
+ type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
@@ -102,6 +106,11 @@ enabled_by_default:
required: false
type: boolean
default: true
+entity_category:
+ description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
+ required: false
+ type: string
+ default: None
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 1457f6986ad..87784976f55 100644
--- a/source/_integrations/switch.rest.markdown
+++ b/source/_integrations/switch.rest.markdown
@@ -40,6 +40,10 @@ name:
required: false
type: string
default: REST Switch
+device_class:
+ description: Sets the [class of the device](/integrations/switch/#device-class), changing the device state and icon that is displayed on the frontend.
+ required: false
+ type: string
timeout:
description: Timeout for the request.
required: false
diff --git a/source/_integrations/system_bridge.markdown b/source/_integrations/system_bridge.markdown
index c3753dfbaad..56c068f290f 100644
--- a/source/_integrations/system_bridge.markdown
+++ b/source/_integrations/system_bridge.markdown
@@ -41,6 +41,10 @@ This integration provides the following sensors:
| Name | Description |
| ---------------------- | --------------------------------------------------- |
| Battery | Battery level of the device |
+| Displays Connected | Number of displays connected |
+| Display Resolution X | Display resolution (across) |
+| Display Resolution Y | Display resolution (down) |
+| Display Refresh Rate | Display refresh rate |
| CPU Speed | The current CPU speed |
| Filesystem(s) | Space used for each drive letter / filesystem mount |
| GPU Memory Free | GPU memory free in GB |
diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown
index de36f509b0b..85cf5dd2e1f 100644
--- a/source/_integrations/tag.mqtt.markdown
+++ b/source/_integrations/tag.mqtt.markdown
@@ -29,6 +29,10 @@ device:
required: true
type: map
keys:
+ configuration_url:
+ description: 'A link to the webpage that can manage the configuration of this device. Can be either an HTTP or HTTPS link.'
+ required: false
+ type: string
connections:
description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`."
required: false
diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown
index d8fa995b334..8e0cfa3d044 100644
--- a/source/_integrations/template.markdown
+++ b/source/_integrations/template.markdown
@@ -147,10 +147,6 @@ binary_sensor:
required: false
type: map
keys:
- icon:
- description: Defines a template for the icon of the sensor.
- required: false
- type: template
picture:
description: Defines a template for the entity picture of the sensor.
required: false
@@ -228,13 +224,17 @@ select:
type: map
keys:
name:
- description: Defines a template to get the name of the sensor.
+ description: Defines a template to get the name of the entity.
required: false
type: template
unique_id:
- description: An ID that uniquely identifies this sensor. Will be combined with the unique ID of the configuration block if available. This allows changing the `name`, `icon` and `entity_id` from the web interface.
+ description: An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the `name`, `icon` and `entity_id` from the web interface.
required: false
type: string
+ icon:
+ description: Defines a template for the icon of the entity.
+ required: false
+ type: template
availability:
description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed.
required: false
diff --git a/source/_integrations/toon.markdown b/source/_integrations/toon.markdown
index cd9b8f0a1f1..9f906c50990 100644
--- a/source/_integrations/toon.markdown
+++ b/source/_integrations/toon.markdown
@@ -10,8 +10,6 @@ ha_category:
ha_release: 0.56
ha_iot_class: Cloud Push
ha_config_flow: true
-ha_codeowners:
- - '@frenck'
ha_domain: toon
ha_dhcp: true
ha_platforms:
diff --git a/source/_integrations/tradfri.markdown b/source/_integrations/tradfri.markdown
index 561426e7317..cceb1187300 100644
--- a/source/_integrations/tradfri.markdown
+++ b/source/_integrations/tradfri.markdown
@@ -10,10 +10,12 @@ ha_category:
- Light
- Sensor
- Switch
+ - Fan
ha_domain: tradfri
ha_homekit: true
ha_platforms:
- cover
+ - fan
- light
- sensor
- switch
@@ -80,4 +82,3 @@ Do not use the `api_key` variable in `configuration.yaml`. The API key is only n
## Known limitations
- The TRÅDFRI Shortcut button, Remotes and motion sensor only send information about their battery status, no events, to Home Assistant and thus can't be used to automate with. If you want to automate with these devices, you need to use something like [ZHA](/integrations/zha/).
-
diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown
index 25321c71b8d..cbf196ed5da 100644
--- a/source/_integrations/tuya.markdown
+++ b/source/_integrations/tuya.markdown
@@ -1,12 +1,21 @@
---
title: Tuya
-description: Instructions on how to setup the Tuya hub within Home Assistant.
+description: Instructions on how to set up the Tuya hub within Home Assistant.
ha_category:
+ - Binary Sensor
+ - Camera
- Climate
+ - Cover
+ - Doorbell
- Fan
+ - Humidifier
- Light
+ - Number
- Scene
+ - Select
+ - Siren
- Switch
+ - Vacuum
ha_iot_class: Cloud Push
ha_release: 0.74
ha_config_flow: true
@@ -15,32 +24,36 @@ ha_codeowners:
- '@Tuya'
- '@zlinoliver'
- '@METISU'
- - '@tsutsuku'
+ - '@frenck'
ha_platforms:
+ - binary_sensor
+ - camera
- climate
+ - cover
- fan
+ - humidifier
- light
+ - number
- scene
+ - sensor
+ - select
+ - siren
- switch
+ - vacuum
+ha_dhcp: true
---
-The Tuya integration allows integrating all Powered by Tuya devices you have added to the Tuya Smart and Tuya Smart Life apps. This integration is officially maintained by Tuya.
+The Tuya integration integrates all Powered by Tuya devices you have added to the Tuya Smart and Tuya Smart Life apps. Tuya officially maintains this integration.
-## Supported platforms
-
-- **Climate**: air conditioner, heater, thermostat.
-- **Fan**: fan, air purifier, humidifier, dehumidifier.
-- **Light**: light, light strip, ambient light, light string, humidifier's light, ceiling light.
-- **Scene**: smart scene.
-- **Switch**: switch, socket, power strip, smart kettle, breaker, pet water feeder, air purifier, diffuser.
+All Home Assistant platforms are supported by the Tuya integration, except the lock and remote platform.
## Configuration of the Tuya IoT Platform
### Prerequisites
-- Your devices need to first be added in the [Tuya Smart or Smart Life app](https://developer.tuya.com/en/docs/iot/tuya-smart-app-smart-life-app-advantages?id=K989rqa49rluq#title-1-Download).
+- Your devices need first to be added in the [Tuya Smart or Smart Life app](https://developer.tuya.com/en/docs/iot/tuya-smart-app-smart-life-app-advantages?id=K989rqa49rluq#title-1-Download).
- You will also need to create an account in the [Tuya IoT Platform](https://iot.tuya.com/).
-This is a separate account to the one you made for the app. You cannot log in with your app's credentials.
+This is a separate account from the one you made for the app. You cannot log in with your app's credentials.
### Create a project
@@ -49,7 +62,7 @@ This is a separate account to the one you made for the app. You cannot log in wi
3. On the page that appears, click `Create Cloud Project`.
4. In the `Create Cloud Project` dialog box, configure `Project Name`, `Description`, `Industry`, and `Data Center`. For the `Development Method` field, select `Smart Home` from the dropdown list. For the `Data Center` field, select the zone you are located in.

-5. Click `Create` to continue with project configuration.
+5. Click `Create` to continue with the project configuration.
6. In Configuration Wizard, make sure you add `Device Status Notification` API. The list of API should look like this:

7. Click `Authorize`.
diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown
index 0c1c00bb4d5..0bc9c0ccca0 100644
--- a/source/_integrations/unifi.markdown
+++ b/source/_integrations/unifi.markdown
@@ -64,6 +64,14 @@ If Home Assistant and the UniFi controller are running on separate machines or V
## Services
+### Service unifi.reconnect_client
+
+Try to get a wireless client to reconnect to the network.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | --------------------------------------------------------------------------- |
+| `device_id` | No | String representing a device ID related to a UniFi integration. |
+
### Service unifi.remove_clients
Clean up clients on the UniFi Controller that has only been associated with the controller for a short period of time. The difference between first seen and last seen needs to be less than 15 minutes and the client can not have a fixed IP, hostname or name associated with it.
diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown
index 289f3a37985..67575f28ab6 100644
--- a/source/_integrations/utility_meter.markdown
+++ b/source/_integrations/utility_meter.markdown
@@ -70,6 +70,10 @@ tariffs:
type: list
{% endconfiguration %}
+
+When using the `offset` configuration parameter, the defined period must not be longer then 28 days.
+
+
### Time period dictionary example
```yaml
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index 60b83f82b34..9565d37229e 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -98,6 +98,11 @@ enabled_by_default:
required: false
type: boolean
default: true
+entity_category:
+ description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
+ required: false
+ type: string
+ default: None
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
@@ -337,6 +342,10 @@ device:
required: false
type: map
keys:
+ configuration_url:
+ description: 'A link to the webpage that can manage the configuration of this device. Can be either an HTTP or HTTPS link.'
+ required: false
+ type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
diff --git a/source/_integrations/venstar.markdown b/source/_integrations/venstar.markdown
index 251662ac140..7364c023110 100644
--- a/source/_integrations/venstar.markdown
+++ b/source/_integrations/venstar.markdown
@@ -8,6 +8,9 @@ ha_iot_class: Local Polling
ha_domain: venstar
ha_platforms:
- climate
+ha_codeowners:
+ - '@garbled1'
+ha_config_flow: true
---
The `venstar` climate platform allows you to control [Venstar](https://www.venstar.com/) thermostats from Home Assistant.
@@ -36,16 +39,9 @@ Note - Please ensure that you update your thermostat to the latest firmware. Ini
Local API mode needs to be enabled via the thermostat's *Menu > WiFi > Local API Options > Local API - ON*
-To set it up, add the following information to your `configuration.yaml` file:
+{% include integrations/config_flow.md %}
-```yaml
-# Example configuration.yaml entry
-climate:
- - platform: venstar
- host: IP_OR_HOSTNAME_OF_THERMOSTAT
-```
-
-{% configuration %}
+{% configuration_basic %}
host:
description: Address of your thermostat, e.g., 192.168.1.32.
required: true
@@ -77,19 +73,4 @@ humidifier:
required: false
type: boolean
default: true
-{% endconfiguration %}
-
-## Full configuration sample
-
-```yaml
-# Example configuration.yaml entry
-climate:
- - platform: venstar
- host: IP_OR_HOSTNAME_OF_THERMOSTAT
- ssl: true
- username: OPTIONAL_AUTH_USER_HERE
- password: OPTIONAL_AUTH_PASS_HERE
- pin: LOCKSCREEN_PIN
- timeout: 5
- humidifier: false
-```
+{% endconfiguration_basic %}
diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown
index c2bb70ce6c8..6d7cf2d7385 100644
--- a/source/_integrations/vicare.markdown
+++ b/source/_integrations/vicare.markdown
@@ -65,10 +65,6 @@ name:
required: false
default: ViCare
type: string
-circuit:
- description: Heating circuit of your heating device if multiple exist
- required: false
- type: integer
heating_type:
description: One of `generic`, `gas`, `heatpump` or `fuelcell`. Specifying the heating_type provides additional attributes and sensors specific for the heating system.
required: false
@@ -81,8 +77,7 @@ scan_interval:
type: integer
{% endconfiguration %}
-Two components will be created: `climate.vicare_heating` and `water_heater.vicare_water` (for domestic hot water).
-Unless you specify a `circuit` parameter, it will pick up the first heating circuit of your installation.
+Multiple device instances might be generated depending on the number of burners and/or circuits of your installation. If there is more than a single instance all devices are suffixed with the circuit or burner ID.
## Viessmann API limits
@@ -136,7 +131,7 @@ Set the mode for the climate device as defined by Viessmann (see [set_hvac_mode]
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. To target all entities, use `all` keyword instead of entity_id.
-| `vicare_mode` | no | New value of ViCare mode, one of: "dhw", "dhwAndHeating", "dhwAndHeatingCooling", "forcedReduced", "forcedNormal" or "standby"
+| `vicare_mode` | no | New value of ViCare mode. For supported values see the `vicare_modes` attribute of the climate entity.
#### Service `set_preset_mode`
diff --git a/source/_integrations/vlc_telnet.markdown b/source/_integrations/vlc_telnet.markdown
index 7a981418307..af74840b0ad 100644
--- a/source/_integrations/vlc_telnet.markdown
+++ b/source/_integrations/vlc_telnet.markdown
@@ -8,6 +8,8 @@ ha_iot_class: Local Polling
ha_codeowners:
- '@rodripf'
- '@dmcc'
+ - '@MartinHjelmare'
+ha_config_flow: true
ha_domain: vlc_telnet
ha_platforms:
- media_player
@@ -15,61 +17,20 @@ ha_platforms:
The `vlc_telnet` platform allows you to control a [VLC media player](https://www.videolan.org/vlc/index.html) using the built in telnet interface.
-To add a VLC media player to your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-media_player:
- - platform: vlc_telnet
- host: IP_ADDRESS
- password: PASSWORD
-```
-
-{% configuration %}
-name:
- default: VLC-TELNET
- description: The name to use in the frontend.
- required: false
- type: string
-password:
- description: The password to control the VLC through the telnet interface.
- required: true
- type: string
-host:
- description: The hostname or IP address where the VLC Player is running.
- required: true
- type: string
-port:
- default: 4212
- description: The port number where the VLC Player is running.
- required: false
- type: integer
-{% endconfiguration %}
-
-Only the "music" media type is supported for now.
-
-This service will control any instance of VLC player on the network with the telnet interface activated.
+This service will control any instance of VLC player on the network with the telnet interface activated.
To activate the telnet interface on your VLC Player please read the [official VLC documentation](https://wiki.videolan.org/Documentation:Modules/telnet/). Also remember to add a firewall rule allowing inbound connections for the port used in the device running VLC.
In case the VLC is running on a host with a locale other than English, you may get some errors during the volume change.
This is related to the different use of the decimal separator in other countries.
Consider to set the locale to `en_US` before starting VLC.
-## Full configuration
+{% include integrations/config_flow.md %}
-A full configuration for VLC could look like the one below:
+## Services
-```yaml
-# Example configuration.yaml entry
-media_player:
- - platform: vlc_telnet
- name: Remote Player
- host: 192.168.1.48
- port: 4212
- password: your-secure-password
-```
+When using the `media_player.play_media` service, only the "music" media type is supported for now.
## Home Assistant Add-on
-You can run a VLC Media Player on your Home Assistant installation using the a community provided [add-on](https://github.com/rodripf/hassio-local-vlc).
-Using it you can play files on the local network, Internet or files and playlist locally saved to the `/share` folder of your Home Assistant installation.
+You can run a VLC Media Player on your Home Assistant installation using the official [VLC add-on](https://github.com/home-assistant/addons/blob/master/vlc/DOCS.md).
+Using it you can play files on the local network, Internet or files and playlist locally saved to the `/share` and `/media` folder of your Home Assistant installation.
diff --git a/source/_integrations/wallbox.markdown b/source/_integrations/wallbox.markdown
index f5d8092d282..dc99433ae68 100644
--- a/source/_integrations/wallbox.markdown
+++ b/source/_integrations/wallbox.markdown
@@ -7,6 +7,7 @@ ha_release: 2021.6
ha_iot_class: Cloud Polling
ha_domain: wallbox
ha_platforms:
+ - number
- sensor
ha_config_flow: true
ha_codeowners:
@@ -32,3 +33,12 @@ The integration adds the following sensors:
- Max Available Power
- State of Charge
- Status Description
+- Max Charging Current
+
+## Number
+
+The integration adds the following number entity:
+
+- Max Charging Current
+
+The number entity is only loaded if the supplied username has sufficient rights to change the Max. Charging Current.
diff --git a/source/_integrations/watson_tts.markdown b/source/_integrations/watson_tts.markdown
index b18a116c668..c659e7fbd1e 100644
--- a/source/_integrations/watson_tts.markdown
+++ b/source/_integrations/watson_tts.markdown
@@ -106,3 +106,13 @@ Say with break:
Watson
```
+
+Optionally, specify a voice for the message:
+
+```yaml
+- service: tts.watson_tts_say
+ data:
+ message: "Hello from Watson"
+ options:
+ voice: en-US_EmilyV3Voice
+```
diff --git a/source/_integrations/wink.markdown b/source/_integrations/wink.markdown
deleted file mode 100644
index eea9cf3c11b..00000000000
--- a/source/_integrations/wink.markdown
+++ /dev/null
@@ -1,689 +0,0 @@
----
-title: Wink
-description: Instructions on how to set up the Wink hub within Home Assistant.
-ha_category:
- - Hub
- - Alarm
- - Binary Sensor
- - Climate
- - Cover
- - Fan
- - Light
- - Lock
- - Scene
- - Sensor
- - Switch
- - Water Heater
-featured: false
-ha_iot_class: Cloud Polling
-ha_release: pre 0.7
-ha_domain: wink
-ha_platforms:
- - alarm_control_panel
- - binary_sensor
- - climate
- - cover
- - fan
- - light
- - lock
- - scene
- - sensor
- - switch
- - water_heater
----
-
-[Wink](https://www.wink.com/) is a home automation hub that can control a whole wide range of devices on the market. Or, as they say in their own words:
-
- The Wink integration has been marked deprecated and is pending removal in Home Assistant Core 2021.12.
- It is considered impossible to obtain the needed API keys to use this integration. The developer portal has been taken down and support has confirmed to their users they won't be allowing new applications.
-
-
-
- Wink offers one, quick and simple way to connect people with the products they rely on every day in their home.
-
-
-Home Assistant integrates with the Wink API and automatically sets up any switches, lights, locks, fans, climate devices (thermostats, air conditioners, and water heaters), covers, sensors, alarms, and sirens.
-
-There is currently support for the following device types within Home Assistant:
-
-- [Alarm](#alarm-control-panel)
-- [Binary Sensor](#binary-sensor)
-- [Climate](#climate)
-- [Cover](#cover)
-- [Fan](#fan)
-- [Light](#light)
-- [Lock](#lock)
-- Scene
-- [Sensor](#sensor)
-- [Switch](#switch)
-- [Water heater](#water-heater)
-
-## Authenticate using [developer.wink.com](https://developer.wink.com)
-
-You need to set up a developer account with Wink. This process can take a few days to get approved.
-
-Wink requests three pieces of information from the user when they sign up for a developer account.
-
-1. `Name:` This can be anything, for example, "Home Assistant"
-2. `Website:` The external address of your Home Assistant instance. If not externally accessible you can use your email address.
-3. `Redirect URI:` This should be `http://192.168.1.5:8123/auth/wink/callback` replacing the IP with the internal IP of your Home Assistant box.
-
-No settings are required in the `configuration.yaml` other than `wink:`.
-
-After adding `wink:` to your `configuration.yaml` and restarting Home Assistant you will see a persistent notification on the frontend with a `CONFIGURE` button that will guide you through the setup via the frontend configurator.
-
-
-When using the configurator make sure the initial setup is performed on the same local network as the Home Assistant instance, if not from the same box Home Assistant is running on. This will allow for authentication redirects to happen correctly.
-
-
-```yaml
-wink:
-```
-
-## Full oauth authentication (legacy)
-
-This should be used for users that obtained their client_id and client_secret via email from Wink support prior to [developer.wink.com's](https://developer.wink.com) existence.
-
-```yaml
-wink:
- email: YOUR_WINK_EMAIL_ADDRESS
- password: YOUR_WINK_PASSWORD
- client_id: YOUR_WINK_CLIENT_ID
- client_secret: YOUR_WINK_CLIENT_SECRET
-```
-
-Please pay attention that the required entries are only needed for legacy OAuth access.
-
-{% configuration %}
-email:
- description: Your Wink login email address.
- required: true
- type: string
-password:
- description: Your Wink login password.
- required: true
- type: string
-client_id:
- description: Your provided Wink `client_id`.
- required: true
- type: string
-client_secret:
- description: Your provided Wink `client_secret`.
- required: true
- type: string
-local_control:
- description: If set to `true` state changes for lights, locks and switches will be issued to the local hub.
- required: false
- type: boolean
- default: false
-{% endconfiguration %}
-
-Local control:
-
-- Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `false`.
-- Using local control doesn't appear to make commands any quicker, but does function in an internet/Wink outage.
-- Local control is also only available for the Wink hub v1 and v2, not the Wink relay.
-- Local control isn't used during the start-up of Home Assistant; this means initial setup requires an active internet connection.
-- Local control requests are first sent to the controlling hub. If a request fails, that request will attempt to go online.
-
-
-
-It is possible for the hub to get into a bad state where it stops accepting local control request. If this happens, you will notice requests taking significantly longer as they are redirected online. This doesn't happen often, but when it does, it appears to be resolved by rebooting the hub.
-
-The following error will be logged if the hub is rejecting local requests.
-
-```txt
-Error sending local control request. Sending request online
-```
-
-
-
-## Service `refresh_state_from_wink`
-
-The Wink integration only obtains the device states from the Wink API once, during startup. All updates after that are pushed via a third party called PubNub. On rare occasions where an update isn't pushed device states can be out of sync.
-
-You can use the service wink/refresh_state_from_wink to pull the most recent state from the Wink API for all devices. If `local_control` is set to `true` states will be pulled from the devices controlling hub, not the online API.
-
-## Service `pull_newly_added_devices_from_wink`
-
-You can use the service wink/add_new_devices to pull any newly paired Wink devices to an already running instance of Home Assistant. Any new devices will also be added if Home Assistant is restarted.
-
-## Service `delete_wink_device`
-
-You can use the service wink/delete_wink_device to remove/unpair a device from Wink.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ---------------------------------------------------------- |
-| `entity_id` | no | String that points at the `entity_id` of device to delete. |
-
-## Service `pair_new_device`
-
-You can use the service wink/pair_new_device to pair a new device to your Wink hub/relay
-
-| Service data attribute | Optional | Description |
-| ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| `hub_name` | no | The name of the hub to pair a new device to. |
-| `pairing_mode` | no | One of the following [zigbee, zwave, zwave_exclusion, zwave_network_rediscovery, lutron, bluetooth, kidde] |
-| `kidde_radio_code` | conditional | A string of 8 1s and 0s one for each dip switch on the kidde device left --> right = 1 --> 8 (Required if pairing_mode = kidde) |
-
-
-Calling service wink/pull_newly_added_wink_devices after a device is paired will add that new device to Home Assistant. The device will also show up on the next restart of Home Assistant.
-
-
-## Service `rename_wink_device`
-
-You can use the service wink/rename_wink_device to change the name of a device.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ---------------------------------------------------------- |
-| `entity_id` | no | String that points at the `entity_id` of device to rename. |
-| `name` | no | The name to change it to. |
-
-
-Home Assistant entity_ids for Wink devices are based on the Wink device's name. Calling this service will not change the entity_id of the device until Home Assistant is restarted.
-
-
-
-The Wink hub, by default, can only be accessed via the cloud. This means it requires an active internet connection and you will experience delays when controlling and updating devices (~3s).
-
-
-## Custom Wink devices and their services
-
-- GoControl siren and strobe
-- Dome siren/chime/strobe
-- Quirky Nimbus (Legacy device) These can no longer be officially added to your Wink account
-
-### Service `set_siren_auto_shutoff`
-
-You can use the service wink/set_siren_auto_shutoff to set how long the siren will sound before shutting off.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
-| `auto_shutoff` | no | Int. One of [None, -1, 30, 60, 120] (None and -1 are forever. Use None for gocontrol, and -1 for Dome) |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren. |
-
-Example:
-
-```yaml
-script:
- set_all_sirens_to_one_minute_auto_shutoff:
- sequence:
- - service: wink.set_siren_auto_shutoff
- data:
- auto_shutoff: 60
-```
-
-
-The following services only work with the Dome siren/chime.
-
-
-### Service `set_chime_volume`
-
-You can use the service wink/set_chime_volume to set the volume for the chime on your Dome siren/chime.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ------------------------------------------------------------------------ |
-| `volume` | no | String. One of ["low", "medium", "high"] |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of the siren/chime. |
-
-Example:
-
-```yaml
-script:
- set_chime_volume_to_low_for_all_chimes
- sequence:
- - service: wink.set_chime_volume
- data:
- volume: "low"
-```
-
-### Service `set_siren_volume`
-
-You can use the service wink/set_chime_volume to set the volume for the chime on your Dome siren/chime.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------------- |
-| `volume` | no | String. One of ["low", "medium", "high"] |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren/chime. |
-
-Example:
-
-```yaml
-script:
- set_siren_volume_to_low_for_all_sirens
- sequence:
- - service: wink.set_siren_volume
- data:
- volume: "low"
-```
-
-### Service `enable_chime`
-
-You can use the service wink/enable_chime to set the tone and enable the chime on your Dome siren/chime.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `tone` | no | String. One of ["doorbell", "fur_elise", "doorbell_extended", "alert", "william_tell", "rondo_alla_turca", "police_siren", "evacuation", "beep_beep", "beep", "inactive"] |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren/chime. |
-
-Example:
-
-```yaml
-script:
- execute_doorbell
- sequence:
- - service: wink.enable_chime
- data:
- tone: "doorbell"
-```
-
-### Service `set_siren_tone`
-
-You can use the service wink/set_siren_tone to set the tone on your Dome siren. This tone will be used the next time the siren is executed.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `tone` | no | String. One of ["doorbell", "fur_elise", "doorbell_extended", "alert", "william_tell", "rondo_alla_turca", "police_siren", "evacuation", "beep_beep", "beep"] |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren/chime. |
-
-Example:
-
-```yaml
-script:
- set_siren_to_alert:
- sequence:
- - service: wink.set_siren_tone
- data:
- tone: "alert"
-```
-
-### Service `set_siren_strobe_enabled`
-
-You can use the service wink/set_siren_strobe_enabled to enable or disable the strobe when the siren is executed.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------------- |
-| `enabled` | no | Boolean. True or False. |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren/chime. |
-
-Example:
-
-```yaml
-script:
- disable_siren_strobe:
- sequence:
- - service: wink.set_siren_strobe_enabled
- data:
- enabled: false
-```
-
-### Service `set_chime_strobe_enabled`
-
-You can use the service wink/set_chime_strobe_enabled to enable or disable the strobe when the chime is executed.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------------- |
-| `enabled` | no | Boolean. True or False. |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of chime/chime. |
-
-Example:
-
-```yaml
-script:
- disable_chime_strobe:
- sequence:
- - service: wink.set_chime_strobe_enabled
- data:
- enabled: false
-```
-
-### Service `set_nimbus_dial_state`
-
-You can use the service wink/set_nimbus_dial_state to update an individual dial's value/position and its labels
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
-| `entity_id` | no | String or list of strings that point at `entity_id`s of chime/chime. |
-| `value` | no | A number, should be between the dials min and max value (See set_nimbus_dial_configuration below) |
-| `labels` | yes | A list of strings the first being the value set on the dial's face and the second being the value on the dial face when the Nimbus is pressed |
-
-Example:
-
-```yaml
-script:
- set_dial_1_value:
- sequence:
- - service: wink.set_nimbus_dial_state
- target:
- entity_id: wink.nimbus_dial_1
- data:
- value: 150
- labels:
- - "Dial 1"
- - "150"
-```
-
-### Service `set_nimbus_dial_configuration`
-
-You can use the service wink/set_nimbus_dial_configuration to update an individual dial's configuration.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ------------------------------------------------------------------------------- |
-| `entity_id` | no | String or list of strings that point at `entity_id`s of chime/chime. |
-| `rotation` | yes | One of "cw" or "ccw" the direction the dial hand should rotate. |
-| `ticks` | yes | A positive number, the number of times the hand should move. |
-| `scale` | yes | One of "linear" or "log" How the dial should move in response to higher values. |
-| `min_value` | yes | A number, the minimum value that the dial can have. |
-| `max_value` | yes | A number, the maximum value that the dial can have. |
-| `min_position` | yes | A number generally [0-360], the minimum position for the dial's hand. |
-| `max_value` | yes | A number generally [0-360], the maximum position for the dial's hand. |
-
-Example:
-
-```yaml
-script:
- set_dial_1_value:
- sequence:
- - service: wink.set_nimbus_dial_state
- target:
- entity_id: wink.nimbus_dial_1
- data:
- rotation: "ccw"
-```
-
-## Alarm Control Panel
-
-The Wink alarm platform allows you to control your [Wink](https://www.wink.com/) Canary all-in-one security camera.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported devices
-
-- Canary all-in-one security camera
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Binary Sensor
-
-The Wink binary sensor platform allows you to get data from your [Wink](https://www.wink.com/) binary sensors.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported Binary sensor devices
-
-- Smoke and CO detectors (No Wink hub required for Nest)
-- Window/Door sensors
-- Motion sensors
-- Ring Door bells (No hub required)
-- Liquid presence sensors
-- Z-Wave lock key codes
-- Lutron connected bulb remote buttons
-- Wink Relay buttons and presence detection
-- Wink spotter loudness and vibration (No Wink hub required)
-- Wink hub devices connection status. This includes any paired hubs like Hue, Wink v1, Wink v2, Wink Relay...
-- Dropcam sensors
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Climate
-
-The Wink climate platform allows you to get data from your [Wink](https://www.wink.com/) thermostats and air conditioners.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported climate devices
-
-- Nest (No Wink hub required)
-- Ecobee (No Wink hub required)
-- Sensi (No Wink hub required)
-- Carrier (Unconfirmed)
-- Honeywell (No Wink hub required)
-- Generic Z-Wave
-- Quirky Aros window AC unit
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Cover
-
-Wink Cover garage door functionality varies on the product. Home Assistant can open, close, and view state of GoControl/Linear openers. For Chamberlain MyQ-enabled openers, Home Assistant is limited to show current state (open or closed) only using this Wink cover. This restriction was imposed by Chamberlain for third party control. Wink suggests that MyQ customers should contact Chamberlain directly to inquire about expanding permissions.
-
-The [MyQ Cover](/integrations/myq) does provide full functionality for opening and closing Chamberlain MyQ-enabled garage doors. If installed along with the Wink Component, a duplicate garage door entity may exist.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported cover devices
-
-- Bali window treatments
-- Lutron shades
-- Pella motorized blinds and shades
-- GoControl garage door opener
-- Chamberlain MyQ (Limited functionality) (No Wink hub required)
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Fan
-
-The Wink fan platform allows you to control your [Wink](https://www.wink.com/) fans.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported fan devices
-
-- Home Decorator Wink-enabled Gardinier ceiling fan
-- Hampton Bay ceiling fan module
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Light
-
-The `wink` light platform allows you to use your [Wink](https://www.wink.com/) lights.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported light devices
-
-- Z-Wave switches with dimming
-- Hue
-- Lightify
-- GE link
-- Wink light groups (User created groups of lights)
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Lock
-
-The Wink lock platform allows you to control your [Wink](https://www.wink.com/) locks.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported lock devices
-
-- Kwikset
-- Schlage
-- August (No Wink hub required) (August Connect required)
-- Generic Z-Wave
-
-
-The following services have only been confirmed on Schlage locks.
-
-
-### Service `set_lock_alarm_mode`
-
-You can use the service wink/set_lock_alarm_mode to set the alarm mode of your lock.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------- |
-| `mode` | no | String one of tamper, activity, or forced_entry |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. |
-
-Example:
-
-```yaml
-script:
- set_locks_to_tamper:
- sequence:
- - service: wink.set_lock_alarm_mode
- data:
- mode: "tamper"
-```
-
-### Service `set_lock_alarm_sensitivity`
-
-You can use the service wink/set_lock_alarm_sensitivity to set the alarm sensitivity of your lock.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------- |
-| `sensitivity` | no | String one of low, medium_low, medium, medium_high, high. |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. |
-
-Example:
-
-```yaml
-script:
- set_locks_to_high_sensitivity:
- sequence:
- - service: wink.set_lock_alarm_sensitivity
- data:
- sensitivity: "high"
-```
-
-### Service `set_lock_alarm_state`
-
-You can use the service wink/set_lock_alarm_state to set the alarm state of your lock.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------- |
-| `enabled` | no | Boolean enabled or disabled, true or false | | |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. | | |
-
-Example:
-
-```yaml
-script:
- disable_all_locks_alarm:
- sequence:
- - service: wink.set_lock_alarm_state
- data:
- enabled: false
-```
-
-### Service `set_lock_beeper_state`
-
-You can use the service wink/set_lock_beeper_state to set the beeper state of your lock.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------- |
-| `enabled` | no | Boolean enabled or disabled, true or false | |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. | |
-
-Example:
-
-```yaml
-script:
- disable_all_locks_beepers:
- sequence:
- - service: wink.set_lock_beeper_state
- data:
- enabled: false
-```
-
-### Service `set_lock_vacation_mode`
-
-You can use the service wink/set_lock_vacation_mode to set the vacation mode of your lock.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------- |
-| `enabled` | no | Boolean enabled or disabled, true or false |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks. |
-
-Example:
-
-```yaml
-script:
- enabled_vacation_mode_on_all_locks:
- sequence:
- - service: wink.set_lock_vacation_mode
- data:
- enabled: false
-```
-
-### Service `add_new_lock_key_code`
-
-You can use the service wink/add_new_lock_key_code to add a new user code to your Wink lock.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | -------------------------------------------------------------- |
-| `entity_id` | no | String or list of strings that point at `entity_id`s of locks. |
-| `name` | no | the name of the new key code |
-| `code` | no | The new code. Must match length of existing codes. |
-
-
-Calling service wink/pull_newly_added_wink_devices will add the new key code to Home Assistant. The device will also show up on the next restart of Home Assistant.
-
-
-
-If supported by your lock, a binary sensor will be created for each user key code you have defined. These key codes will turn on when the code is entered and automatically turn off after a few seconds.
-
-
-## Sensor
-
-The Wink sensor platform allows you to get data from your [Wink](https://www.wink.com/) sensors.
-
-The requirement is that you have setup [Wink](/integrations/wink/) from above.
-
-### Supported sensor devices
-
-- Wink Relay temperature, proximity, and humidity
-- Wink Spotter temperature, humidity, and brightness (No Wink hub required)
-- Wink Porkfolio balance (No Wink hub required)
-- Wink eggminder (No Wink hub required)
-- Nest protect Smoke and CO severity (No confirmation that this is actually reported) (No Wink hub required)
-- Motion sensor temperature
-- Quirky refuel propane tank monitor (No Wink hub required)
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
-## Switch
-
-The Wink switch platform allows you to control your [Wink](https://www.wink.com/) switches.
-
-The requirement is that you have set up [Wink](/integrations/wink/) from above.
-
-## Supported switch devices
-
-- Wink Pivot power genius (No Wink hub required)
-- non-dimming Z-Wave in-wall switches (dimming switches show up as lights)
-- Wink Relay load controlling switches
-- Rachio sprinkler controller (No Wink hub required)
-- iHome smart plug (No Wink hub required)
-- Wink switch groups (User created groups of switches)
-
-## Water heater
-
-The Wink water heater platform allows you to get data from your [Wink](https://www.wink.com/) Water Heaters.
-
-The requirement is that you have set up [Wink](/integrations/wink/) from above.
-
-## Supported water heaters
-
-- Rheem Econet water heaters (No Wink hub required)
-
-
-
-Wink water heaters use to live under the `climate` platform prior to release 0.81.
-
-
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
index 3d5e7a6a34a..d8126b800d4 100644
--- a/source/_integrations/wled.markdown
+++ b/source/_integrations/wled.markdown
@@ -15,6 +15,7 @@ ha_domain: wled
ha_zeroconf: true
ha_platforms:
- light
+ - number
- sensor
- select
- switch
@@ -53,7 +54,9 @@ If WLED has 2 or more segments, each segment gets its own light entity in
Home Assistant. Additionally, a master light entity is created. This master
entity controls the strip power and overall brightness applied to all segments.
-## Selects
+Additionally, select and number entities described below will be created for each segment.
+
+## Select Entities
This integration provides selects for the following information from WLED:
@@ -61,7 +64,14 @@ This integration provides selects for the following information from WLED:
- Preset
- Color palette (per segment, disabled by default).
-## Sensors
+## Number Entities
+
+This integration provides `number` entities to control the following, segment-specific settings:
+
+- Intensity
+- Speed
+
+## Sensor Entities
This integration provides sensors for the following information from WLED:
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index 9187e72f5f3..37a7698d20d 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -252,15 +252,16 @@ Favorite Level | Set the favorite level
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Humidity | The current humidity measured
-Motor Speed | The current motor speed measured in rpm
-PM2.5 | The current particulate matter 2.5 measured
-Purify Volume | The volume of purified air in qubic meter
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Humidity | The current humidity measured | True
+Motor Speed | The current motor speed measured in rpm | True
+PM2.5 | The current particulate matter 2.5 measured | True
+Purify Volume | The volume of purified air in qubic meter | False
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -292,17 +293,18 @@ Volume | Set the volume
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Humidity | The current humidity measured
-Illuminance | The current illuminance measured
-Motor Speed | The current motor speed measured in rpm
-PM2.5 | The current particulate matter 2.5 measured
-Purify Volume | The volume of purified air in qubic meter
-Second Motor Speed | The current second motor speed measured in rpm
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Humidity | The current humidity measured | True
+Illuminance | The current illuminance measured | True
+Motor Speed | The current motor speed measured in rpm | True
+PM2.5 | The current particulate matter 2.5 measured | True
+Purify Volume | The volume of purified air in qubic meter | False
+Second Motor Speed | The current second motor speed measured in rpm | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -329,16 +331,17 @@ Volume | Set the volume
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Humidity | The current humidity measured
-Illuminance | The current illuminance measured
-Motor Speed | The current motor speed measured in rpm
-PM2.5 | The current particulate matter 2.5 measured
-Second Motor Speed | The current second motor speed measured in rpm
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Humidity | The current humidity measured | True
+Illuminance | The current illuminance measured | True
+Motor Speed | The current motor speed measured in rpm | True
+PM2.5 | The current particulate matter 2.5 measured | True
+Second Motor Speed | The current second motor speed measured in rpm | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -364,14 +367,15 @@ Favorite Level | Set the favorite level
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Humidity | The current humidity measured
-Motor Speed | The current motor speed measured in rpm
-PM2.5 | The current particulate matter 2.5 measured
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Humidity | The current humidity measured | True
+Motor Speed | The current motor speed measured in rpm | True
+PM2.5 | The current particulate matter 2.5 measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -405,15 +409,16 @@ LED Brightness | Controls the brightness of the LEDs (bright, dim, off)
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Humidity | The current humidity measured
-Motor Speed | The current motor speed measured in rpm
-PM2.5 | The current particulate matter 2.5 measured
-Purify Volume | The volume of purified air in qubic meter
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Humidity | The current humidity measured | True
+Motor Speed | The current motor speed measured in rpm | True
+PM2.5 | The current particulate matter 2.5 measured | True
+Purify Volume | The volume of purified air in qubic meter | False
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -435,12 +440,12 @@ LED Brihtness | Set the LED brightness
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Motor Speed | The current motor speed measured in rpm
-PM2.5 | The current particulate matter 2.5 measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Motor Speed | The current motor speed measured in rpm | True
+PM2.5 | The current particulate matter 2.5 measured | True
- Switch entities
@@ -461,15 +466,16 @@ Child Lock | Turn on/off the child lock
- `button_pressed`
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-PM2.5 | The current particulate matter 2.5 measured
-Illuminance | The current illuminance measured
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Motor Speed | The current motor speed measured in rpm
-Second Motor Speed | The current second motor speed measured in rpm
-Purify Volume | The volume of purified air in qubic meter
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+PM2.5 | The current particulate matter 2.5 measured | True
+Illuminance | The current illuminance measured | True
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Motor Speed | The current motor speed measured in rpm | True
+Second Motor Speed | The current second motor speed measured in rpm | True
+Purify Volume | The volume of purified air in qubic meter | False
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -488,15 +494,16 @@ LED | Turn on/off the LED
- `extra_features`
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Carbon Dioxide | The current carbon dioxide measured in ppm
-Filter Life Remaining | The remaining life of the filter
-Filter Use | Filter usage time in hours
-Humidity | The current humidity measured
-Illuminance | The current illuminance measured
-PM2.5 | The current particulate matter 2.5 measured
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | ----------------------- | -----------------------
+Carbon Dioxide | The current carbon dioxide measured in ppm | True
+Filter Life Remaining | The remaining life of the filter | True
+Filter Use | Filter usage time in hours | True
+Humidity | The current humidity measured | True
+Illuminance | The current illuminance measured | True
+PM2.5 | The current particulate matter 2.5 measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Select entities
@@ -541,11 +548,12 @@ LED Brightness | Controls the brightness of the LEDs (bright, dim, off)
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Humidity | The current humidity measured
-Temperature | The current temperature measured
-Water Level | The current water level percentage measured
+Sensor | Description | Enabled by default
+----------------------- | -------------------------------------------------------------- | ------------------
+Humidity | The current humidity measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
+Water Level | The current water level percentage measured | True
- Switch entities
@@ -583,11 +591,12 @@ LED Brightness | Controls the brightness of the LEDs (bright, dim, off)
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Humidity | The current humidity measured
-Temperature | The current temperature measured
-Water Level | The current water level percentage measured
+Sensor | Description | Enabled by default
+----------------------- | -------------------------------------------------------------- | ------------------
+Humidity | The current humidity measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
+Water Level | The current water level percentage measured | True
- Switch entities
@@ -632,12 +641,13 @@ LED Brightness | Controls the brightness of the LEDs (bright, dim, off)
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Actual Speed | The current motor speed measured in rpm
-Humidity | The current humidity measured
-Temperature | The current temperature measured
-Water Level | The current water level percentage measured
+Sensor | Description | Enabled by default
+----------------------- | -------------------------------------------------------------- | ------------------
+Actual Speed | The current motor speed measured in rpm | True
+Humidity | The current humidity measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
+Water Level | The current water level percentage measured | True
- Switch entities
@@ -681,11 +691,12 @@ LED Brightness | Controls the brightness of the LEDs (bright, dim, off)
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Humidity | The current humidity measured
-Temperature | The current temperature measured
-Water Level | The current water level percentage measured
+Sensor | Description | Enabled by default
+----------------------- | -------------------------------------------------------------- | ------------------
+Humidity | The current humidity measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
+Water Level | The current water level percentage measured | True
- Switch entities
@@ -719,10 +730,11 @@ Water Tank Empty | Indicates whether the water tank is empty or not
- Sensor entities
-Sensor | Description
------------------------ | -----------------------
-Humidity | The current humidity measured
-Temperature | The current temperature measured
+Sensor | Description | Enabled by default
+----------------------- | -------------------------------------------------------------- | ------------------
+Humidity | The current humidity measured | True
+Temperature | The current temperature measured | True
+Use Time | The accumulative number of seconds the device has been in use | False
- Switch entities
@@ -1363,41 +1375,53 @@ automation:
segments: [1, 1]
```
+### Sensors
+
+{% configuration_basic %}
+
+DnD Start*:
+ description: The timestamp when the next DnD will start
+DnD End*:
+ description: The timestamp when the current or next DnD will end
+Total duration*:
+ description: The total cleaning duration in seconds
+Total Clean Area*:
+ description: The total cleaning area in square meters
+Total Clean Count*:
+ description: The total amount of times a clean cycle has been ran
+Total Dust Collection Count*:
+ description: The total amount of dust that has been collected
+Filter Left*:
+ description: How long the filter can be used in seconds
+Main Brush Left*:
+ description: How long the main brush can be used in seconds
+Sensor Dirty Left*:
+ description: How long the sensor can be used in seconds
+Last Clean Area*:
+ description: The last cleaned area in square meters
+Last Clean Duration*:
+ description: The last clean duration in seconds
+Last Clean End*:
+ description: The last clean end time as a timestamp
+Last Clean Start*:
+ description: The last clean start time as a timestamp
+Mop Attached**:
+ description: If the mop is attached
+Water Box Attached**:
+ description: If the watter box is attached
+Water Shortage**:
+ description: If the water box is low on water
+
+{% endconfiguration_basic %}
+
+
+* Needs to be manually enabled once the integration has been added.
+** Only enabled if the vacuum has a mop.
+
+
### Attributes
-In addition to [all of the attributes provided by the `vacuum` component](/integrations/vacuum/#attributes),
-(`battery_icon`, `cleaned_area`, `fan_speed`, `fan_speed_list`, and `params`), the `xiaomi` platform introduces specific attributes. These are:
-
-- `cleaning_time`
-- `do_not_disturb`
-- `main_brush_left`
-- `side_brush_left`
-- `filter_left`
-- `sensor_dirty_left`
-- `cleaning_count`
-- `total_cleaned_area`
-- `total_cleaning_time`
-- `clean_start`
-- `clean_end`
-- `mop_attached`
-
-The following table shows the units of measurement for each attribute:
-
-| Attribute | Unit of measurement | Description |
-|---------------------------|---------------------|----------------------------------------------------------------|
-| `do_not_disturb` | | DND mode on / off |
-| `cleaning_time` | minutes | Last / actual cleaning time in minutes |
-| `cleaned_area` | square meter | Last / actual cleaned area in square meters |
-| `main_brush_left` | hours | Hours left until a change of the main brush is needed |
-| `side_brush_left` | hours | Hours left until a change of the side brush is needed |
-| `filter_left` | hours | Hours left until a change of the filter is needed |
-| `sensor_dirty_left` | hours | Hours left until the wall and cliff sensors should be cleaned |
-| `cleaning_count` | | Number of total cleaning cycles |
-| `total_cleaned_area` | square meter | Total cleaned area in square meters |
-| `total_cleaning_time` | minutes | Total cleaning time in minutes |
-| `clean_start` | datetime | The last date/time the vacuum started cleaning (offset naive) |
-| `clean_stop` | datetime | The last date/time the vacuum finished cleaning (offset naive) |
-| `mop_attached` | | A mop and water box are attached / not attached |
+The vacuums from the `xiaomi` platform does not expose additional attributes other the ones provided by [the `vacuum` component](/integrations/vacuum/#attributes),
### Example on how to clean a specific room
diff --git a/source/_integrations/zwave.markdown b/source/_integrations/zwave.markdown
index 503d653bff8..aa5f1f89deb 100644
--- a/source/_integrations/zwave.markdown
+++ b/source/_integrations/zwave.markdown
@@ -33,7 +33,7 @@ ha_platforms:
This integration is deprecated. We recommend using [the Z-Wave JS integration](/integrations/zwave_js).
-The Z-Wave integration will no longer receive any updates. It will not be removed unless it becomes incompatible with a future version of Python.
+The Z-Wave integration will no longer receive any updates. The technical dependencies may render this integration unusable in the future at which time it may be removed.
+
+Screenshot of WLED that now has a button that links to the WLED web interface of the device directly.
+
+
+Screenshot of the Sonos device page that now has entities categorized.
+
` to your entity. Not a great
+experience, especially with the number of icons available your browser doesn't
+always like that website.
+
+Thanks to the great work of [@piitaya](https://github.com/piitaya), we now have
+a beautiful, super easy, smart and fast icon picker! Yes, you can now search
+and choose icons, straight from the Home Assistant interface.
+
+
+
+Screen capture showing the new icon picker in action.
+
+
+When you start typing, it not only looks for icons that match the MDI code, it
+also looks for aliases and categories of the icons. That way, you'll always
+find the icon you're looking for.
+
+Third-party custom icon sets can also utilize this feature; however, the author
+of that set needs to add compatibility for it. For example, the
+[Hue icons](https://github.com/arallsopp/hass-hue-icons) by [arallsopp](https://github.com/arallsopp)
+added support for this feature already.
+
+## Tuya update
+
+Our previous release included an update to the Tuya integration, making it use
+the official API instead of a soon-to-be-removed API. Sadly, this update did
+not live up to our standards, for which we want to apologize.
+
+Tuya had initially planned to deprecate the old API in December, giving users
+2 months to migrate. That’s not a lot of time, so we decided to move forward
+with releasing the updated integration. Tuya pushed back the timeline for
+sunsetting the old API with 6 months; but it was too late for us to change course
+and ship the old integration.
+
+The updated Tuya integration had some bugs and also was missing some features
+compared to the previous integration and various available custom components.
+This caused some users to have a poor experience. To make up for this, [@frenck]
+spent a good chunk of time on bringing the Tuya integration up to the latest
+standards and adding [a ton of new features and bug fixes](https://github.com/home-assistant/core/pulls?q=is%3Apr+sort%3Aupdated-desc+author%3Afrenck+label%3A%22integration%3A+tuya%22+is%3Aclosed).
+
+Almost all Home Assistant entity platforms are supported now, including
+(binary) sensors, covers, vacuums, and even cameras! However, be aware that
+Tuya has a lot of devices and variations, so there is still work left to be
+done; We have done everything we can to provide a solid base this release.
+
+As a final note: Some people complained about that this integration relies
+on the cloud. We have always supported integrations with both local and
+cloud APIs. Integrations with cloud APIs allow people to adopt Home Assistant
+without having to replace all devices in their house. Although we recommend
+local, using devices that require the cloud, or are fully local,
+is a choice everyone should make for themselves.
+
+## Some nice new template filters
+
+For some of our more advanced users, this release has some helpful template
+improvements included as well!
+
+Let's start with the new `today_at` filter/function that [@Petro31] added. It
+allows you to quickly get a DateTime at a certain time of today. This can be
+really helpful if you need to compare against another DateTime. For example:
+
+{% raw %}
+
+```yaml
+# Is the current time past 10:15?
+{{ now() > today_at("10:15") }}
+```
+
+{% endraw %}
+
+Next up is [@raman325], who added the `area_entities` and `area_devices` filters
+and functions which allow you to get all devices or entities that are in an area.
+The methods return a list, which you can loop on.
+
+{% raw %}
+
+```yaml
+{{ area_entities('Living Room') }} # ['light.ceiling', 'media_player.tv', ...]
+```
+
+{% endraw %}
+
+Lastly, [@Petro31] added another one: the `average` filter and function. It does
+what you think it does... It calculates the average of a list of items you pass
+to it.
+
+{% raw %}
+
+```yaml
+{{ [1, 2, 3, 4, 5] | average }} # Result: 3
+```
+
+{% endraw %}
+
+## Other noteworthy changes
+
+There is much more juice in this release; here are some of the other
+noteworthy changes this release:
+
+- Debug traces of automations and scripts are now stored! So you no longer
+ lose them when you restart Home Assistant. Thanks [@emontnemery]
+- [@frenck] adjusted the number entity and it can now be displayed as a slider
+ instead of an input box. Home Assistant will automatically figure out which
+ is the best to use.
+- Add support for fan groups! Thanks [@bdraco]!
+- Thanks to [@ludeeus], the Supervisor integration now has binary sensors that
+ can tell you which add-on is running or not.
+- [@allenporter] blew our minds this release by adding initial support for
+ WebRTC streams and cameras to Home Assistant.
+- But had a good reason, he added support for Nest Battery Cameras
+ and Nest battery Doorbell Cameras to Home Assistant! Thanks [@allenporter]!
+- When you log in to Home Assistant, there is now a "Keep me logged in"
+ checkbox! Awesome [@MartinTuroci](http://github.com/MartinTuroci)
+- [@goyney](https://github.com/goyney) updated the Material Design Icon to
+ version v6.4.95 ensuring we have all the latest icons available in our new
+ beautiful icon picker.
+- Sure PetCare now supports the Felaqua devices, thanks [@benleb]!
+- The MQTT number platform now has support for providing a unit of measurement
+ and resetting the number field (by [@frenck] and [@emontnemery]).
+- The Broadlink integration added sensors for voltage, current, overload,
+ and total consumption. Thanks [@felipediel]!
+- WLED now has the much requested sliders for speed & intensity controls.
+ Thanks, [@rytilahti]!
+- OpenGarage has seen lots of updates and love from [@Danielhiversen], adding
+ lots of sensors in the process.
+- With the recent improvements made to the VLC media player integration and
+ add-on, there is now a way to get TTS working by connecting some speakers to
+ your Blue, ODROID or Raspberry Pi. Thanks, [@mib1185] & [@MartinHjelmare]!
+
+Adding support for long-term statistics is a much requested feature; This
+release adds support for long-term statistics to the following integrations:
+
+- AEMET (thanks [@Noltari])
+- Efery (thanks [@tkdrob])
+- EnOcean (thanks [@davidlb])
+- Gogogate2 (thanks [@thomas-svrts])
+- Huisbaasje (thanks [@dennisschroer])
+- Nest (thanks [@allenporter])
+- Ondilo ICO (thanks [@TheNogl])
+- OpenWeatherMap (thanks [@dkt01])
+- Plugwise (thanks [@bouwew])
+- REST (thanks [@koying])
+- Scrape sensor (thanks [@lukas-hetzenecker])
+- Tado (thanks [@Noltari])
+- Tado sensors (thanks [#58111])
+- WAQI (thanks [@davidlb])
+
+## New Integrations
+
+We welcome the following new integration this release:
+
+- [LOOKin][lookin docs], done by [@ANMalko]
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- [Aurora ABB Solar PV][aurora_abb_powerone docs], done by [@davet2001]
+- [Efergy][efergy docs], done by [@tkdrob]
+- [Flux LED][flux_led docs], done by [@icemanch] and [@bdraco]
+- [OctoPrint][octoprint docs], done by [@rfleming71]
+- [Stookalert][stookalert docs], done by [@frenck]
+- [Venstar][venstar docs], done by [@garbled1]
+- [VLC Media Player Telnet][vlc_telnet docs], done by [@MartinHjelmare]
+
+## If you need help...
+
+...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e).
+
+Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template.
+
+
+
+## Breaking Changes
+
+Below is a listing of the breaking change for this release, per subject or
+integration. Click on one of those to read more about the breaking change
+for that specific item.
+
+{% details "All Service Calls" %}
+
+Entities that are now shown on the device page on the `configuration` or `diagnostic`
+section, will **no longer be targeted and called** by service calls that target
+the specific device or area the device or entity is in.
+
+If you need to make a service call to these entities, you will need to call
+them by their entity ID explicitly.
+
+Please note: This does not apply to entity groups, as groups are explicitly
+based on entities (unlike areas) and thus still work as before.
+
+([@emontnemery] - [#57671])
+
+{% enddetails %}
+
+{% details "Amazon Alexa / Google Assistant" %}
+
+Entities that are now shown on the device page on the `configuration` or `diagnostic`
+section, will **no longer be exposed** by default to Amazon Alexa or Google Assistant.
+
+If you want to expose these entities, you'll need to expose them explicitly.
+
+([@emontnemery])
+
+{% enddetails %}
+
+{% details "Recorder / Databases" %}
+
+The Home Assistant project has now explicitly defined a set of databases
+that are supported by the recorder.
+
+We now support the following databases:
+
+- MariaDB ≥ 10.3
+- MySQL ≥ 8.0
+- PostgreSQL ≥ 12
+- SQLite ≥ 3.32.1
+
+All other databases and database versions are now deprecated.
+
+If your used or configured database doesn't match any of the above requirements,
+a warning will be logged. As of Home Assistant 2022.1, the recorder will
+no longer connect to an unsupported database.
+
+([@emontnemery] - [#58161]) ([recorder docs])
+
+---
+
+It is no longer possible to filter out `state_changed` events from the
+recorder's `event_types` exclude filter.
+
+A warning will be logged in Home Assistant Core 2021.11 and the configuration
+will be rejected in Home Assistant Core 2022.2.
+
+{% enddetails %}
+
+{% details "Python 3.8: Deprecation warning" %}
+
+Python 3.8 has been deprecated because Python 3.10 has been released.
+Support will be dropped in Home Assistant 2022.1.
+
+Support for Python 3.10 hasn't completed yet, however we aim to complete
+that before the 3.8 deprecation period has ended. It is advised to upgrade
+to Python 3.9 at this point.
+
+If you run Home Assistant OS, Supervised or the Container installation type:
+No action is required from your end, we will take care of this for you.
+
+([@balloob] - [#57079])
+
+{% enddetails %}
+
+{% details "Aurora ABB Solar PV" %}
+
+The Aurora ABB Solar PV integration migrated to configuration via the UI.
+Configuring Aurora ABB Solar PV via YAML configuration has been deprecated
+and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after upgrading.
+
+([@davet2001] - [#36300]) ([aurora_abb_powerone docs])
+
+{% enddetails %}
+
+{% details "AVM FRITZ!Box Tools" %}
+
+AVM FRITZ!Box Tools services now ask for a `device_id` and no longer for an `entity_id`.
+Please review your automation and scripts accordingly.
+
+([@chemelli74] - [#58005]) ([fritz docs])
+
+{% enddetails %}
+
+{% details "DLNA Digital Media Renderer" %}
+
+The DLNA Digital Media Renderer integration migrated to configuration via the UI. Configuring
+DLNA Digital Media Renderer via YAML configuration has been deprecated and will be removed in a
+future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+Please check the integrations configuration page for imported DLNA-DMR configuration.
+Once it has been migrated, it can be safely removed from your YAML configuration.
+
+([@chishm] - [#56886]) ([dlna_dmr docs])
+
+{% enddetails %}
+
+{% details "Efergy" %}
+
+The Efergy integration has been migrated to configuration via the UI.
+Configuring Efergy via YAML configuration has now been deprecated and will be
+removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+Additionally, the following sensor names have changed:
+
+- Energy Usage is now Power Usage.
+- Any configured energy period, for example, monthly was Energy Consumed is now Monthly Consumption.
+- Any configured cost period, for example, monthly was Energy Cost is now Monthly Energy Cost.
+- Per-Device Usage is now Power Usage with the sensor id trailing.
+
+([@tkdrob] - [#56890]) ([efergy docs])
+
+{% enddetails %}
+
+{% details "Environment Canada" %}
+
+The Environment Canada integration has been migrated to configuration via the UI.
+Configuring Environment Canada via YAML configuration has now been deprecated and will be
+removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+Additionally, non-loop radar images are no longer supported; Sensor entities
+now have the location of the station as a part of the sensor's entity name.
+
+([@gwww] - [#57127]) ([environment_canada docs])
+
+{% enddetails %}
+
+{% details "Flux LED/MagicLight" %}
+
+The Flux LED integration has been migrated to configuration via the UI.
+Configuring Flux LED via YAML configuration has now been deprecated and will be
+removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+([@icemanch] - [#56354]) ([flux_led docs])
+
+{% enddetails %}
+
+{% details "HomeKit" %}
+
+The previously deprecated HomeKit configuration options `safe_mode`,
+`zeroconf_default_interface`, and `auto_start` have now been removed.
+
+If you still have these options in your YAML configuration, you must be remove them
+from your YAML configuration.
+
+([@bdraco] - [#58320])
+
+{% enddetails %}
+
+{% details "Input Select / Dropdown Helper" %}
+
+When the option list of a Dropdown helper / `input_select` is updated,
+it will try to maintain the currently selected option, if the selected
+option also is present in the new options provided; otherwise it will
+reset to the first option from the newly provided list.
+
+Previously, when a new list of options was provided, it would always
+reset to the first item of the list.
+
+([@frenck] - [#53334]) ([input_select docs])
+
+{% enddetails %}
+
+{% details "IQVIA" %}
+
+Previously, IQVIA supported long-term statistics for the `Asthma Index: Tomorrow`
+sensor. This is incorrect: long-term statistics are meant for actual,
+current measurements (not future forecasts). Therefore, long-term statistics
+support has been removed for this sensor.
+
+([@bachya] - [#57687]) ([iqvia docs])
+
+{% enddetails %}
+
+{% details "Itho Daalderop Spider" %}
+
+The Itho Daalderop Spider integration previously migrated to configuration via the UI.
+Configuring Itho Daalderop Spider via YAML configuration has now been deprecated
+and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration has been automatically imported;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+([@peternijssen] - [#57974]) ([spider docs])
+
+{% enddetails %}
+
+{% details "Microsoft Text-to-Speech (TTS)" %}
+
+
+The default voice is changed to `JennyNeural`; The previous default `ZiraRUS`
+(Standard Voice) is no longer supported in eastus or any other region that
+has rolled out GA neural voices as Standard voices become deprecated.
+
+([@tylergibson] - [#58499]) ([microsoft docs])
+
+{% enddetails %}
+
+{% details "OctoPrint" %}
+
+The OctoPrint integration migrated to configuration via the UI. Configuring
+OctoPrint via YAML configuration has been deprecated and will be removed in
+a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after upgrading.
+
+The following sensors have been removed:
+
+- `sensor._time_remaining`
+- `sensor._time_elapsed`
+
+The following sensors have been added:
+
+- `sensor.octoprint_start_time`
+- `sensor.octoprint_estimated_finish_time`
+
+([@rfleming71] - [#58040]) ([octoprint docs])
+
+{% enddetails %}
+
+{% details "OpenGarage" %}
+
+The attributes (`wifi_signal ` and `distance_sensor`) for OpenGarage covers
+are removed and replaced by individual sensors.
+
+Also, `door_state` is removed as an attribute, but you can use the state
+directly instead.
+
+Please update any automations or scripts that depend on the removed attributes.
+
+([@Danielhiversen] - [#57976]) ([opengarage docs])
+
+{% enddetails %}
+
+{% details "OpenZWave" %}
+
+The OpenZWave (`ozw`) integration is being marked as deprecated. The upstream
+project is not currently being maintained, and has not reached stable status.
+
+We recommend transitioning to the [Z-Wave JS integration](/integrations/zwave_js).
+
+While the integration is not currently slated for removal, it will no longer
+be receiving updates and may be removed at a later date.
+
+See the [Z-Wave JS migration documentation](/integrations/zwave_js/#migrating-from-previous-z-wave-implementations)
+for more information.
+
+{% enddetails %}
+
+{% details "Pentair ScreenLogic" %}
+
+Screenlogic lights have moved to the light platform. The switches that
+previously represented these lights will need to manually be deleted in
+`Configuration >> Entities`. If you are using these switch entities in
+your automation or scripts, you will need to update those to use the new
+light entities instead.
+
+The state is now refreshed with a short delay to ensure the toggles
+do not flip/flop between states as the controller takes ~600ms to make the change.
+
+([@bdraco] - [#55467]) ([screenlogic docs])
+
+{% enddetails %}
+
+{% details "Phone Modem" %}
+
+The sensor state attributes of `modem_callerid` integration are now only
+populated when the values are known.
+
+If you use these attributes in your automations or scripts, you'll need to
+adjust those to be able to handle missing attributes.
+
+([@tkdrob] - [#57774]) ([modem_callerid docs])
+
+{% enddetails %}
+
+{% details "Rainforest Eagle" %}
+
+The previously deprecated YAML configuration of the Rainforest Eagle integration has been removed.
+
+Rainforest Eagle is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@frenck] - [#57636]) ([rainforest_eagle docs])
+
+{% enddetails %}
+
+{% details "RainMachine" %}
+
+RainMachine services have been reorganized and now utilize a Home Assistant
+target (entity ID) or selector (device ID) instead of using an internal
+RainMachine identifier.
+
+Additionally, services are restricted to only the targets that apply:
+
+**Device Services (i.e., must be provided a device ID)**
+
+- `pause_watering`
+- `stop_all`
+- `unpause_watering`
+
+**Entity Services (i.e., must be provided an associated switch entity ID
+[either a program or a zone])**
+
+- `disable_program`
+- `disable_zone`
+- `enable_program`
+- `enable_zone`
+- `start_program`
+- `start_zone`
+- `stop_program`
+- `stop_zone`
+
+([@bachya] - [#57145]) ([rainmachine docs])
+
+{% enddetails %}
+
+{% details "Renault" %}
+
+The `last_update` state attribute has been moved to a stand-alone entity
+(and dropped from battery and location entities). If you used this attribute
+in your scripts or automations; you'll need to adjust those to this change.
+
+([@epenet] - [#57750]) ([renault docs])
+
+{% enddetails %}
+
+{% details "SimpliSafe" %}
+
+SimpliSafe requires a new web-based authentication method. When starting up,
+Home Assistant will automatically prompt you to re-authorize your instance.
+
+([@bachya] - [#57212]) ([simplisafe docs])
+
+{% enddetails %}
+
+{% details "SolarEdge" %}
+
+The SolarEdge integration now provides unique IDs for its entities, so the
+entities are now visible and customizable in the Home Assistant frontend.
+
+Some names have been corrected as they had incorrect descriptions. This may
+cause some of your entity IDs provided by SolarEdge to have changed this release.
+
+In case you have been using these entities in your automations, scripts, or
+dashboards, you can either rename those entity IDs to the old entity ID
+or adjust the places you've used them accordingly.
+
+Additionally, if a sensor you used disappeared, it might have been disabled by
+default during upgrade. Please be sure to check if the entity is
+enabled in that case.
+
+([@terminet85] - [#55902]) - ([@purcell-lab] - [#58773])
+
+{% enddetails %}
+
+{% details "Sonos" %}
+
+The `sonos.set_option` service has been removed and replaced with
+individual `switch` entities which both control the features and display
+if currently enabled.
+
+The `night_sound` and `speech_enhance` attributes on the
+Sonos `media_player` entities are also removed.
+
+If you are using those in your automations or scripts, you'll need to replace
+these with the new `switch` entities.
+
+([@jjlawren] - [#54502]) ([sonos docs])
+
+{% enddetails %}
+
+{% details "Stookalert" %}
+
+The Stookalert integration has been migrated to configuration via the UI.
+Configuring Stookalert via YAML configuration has now been deprecated and will be
+removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+([@frenck] - [#57119]) ([stookalert docs])
+
+{% enddetails %}
+
+{% details "Supervisor" %}
+
+The 2021.09 release deprecated the usage of "snapshot" in the Supervisor (`hassio`)
+integration and was scheduled to be removed in 2021.11, that is now.
+
+Old services and service data that contained "snapshot" has now been removed,
+and you need to update your configuration if you use any of these to continue to use it.
+
+Old service name | New service name
+-- | --
+`hassio.snapshot_partial` | `hassio.backup_partial`
+`hassio.snapshot_full` | `hassio.backup_full`
+
+If you used the `snapshot` argument for the restore services you now have to replace that with `slug`
+
+Example:
+
+```yaml
+# Old name
+service: hassio.restore_full
+data:
+ snapshot: sn2321
+
+# New name
+service: hassio.restore_full
+data:
+ slug: sn2321
+```
+
+([@ludeeus] - [#57652]) ([hassio docs])
+
+{% enddetails %}
+
+{% details "UptimeRobot" %}
+
+The previously deprecated YAML configuration of the UptimeRobot integration has been removed.
+
+UptimeRobot is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@ludeeus] - [#57761]) ([uptimerobot docs])
+
+{% enddetails %}
+
+{% details "Utility Meter" %}
+
+The `offset` parameter for `utility_meter` sensors is now limited to at most
+27 days. If you used more then 27 days you must now migrate to `cron`.
+
+([@dgomes] - [#55625]) ([utility_meter docs])
+
+{% enddetails %}
+
+{% details "Venstar" %}
+
+The Venstar integration migrated to configuration via the UI.
+Configuring Venstar via YAML configuration has been deprecated
+and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after upgrading.
+
+The humidifer and timeout options have been removed, and thus ignored when
+importing your YAML configuration into the UI.
+
+([@garbled1] - [#58152]) ([venstar docs])
+
+{% enddetails %}
+
+{% details "VLC media player Telnet" %}
+
+The VLC media player Telnet integration migrated to configuration via the UI.
+Configuring VLC media player Telnet via YAML configuration has been deprecated
+and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after upgrading.
+
+([@MartinHjelmare] - [#57513]) ([vlc_telnet docs])
+
+{% enddetails %}
+
+{% details "Xiaomi Miio" %}
+
+Attributes from the vacuum entities have been replaced with sensors.
+
+This means that all your references to these attributes must be replaced with
+its sensor in your automations, scripts and dashboards.
+
+Some sensors have been disabled by default and need manual enablement,
+once the integration has been set up. For example, the attribute
+`mop_attached: true` has now been replaced with
+`binary_sensor._mop_attached`.
+
+([@OGKevin] - [#54990]) ([xiaomi_miio docs])
+
+{% enddetails %}
+
+{% details "Yeelight" %}
+
+The option to override the Yeelight model will only appear if the detected
+model is not in the database. Otherwise, it will be hidden.
+
+([@bdraco] - [#56967]) ([yeelight docs])
+
+{% enddetails %}
+
+## Farewell to the following
+
+The following integrations are no longer available as of this release:
+
+- **Essent** has been removed. The API is no longer usable for this integration
+ and has therefore been removed. ([@TheLastProject] - [#56991])
+- **Lyft** has been previously deprecated and now removed. API keys are no longer
+ being provided. ([@frenck] - [#57638])
+- **Nello** has been removed. The services are no longer available,
+ and have been offline for over 6 months. ([@pattyland] - [#57926])
+- **Huawei Router** has been removed. It relies on web scraping, which is no
+ longer allowed. ([@yuvalabou] - [#57136])
+- **Wink** has been previously deprecated and now removed. ([@frenck] - [#57634])
+
+## All changes
+
+{% details "Click to see all changes!" %}
+
+- Bump version to 2021.11.0dev0 ([@frenck] - [#56835])
+- Strictly type Nanoleaf ([@milanmeu] - [#56852]) ([nanoleaf docs])
+- Add Device Info to Nanoleaf ([@milanmeu] - [#56856]) ([nanoleaf docs])
+- Add long-term statistics support for rain sensors ([@cgtobi] - [#56847]) ([netatmo docs])
+- removing excess variable ([@lanrat] - [#56849]) ([keyboard_remote docs])
+- Rename state to value_fn - picnic sensor ([@cdce8p] - [#56889]) ([picnic docs])
+- Deduplicate controls of UniFi services ([@Kane610] - [#56834]) ([unifi docs])
+- Add kPa as a pressure unit ([@gwww] - [#56885])
+- Remove some redundant code from trace ([@emontnemery] - [#56883]) ([trace docs])
+- Use HTTPStatus instead of HTTP_* consts in aiohttp web response statuses ([@scop] - [#56541])
+- Enable template icons for template numbers ([@JeffLIrion] - [#56154]) ([template docs])
+- Improve deCONZ services code quality ([@Kane610] - [#56904]) ([deconz docs])
+- Use HTTPStatus instead of HTTP_* constants in various test mocks ([@scop] - [#56543])
+- Bump fritzconnection to 1.7.0 ([@chemelli74] - [#56924]) ([fritz docs]) ([fritzbox_callmonitor docs])
+- Add SSDP discovery to Nanoleaf ([@milanmeu] - [#56907]) ([nanoleaf docs])
+- Get min and max color temperature for Nanoleaf light from library ([@milanmeu] - [#56863]) ([nanoleaf docs])
+- Upgrade watchdog to 2.1.6 ([@frenck] - [#56933]) ([folder_watcher docs])
+- Update denonavr codeowner ([@ol-iver] - [#56940]) ([denonavr docs])
+- Use NamedTuple - iqvia Rating ([@cdce8p] - [#56943]) ([iqvia docs])
+- Log when Nanoleaf is unavailable ([@milanmeu] - [#56921]) ([nanoleaf docs])
+- Remove injected logger in Ambient PWS and OpenUV ([@bachya] - [#56920]) ([openuv docs]) ([ambient_station docs])
+- Flux led config flow ([@icemanch] - [#56354]) ([flux_led docs]) (breaking-change)
+- Remove icon if device_class is defined - homekit_controller ([@cdce8p] - [#56946]) ([homekit_controller docs])
+- Sia package update to 3.0.2 ([@eavanvalkenburg] - [#56896]) ([sia docs])
+- ZHA support for additional entities on ElectricalMeasurement ZCL cluster ([@Adminiuga] - [#56909]) ([zha docs])
+- Add strict typing to Tractive integration ([@bieniu] - [#56948]) ([tractive docs])
+- Bump gios library to 2.1.0 ([@bieniu] - [#56984]) ([gios docs])
+- Update surepetcare test ([@Danielhiversen] - [#56871]) ([surepetcare docs])
+- Update pyhomematic to 0.1.75 ([@danielperna84] - [#56995]) ([homematic docs])
+- Support connecting to ElkM1 over TLS 1.2 ([@gwww] - [#56887]) ([elkm1 docs])
+- Bump nettigo_air_monitor library to version 1.1.0 ([@bieniu] - [#56952]) ([nam docs])
+- Use Final type only when needed in Tractive ([@bieniu] - [#57000]) ([tractive docs])
+- Minor improvements to deCONZ light platform ([@Kane610] - [#56953]) ([deconz docs])
+- Use EntityDescription - homekit_controller ([@cdce8p] - [#56945]) ([homekit_controller docs])
+- Fix tractive flaky test ([@balloob] - [#57026]) ([tractive docs])
+- Remove Essent integration ([@TheLastProject] - [#56991]) ([essent docs]) (breaking-change)
+- Prevent opening of sockets in kira tests ([@emontnemery] - [#57038]) ([kira docs])
+- Use NamedTuple for homekit valve type + service info ([@cdce8p] - [#56944]) ([homekit docs])
+- Use hass_client_no_auth test fixture in additional tests ([@emontnemery] - [#57037])
+- Use NamedTuple for darksky condition picture ([@cdce8p] - [#56942]) ([darksky docs])
+- Upgrade coverage to 6.0 ([@frenck] - [#57041])
+- Mock out network.util.async_get_source_ip in tests ([@emontnemery] - [#57039]) ([local_ip docs])
+- Fix multiline lambda formatting - homekit_controller ([@cdce8p] - [#57046]) ([homekit_controller docs])
+- Use NamedTuple for repetier API methods ([@cdce8p] - [#56941]) ([repetier docs])
+- Add ZHA HVAC Action sensor ([@Adminiuga] - [#57021]) ([zha docs])
+- Prevent tplink from opening sockets in tests ([@bdraco] - [#57058]) ([tplink docs])
+- Prevent dlna_dmr from opening sockets in tests ([@bdraco] - [#57059]) ([dlna_dmr docs])
+- Activate mypy for rpi_power ([@Misiu] - [#57047]) ([rpi_power docs])
+- Bump nest 0.3.7 to prepare for WebRTC support ([@allenporter] - [#57089]) ([nest docs])
+- Deprecate Python 3.8 ([@balloob] - [#57079]) (breaking-change)
+- Additional place to use isinstance rather than do a string compare ([@Kane610] - [#57094]) ([deconz docs])
+- Upgrade jinja2 to 3.0.2 ([@frenck] - [#57095])
+- Upgrade sentry-sdk to 1.4.3 ([@frenck] - [#57096]) ([sentry docs])
+- Upgrade debugpy to 1.5.0 ([@frenck] - [#57098]) ([debugpy docs])
+- Prevent opening of sockets in mqtt tests ([@emontnemery] - [#57101]) ([mqtt docs])
+- Fix color util links to Philips Hue documentation ([@bokub] - [#57099])
+- Add additional properties to node_status WS cmd ([@raman325] - [#56927]) ([zwave_js docs])
+- Use current config entry standards for OpenUV ([@bachya] - [#57137]) ([openuv docs])
+- Add support for POLY and RLY in Coinbase ([@TomBrien] - [#57144]) ([coinbase docs])
+- Add additional devices to flux_led discovery ([@bdraco] - [#57086]) ([flux_led docs])
+- Block tests from opening sockets ([@emontnemery] - [#55516])
+- Write flux_led state after turning on/off ([@bdraco] - [#57152]) ([flux_led docs])
+- Add sw_version and model to flux_led device info ([@bdraco] - [#56958]) ([flux_led docs])
+- Add missing return type to async_unload_entry and async_setup_entry ([@Misiu] - [#57115])
+- Add home-assistant/core as codeowner for recorder ([@emontnemery] - [#57224]) ([recorder docs])
+- Upgrade coverage to 6.0.1 ([@frenck] - [#57235])
+- Toon, support Energy dashboard by default ([@frenck] - [#57233]) ([toon docs])
+- Ensure that WattTime is strictly typed ([@bachya] - [#57130])
+- Improve deCONZ signal strings ([@Kane610] - [#57140]) ([deconz docs])
+- Refactor persistent notification to no longer route all data via a service ([@balloob] - [#57157]) ([persistent_notification docs]) (breaking-change)
+- Allow resetting an MQTT number ([@emontnemery] - [#57161]) ([mqtt docs])
+- Use EntityDescription - darksky ([@cdce8p] - [#57083]) ([darksky docs])
+- Enable template icons for template selects ([@JeffLIrion] - [#57092]) ([template docs])
+- Refactor Xiaomi vacuum to sensors ([@OGKevin] - [#54990]) ([xiaomi_miio docs]) (breaking-change)
+- Upgrade ambee to 0.4.0 ([@frenck] - [#57264]) ([ambee docs])
+- Use current config entry standards for Ambient PWS ([@bachya] - [#57133]) ([ambient_station docs])
+- Improve dlna_dmr code quality ([@chishm] - [#56886]) ([dlna_dmr docs]) (breaking-change)
+- Motion_blinds fix up button not available for unidirection blinds ([@starkillerOG] - [#57266]) ([motion_blinds docs])
+- Add WebSocket API for intiting a WebRTC stream ([@allenporter] - [#57034]) ([camera docs])
+- Use _attr in 17track ([@yuvalabou] - [#57187]) ([seventeentrack docs])
+- Add config flow to Stookalert ([@frenck] - [#57119]) ([stookalert docs]) (breaking-change)
+- Drop more persistent notification patches ([@balloob] - [#57295]) ([dlna_dmr docs]) ([waze_travel_time docs]) ([google_travel_time docs]) ([vizio docs]) ([climacell docs])
+- Disconnect websockets after token is revoked ([@dboslee] - [#57091]) ([websocket_api docs])
+- Reorganize RainMachine services ([@bachya] - [#57145]) ([rainmachine docs]) (breaking-change)
+- Add device info to nws ([@MatthewFlamm] - [#57153]) ([nws docs])
+- Use built-in logic for options handler in AirVisual ([@bachya] - [#57131]) ([airvisual docs])
+- Use current config entry standards for SimpliSafe ([@bachya] - [#57141]) ([simplisafe docs])
+- Bump greeclimate to 0.11.9 ([@cmroche] - [#57358]) ([gree docs])
+- Handle prepare timeout in websocket API ([@balloob] - [#55989]) ([websocket_api docs])
+- Add Sure Petcare Felaqua device ([@benleb] - [#56823]) ([surepetcare docs])
+- Add Shelly config entry reload on device config change ([@thecode] - [#57356]) ([shelly docs])
+- Create devices for Growatt ([@indykoning] - [#57068]) ([growatt_server docs])
+- Add -9999 error fix back in Xiaomi Miio ([@bieniu] - [#57399]) ([xiaomi_miio docs])
+- Add System Bridge display sensors ([@timmo001] - [#57019]) ([system_bridge docs])
+- Improve Whirlpool component code quality ([@abmantis] - [#57357]) ([whirlpool docs])
+- Flux led color support ([@icemanch] - [#57353]) ([flux_led docs])
+- Convert flux_led to use asyncio ([@bdraco] - [#57440]) ([flux_led docs])
+- Update pyfronius to 0.7.0 ([@farmio] - [#57279]) ([fronius docs])
+- Bump aiodiscover to 2.4.5 ([@bdraco] - [#57439]) ([dhcp docs])
+- Upgrade rvx to 0.7.0 ([@spahlimi] - [#57430]) ([yamaha docs])
+- Bump pytautulli to 21.10.0 ([@tkdrob] - [#57449]) ([tautulli docs])
+- Add config flow for efergy ([@tkdrob] - [#56890]) ([efergy docs]) (breaking-change)
+- Use _attr for Suez water ([@yuvalabou] - [#57278]) ([suez_water docs])
+- Add test of lazy_error in modbus ([@janiversen] - [#57170]) ([modbus docs])
+- Update somecomfort library to 0.7.0 ([@rdfurman] - [#57214]) ([honeywell docs])
+- Add Netgear ssid and conn_ap_mac sensors ([@starkillerOG] - [#57226]) ([netgear docs])
+- Bump Daikin version, catch new exception during config_flow ([@fredrike] - [#57080]) ([daikin docs])
+- Add xiaomi vacuum -9999 fix back ([@OGKevin] - [#57473]) ([xiaomi_miio docs])
+- Add energy management for efergy ([@tkdrob] - [#57472]) ([efergy docs])
+- Don't override methods marked as final ([@cdce8p] - [#57477])
+- Use EntityDescription - openweathermap ([@cdce8p] - [#56888]) ([openweathermap docs])
+- Add dhcp support for tplink KP401 ([@bdraco] - [#57456]) ([tplink docs])
+- Use current config entry standards for AirVisual ([@bachya] - [#57132]) ([airvisual docs])
+- Bump `nettigo_air_monitor` library to version 1.1.1 ([@bieniu] - [#57483]) ([nam docs])
+- Switch to config_flow for Environment Canada ([@gwww] - [#57127]) ([environment_canada docs]) (breaking-change)
+- Add the switch platform to flux_led ([@bdraco] - [#57444]) ([flux_led docs]) (new-platform)
+- Add DHCP discovery for additional Zengge devices, generic magichome strips ([@bdraco] - [#57408]) ([flux_led docs])
+- Use entity description for Ezviz sensors ([@RenierM26] - [#56634]) ([ezviz docs])
+- Streamline modbus before 100% coverage. ([@janiversen] - [#57478]) ([modbus docs])
+- Add ability to re-auth WattTime ([@bachya] - [#56582]) ([watttime docs])
+- Fix watttime config flow and tests ([@MartinHjelmare] - [#57498]) ([watttime docs])
+- Move attribution attribute to Entity base class ([@frenck] - [#57492]) ([weather docs]) ([air_quality docs])
+- Allow MQTT discovery availability shortcut ([@jbouwh] - [#57479]) ([mqtt docs])
+- Override the jinja2 int filter ([@emontnemery] - [#57470])
+- Fix Tuya error when removing device ([@frenck] - [#57512]) ([tuya docs])
+- Pass device manager directly in Tuya registry cleanup ([@frenck] - [#57511]) ([tuya docs])
+- Entity attributes cleanup in Tuya base entity ([@frenck] - [#57510]) ([tuya docs])
+- Migrate attribution attribute for Picnic ([@frenck] - [#57507]) ([picnic docs])
+- Migrate attribution attribute for AmberElectric ([@frenck] - [#57505]) ([amberelectric docs])
+- Migrate attribution attribute for UptimeRobot ([@frenck] - [#57508]) ([uptimerobot docs])
+- Migrate attribution attribute for Arlo ([@frenck] - [#57504]) ([arlo docs])
+- Migrate attribution attribute for Stookalert ([@frenck] - [#57503]) ([stookalert docs])
+- Upgrade flake8-comprehensions to 3.7.0 ([@frenck] - [#57520])
+- Upgrade coverage to 6.0.2 ([@frenck] - [#57518])
+- Add statistics support to nest sensors ([@allenporter] - [#57393]) ([nest docs])
+- Bump `accuweather` library to version 0.3.0 ([@bieniu] - [#57497]) ([accuweather docs])
+- MQTT rework constants ([@jbouwh] - [#57529]) ([mqtt docs])
+- Move all Tuya device handling into device listener class ([@frenck] - [#57523]) ([tuya docs])
+- Move Tuya remap method from base to light entity class ([@frenck] - [#57527]) ([tuya docs])
+- Use EntityDescription - bmw_connected_drive ([@cdce8p] - [#56861]) ([bmw_connected_drive docs])
+- Alphabetize parts of device registry code ([@emontnemery] - [#57532]) ([config docs])
+- Tweaks to Tuya base entity ([@frenck] - [#57526]) ([tuya docs])
+- Use Tuya endpoints values from upstream library ([@frenck] - [#57537]) ([tuya docs])
+- Bump pytradfri to 7.0.7 ([@janiversen] - [#57543]) ([tradfri docs])
+- Update flake8 related packages ([@cdce8p] - [#57538])
+- Add service to Rainmachine to push weather data from Home Assistant ([@shbatm] - [#57354]) ([rainmachine docs])
+- Refactor Tuya device handling ([@frenck] - [#57545]) ([tuya docs])
+- Search for areas, devices and entities in script choose actions ([@emontnemery] - [#57554])
+- Add statistics tests for sensor with changing device class ([@emontnemery] - [#57317]) ([sensor docs])
+- Replace all Tuya device property constants with an Enum ([@frenck] - [#57559]) ([tuya docs])
+- Always include start point for statistics ([@emontnemery] - [#57182]) ([recorder docs]) ([sensor docs])
+- Refresh the bond token if it has changed and available ([@bdraco] - [#57583]) ([bond docs])
+- Fix single channel controllers with flux_led ([@bdraco] - [#57458]) ([flux_led docs])
+- Use a human readable model name in flux_led ([@bdraco] - [#57519]) ([flux_led docs])
+- Warn user if Gateway is already paired ([@janiversen] - [#57530]) ([tradfri docs])
+- Add Nest WebRTC and support Nest Battery Camera and Nest Battery Doorbell ([@allenporter] - [#57299]) ([camera docs]) ([nest docs])
+- Add a use_time sensor for Xiaomi_miio humidifiers ([@jbouwh] - [#57560]) ([xiaomi_miio docs])
+- Add unique_id support for eq3btsmart ([@lkempf] - [#57603]) ([eq3btsmart docs])
+- Add support for multiple Whirlpool airconditioners ([@abmantis] - [#57588]) ([whirlpool docs])
+- Improve warning prints for sensor statistics ([@emontnemery] - [#57605]) ([sensor docs])
+- Bump version ([@Cereal2nd] - [#57607]) ([velbus docs])
+- Use gather ipv wait to remove credentials to catch exceptions ([@balloob] - [#57596])
+- Guard linking credential that is already linked ([@balloob] - [#57595]) ([auth docs])
+- Prevent event loop delay / instability from discovery ([@bdraco] - [#57463]) ([zeroconf docs]) ([ssdp docs])
+- Clarify that only HTTPS can be used in fitbit ([@ammgws] - [#57116]) ([fitbit docs])
+- ESPHome move ReconnectLogic to aioesphomeapi ([@OttoWinter] - [#57601]) ([esphome docs])
+- Provide device_id in hue_event ([@krys1976] - [#56982]) ([hue docs])
+- Refactor Tuya climate platform ([@frenck] - [#57609]) ([climate docs]) ([tuya docs])
+- Modbus baseplatform.py and Validators.py 100% coverage (activate coverage) ([@janiversen] - [#57546]) ([modbus docs])
+- Use EntityDescription in Tuya Switch platform ([@frenck] - [#57581]) ([tuya docs])
+- Remove debug log ([@balloob] - [#57619])
+- Add binary sensor platform to Tuya ([@frenck] - [#57623]) ([tuya docs]) (new-platform)
+- Update tests searching for areas referenced in automations ([@emontnemery] - [#57558])
+- Remove myself as code owner from Toon ([@frenck] - [#57625]) ([toon docs])
+- Use classmethod in Tuya TypeData classes ([@frenck] - [#57627]) ([tuya docs])
+- Prettify Tuya entity class names ([@frenck] - [#57629]) ([tuya docs])
+- Use entity_registry_enabled_default for Nut sensors ([@ollo69] - [#56854]) ([nut docs])
+- Remove deprecated Wink integration ([@frenck] - [#57634]) ([discovery docs]) ([wink docs]) (breaking-change)
+- Nut: Use coordinator data, code cleanup and add test coverage ([@ollo69] - [#57643]) ([nut docs])
+- Correct state classes for systemmonitor sensors ([@mib1185] - [#57615]) ([systemmonitor docs])
+- Remove YAML configuration from Rainforest Eagle ([@frenck] - [#57636]) ([rainforest_eagle docs]) (breaking-change)
+- Use HTTPStatus instead of HTTP_* int constants in mobile_app responses ([@scop] - [#56418]) ([mobile_app docs])
+- Use reference strings in soma ([@jasonmadigan] - [#57564]) ([soma docs])
+- Upgrade pyyaml to 6.0 ([@frenck] - [#57648])
+- Remove snapshot from hassio integration ([@ludeeus] - [#57652]) ([hassio docs]) (breaking-change)
+- Add config and diagnostic entities ([@emontnemery] - [#57528]) ([config docs])
+- Bump flux_led to 0.24.5 ([@bdraco] - [#57653]) ([flux_led docs])
+- Late review comments. ([@janiversen] - [#57654]) ([modbus docs])
+- Migrate attribution attribute for bbox ([@frenck] - [#57650]) ([bbox docs])
+- Migrate attribution attribute for bitcoin ([@frenck] - [#57651]) ([bitcoin docs])
+- Migrate attribution attribute for Aftership ([@frenck] - [#57649]) ([aftership docs])
+- Remove deprecated Lyft integration ([@frenck] - [#57638]) ([lyft docs]) (breaking-change)
+- Only pass libav logger messages when stream logger is set to debug ([@uvjustin] - [#57616]) ([stream docs])
+- Add select platform to Tuya ([@frenck] - [#57674]) ([tuya docs])
+- Clean up unused loggers ([@tkdrob] - [#57662])
+- Update xknx to version 0.18.10 ([@marvin-w] - [#57635]) ([knx docs])
+- Add support for device configuration URL ([@emontnemery] - [#57539]) ([config docs])
+- Fix lint issue ([@balloob] - [#57694])
+- Add sensor platform to Tuya ([@frenck] - [#57668]) ([tuya docs]) (new-platform)
+- Port unmerged fixes from tuya_v2 ([@pabigot] - [#57624]) ([tuya docs])
+- Add number platform to Tuya ([@frenck] - [#57672]) ([tuya docs])
+- Add entity category to WLED ([@balloob] - [#57693]) ([wled docs])
+- Add service configuration URL to Stookalert ([@frenck] - [#57697]) ([stookalert docs])
+- Add device configuration URL to Plugwise ([@frenck] - [#57696]) ([plugwise docs])
+- Add service configuration URL to Spotify ([@frenck] - [#57701]) ([spotify docs])
+- Bump frontend to 20211014.0 ([@balloob] - [#57706]) ([frontend docs])
+- Add support for entity categories to NUT entities ([@mib1185] - [#57689]) ([nut docs])
+- Add support for entity categories to Synology DSM entities ([@mib1185] - [#57690]) ([synology_dsm docs])
+- Optimize update calls for AVM Fritz!Smarthome devices ([@mib1185] - [#57579]) ([fritzbox docs])
+- Skip auto-update when fqdn and ssl-verfiy is used for Synology DSM ([@mib1185] - [#57568]) ([synology_dsm docs])
+- Add url to CO2signal ([@balloob] - [#57703]) ([co2signal docs])
+- Add configuration url to Synology DSM ([@mib1185] - [#57704]) ([synology_dsm docs])
+- Add state_class to EnOcean sensors ([@davidlb] - [#57666]) ([enocean docs])
+- Remove long-term statistics from IQVIA forecast sensor ([@bachya] - [#57687]) ([iqvia docs]) (breaking-change)
+- Add entity category to Shelly ([@bieniu] - [#57705]) ([shelly docs])
+- Add strict typing to goalzero ([@tkdrob] - [#57680]) ([goalzero docs])
+- Add configuration_url to Uptime Robot ([@ludeeus] - [#57709]) ([uptimerobot docs])
+- push motionblinds to 0.5.6 ([@starkillerOG] - [#57707]) ([motion_blinds docs])
+- Add service configuration URL to Verisure ([@frenck] - [#57713]) ([verisure docs])
+- Add service configuration URL to Speedtest.net ([@frenck] - [#57715]) ([speedtestdotnet docs])
+- Fix platform typo in Tuya const ([@ludeeus] - [#57716]) ([tuya docs])
+- Add device configuration URL to WLED ([@frenck] - [#57692]) ([wled docs])
+- Change name from Uptime Robot to UptimeRobot ([@ludeeus] - [#57714]) ([uptimerobot docs])
+- Xiaomi Miio appropriatly raise ConfigEntryAuthFailed/ConfigEntryNotReady ([@starkillerOG] - [#54696]) ([xiaomi_miio docs])
+- Add entity category to Xiaomi Miio ([@bieniu] - [#57719]) ([xiaomi_miio docs])
+- Add entity category to Tractive ([@bieniu] - [#57720]) ([tractive docs])
+- Add entity category to Brother ([@bieniu] - [#57728]) ([brother docs])
+- Add service configuration URL to MQTT ([@frenck] - [#57731]) ([mqtt docs])
+- Add Shelly "installed version" extra state attribute to Gen2 firmware update sensor ([@thecode] - [#57722]) ([shelly docs])
+- Add configuration url to Pi hole ([@mib1185] - [#57718]) ([pi_hole docs])
+- Add configuration_url to gogogate2 ([@bdraco] - [#57739]) ([gogogate2 docs])
+- Add configuration url to nexia ([@bdraco] - [#57740]) ([nexia docs])
+- Add discovery support for single channel magichome controllers ([@bdraco] - [#57736]) ([flux_led docs])
+- COnvert DATA_TYPE to enum. ([@janiversen] - [#57699]) ([modbus docs])
+- Add entity category to cloud ([@balloob] - [#57747]) ([cloud docs])
+- Add onewire support for DS2413 ([@ronalterde] - [#55921]) ([onewire docs])
+- Fix WLED exception on close ([@balloob] - [#57752]) ([wled docs])
+- Fix signature for hassio.restore_partial service ([@avee87] - [#57735]) ([hassio docs])
+- Add documentation link for Supervisor integration ([@avee87] - [#57733]) ([hassio docs])
+- Centralize entity naming for Tuya entities ([@frenck] - [#57755]) ([tuya docs])
+- Add configuration URL to Brother ([@bieniu] - [#57726]) ([brother docs])
+- Minor tweak of entityfilter typing ([@emontnemery] - [#57756])
+- Activate strict typing for nfandroidtv ([@tkdrob] - [#57743]) ([nfandroidtv docs])
+- Move Tuya value scaling into IntegerTypeData ([@frenck] - [#57757]) ([tuya docs])
+- Add configuration url to rachio ([@bdraco] - [#57738]) ([rachio docs])
+- Renamed variables in Tuya ([@frenck] - [#57759]) ([tuya docs])
+- Add entity category to Nettigo Air Monitor entities ([@bieniu] - [#57698]) ([nam docs])
+- Remove YAML import from UptimeRobot ([@ludeeus] - [#57761]) ([uptimerobot docs]) (breaking-change)
+- Swap order of int template helper kwargs ([@Petro31] - [#57729])
+- Add support for entity categories to MQTT entities ([@emontnemery] - [#57656]) ([mqtt docs])
+- Add renault last activity sensors ([@epenet] - [#57750]) ([renault docs]) (breaking-change)
+- Don't add indirectly referenced config entities to service calls ([@emontnemery] - [#57671]) ([homekit docs]) ([homeassistant docs]) (breaking-change)
+- Don't expose config or diagnostic entities to Amazon Alexa by default ([@emontnemery] - [#57770]) ([alexa docs])
+- Don't expose config or diagnostic entities to Google Assistant ([@emontnemery] - [#57669]) ([google_assistant docs]) (breaking-change)
+- Don't expose config or diagnostic entities to cloud ([@emontnemery] - [#57771]) ([cloud docs]) (breaking-change)
+- Fix modem_callerid test warning ([@MartinHjelmare] - [#57760]) ([modem_callerid docs])
+- Clean startup of modbus by moving service schemas ([@janiversen] - [#57763]) ([modbus docs])
+- Add device class to temperature sensors for octoprint ([@firstof9] - [#56997]) ([octoprint docs])
+- Merge bmw_connected_drive metric and imperial sensor types ([@cdce8p] - [#56910]) ([bmw_connected_drive docs])
+- Add PIR Detector (pir) device support to Tuya ([@frenck] - [#57784]) ([tuya docs])
+- Identify onetime listeners ([@balloob] - [#57751])
+- Add vlc telnet config flow ([@MartinHjelmare] - [#57513]) ([vlc_telnet docs]) (breaking-change)
+- Add Emergency Button (sos) device support to Tuya ([@frenck] - [#57794]) ([tuya docs])
+- Use assignment expressions 10 ([@cdce8p] - [#57791]) ([emulated_hue docs]) ([fan docs]) ([group docs]) ([google_assistant docs]) ([device_automation docs])
+- Add siren platform to Tuya ([@frenck] - [#57780]) ([tuya docs])
+- Add Luminance Sensor (ldcg) device support to Tuya ([@frenck] - [#57797]) ([tuya docs])
+- Don't use cast when possible for goalzero ([@tkdrob] - [#57742]) ([goalzero docs])
+- Add float32 test to modbus ([@janiversen] - [#57805]) ([modbus docs])
+- Add configuration URL to RainMachine ([@bachya] - [#57732]) ([rainmachine docs])
+- Discover plex via zeroconf ([@bdraco] - [#57825]) ([plex docs])
+- Add configuration_url to Sense ([@bdraco] - [#57814]) ([sense docs])
+- Avoid exposing effects to flux_led lights that do not support them ([@bdraco] - [#57810]) ([flux_led docs])
+- Add myself as codeowner for Tuya ([@frenck] - [#57837]) ([tuya docs])
+- Fix vlc_telnet disconnect on unload ([@MartinHjelmare] - [#57836]) ([vlc_telnet docs])
+- Make sure Tile data storage conforms to standards ([@bachya] - [#57818]) ([tile docs])
+- Make sure ReCollect Waste data storage conforms to standards ([@bachya] - [#57817]) ([recollect_waste docs])
+- Add configuration URL to Efergy ([@tkdrob] - [#57839]) ([efergy docs])
+- Add support for device configuration URL to Nettigo Air Monitor integration ([@bieniu] - [#57695]) ([nam docs])
+- Bump pytradfri to v.7.1.0 ([@janiversen] - [#57861]) ([tradfri docs])
+- Add support for 'freeze' mode in Tuya thermostats (wk) ([@frenck] - [#57851]) ([tuya docs])
+- Add new mac vendor to sense DHCP ([@tkdrob] - [#57858]) ([sense docs])
+- Add tamper device class for binary sensor ([@frenck] - [#57632]) ([binary_sensor docs])
+- Use DeviceInfo class ([@Danielhiversen] - [#57868]) ([tibber docs]) ([surepetcare docs]) ([mill docs]) ([opengarage docs]) ([tractive docs])
+- Restore dhcp discovery support to tuya ([@bdraco] - [#57826]) ([tuya docs])
+- Avoid probing brother devices that have an existing config entry ([@bdraco] - [#57829]) ([brother docs])
+- Set state class in JuiceNet component ([@b-pass] - [#57870]) ([juicenet docs])
+- Add hassio discovery to VLC telnet ([@mib1185] - [#57815]) ([vlc_telnet docs])
+- Add camera platform to Tuya ([@frenck] - [#57865]) ([tuya docs]) (new-platform)
+- Use separate weather condition for clear night in MetOffice forecasts ([@avee87] - [#55135]) ([metoffice docs])
+- Decrease `timeout` and `update_interval` in Xiaomi Miio integration ([@bieniu] - [#57339]) ([xiaomi_miio docs])
+- Add additional models to flux_led DHCP discovery ([@bdraco] - [#57881]) ([flux_led docs])
+- Add use time sensor for air purifiers ([@bieniu] - [#57775]) ([xiaomi_miio docs])
+- Make sure AirVisual data storage conforms to standards ([@bachya] - [#57806]) ([airvisual docs])
+- Make sure OpenUV data storage conforms to standards ([@bachya] - [#57813]) ([openuv docs])
+- Make sure Notion data storage conforms to standards ([@bachya] - [#57812]) ([notion docs])
+- Update xknx to 0.18.11 and fix flaky test ([@marvin-w] - [#57877]) ([knx docs])
+- Add sensor category for rssi and battery ([@elupus] - [#57848]) ([rfxtrx docs])
+- Bump pymodbus to 2.5.3. ([@janiversen] - [#57887]) ([modbus docs])
+- Bump pypoint ([@fredrike] - [#57888]) ([point docs])
+- Improve lutron caseta error reporting when bridge is offline ([@bdraco] - [#57832]) ([lutron_caseta docs])
+- Do not probe `nam` device if the host is already configured ([@bieniu] - [#57843]) ([nam docs])
+- Bump `brother` library to version 1.1.0 ([@bieniu] - [#57892]) ([brother docs])
+- Fix mode_callerid attributes ([@tkdrob] - [#57774]) ([modem_callerid docs]) (breaking-change)
+- push motionblinds to 0.5.7 ([@starkillerOG] - [#57902]) ([motion_blinds docs])
+- Fix order of arguments in rainmachine sensors ([@bdraco] - [#57895]) ([rainmachine docs])
+- Add the correct device class to deCONZ Tamper entity ([@Kane610] - [#57834]) ([deconz docs])
+- Add unit/device_class validation and normalization to Tuya ([@frenck] - [#57913]) ([tuya docs])
+- Add category diagnostic to Tibber signal sensor ([@Danielhiversen] - [#57840]) ([tibber docs])
+- Add category diagnostic to Surepetcare battery sensor ([@Danielhiversen] - [#57852]) ([surepetcare docs])
+- Add category diagnostic to Switchbot battery and signal sensor ([@Danielhiversen] - [#57854]) ([switchbot docs])
+- Airthings entity category diagnostic ([@Danielhiversen] - [#57850]) ([airthings docs])
+- Add device info to Adax ([@Danielhiversen] - [#57907]) ([adax docs])
+- Use attr_device_info and add init tests for nut ([@ollo69] - [#57725]) ([nut docs])
+- Set `nest` camera always on STATE_STREAMING ([@allenporter] - [#57882]) ([nest docs])
+- Improve nest error handling for websocket streams ([@allenporter] - [#57885]) ([nest docs])
+- Add category diagnostic to Surepetcare binary sensor ([@Danielhiversen] - [#57908]) ([surepetcare docs])
+- Opengarage dataupdater ([@Danielhiversen] - [#56931]) ([opengarage docs])
+- Fix bond reloading on zeroconf discovery when host has not changed ([@bdraco] - [#57799]) ([bond docs])
+- Use assignment expressions 05 ([@cdce8p] - [#57785])
+- Use assignment expressions 08 ([@cdce8p] - [#57788])
+- Use assignment expressions 06 ([@cdce8p] - [#57786])
+- Use assignment expressions 03 ([@cdce8p] - [#57710])
+- Use assignment expressions 11 ([@cdce8p] - [#57792])
+- Use assignment expressions 09 ([@cdce8p] - [#57790])
+- Use assignment expressions 07 ([@cdce8p] - [#57787])
+- Add support for push updates to flux_led ([@bdraco] - [#57890]) ([flux_led docs])
+- Adax attr ([@Danielhiversen] - [#57867]) ([adax docs])
+- Add Vibration Sensor (zd) device support to Tuya ([@frenck] - [#57795]) ([tuya docs])
+- Use EntityDescription - bmw_connected_drive sensor ([@cdce8p] - [#57796]) ([bmw_connected_drive docs])
+- Fix additional nest camera_sdm_tests to use STATE_STREAMING ([@allenporter] - [#57920]) ([nest docs])
+- Bump broadlink to 0.18.0 ([@felipediel] - [#57929]) ([broadlink docs])
+- Rename `stream_type` to `frontend_stream_type` ([@allenporter] - [#57923]) ([camera docs]) ([nest docs])
+- New service reconnect_client for UniFi integration ([@Kane610] - [#57570]) ([unifi docs])
+- Bump actions/checkout from 2.3.4 to 2.3.5 (@dependabot - [#57947])
+- Tuya tweaks to entity category, registry enabled, icons & device classes ([@frenck] - [#57949]) ([tuya docs])
+- Use pytest fixtures on Renault tests ([@epenet] - [#57955]) ([renault docs])
+- Use assignment expressions 15 ([@cdce8p] - [#57961])
+- Add configuration url to Tasmota ([@emontnemery] - [#57957]) ([tasmota docs])
+- Use assignment expressions 19 ([@cdce8p] - [#57968])
+- Use assignment expressions 18 ([@cdce8p] - [#57967])
+- Bump hatasmota to 0.2.21 ([@emontnemery] - [#57966]) ([tasmota docs])
+- Support device and state classes for WAQI sensor ([@davidlb] - [#57762]) ([waqi docs])
+- Bump flux_led to 0.24.8 ([@bdraco] - [#57934]) ([flux_led docs])
+- Mark spider YAML configuration as deprecated ([@peternijssen] - [#57974]) ([spider docs]) (breaking-change)
+- Use pytest fixtures on Onewire tests ([@epenet] - [#57973]) ([onewire docs])
+- Add Nut missing tests for config flow ([@ollo69] - [#57964]) ([nut docs])
+- Refactor Tuya light platform ([@frenck] - [#57980]) ([tuya docs])
+- Bump pysma to 0.6.7 ([@rklomp] - [#57978]) ([sma docs])
+- Bump pychromecast to 9.3.0 ([@emontnemery] - [#57991]) ([cast docs])
+- Bump fjaraskupan to 1.0.2 ([@elupus] - [#57992]) ([fjaraskupan docs])
+- Pickup codeowner for bond ([@bdraco] - [#57995]) ([bond docs])
+- Add vacuum platform to Tuya ([@frenck] - [#57996]) ([tuya docs]) (new-platform)
+- Motion blinds add interface and wait_for_push options ([@starkillerOG] - [#50067]) ([motion_blinds docs])
+- Add to the Broadlink integration support for voltage, current, overload and total consumption sensors ([@felipediel] - [#53628]) ([broadlink docs])
+- Add configuration url to Juicenet ([@jesserockz] - [#57999]) ([juicenet docs])
+- Bump flux_led to 0.24.9 ([@bdraco] - [#58006]) ([flux_led docs])
+- BMW: Fix check_control_message short description ([@rikroe] - [#57998]) ([bmw_connected_drive docs])
+- Include webhook_id in mobile_app's notify registration_info ([@zacwest] - [#58007]) ([mobile_app docs])
+- Add configuration_url and entity_category to Fritz ([@chemelli74] - [#58004]) ([fritz docs])
+- Mark Tasmota status sensors as diagnostic sensors ([@emontnemery] - [#57958]) ([tasmota docs])
+- Use assignment expressions 16 ([@cdce8p] - [#57962])
+- Change warning to info when modbus is ready ([@janiversen] - [#57953]) ([modbus docs])
+- Log unhandled loop exception traces when asyncio debug is on ([@bdraco] - [#57602])
+- Add support for daily and monthly statistics ([@emontnemery] - [#57576]) ([recorder docs]) ([sensor docs])
+- Fix issue parsing color effect None in flux_led ([@brianegge] - [#57979]) ([flux_led docs])
+- Add service to stop air conditioning to bmw_connected_drive ([@rikroe] - [#57772]) ([bmw_connected_drive docs])
+- Add init tests for agent dvr ([@tkdrob] - [#57022]) ([agent_dvr docs])
+- Preventing working with incomplete discoveries from user config flow in upnp ([@StevenLooman] - [#57994]) ([upnp docs])
+- Open garage sensor ([@Danielhiversen] - [#57976]) ([opengarage docs]) (breaking-change) (new-platform)
+- Rework Onewire tests to enable disabled entities ([@epenet] - [#58014]) ([onewire docs])
+- Store automation and script traces ([@emontnemery] - [#56894]) ([automation docs]) ([script docs]) ([trace docs])
+- Remove device category filtering from Tuya init ([@frenck] - [#58019]) ([tuya docs])
+- MQTT Alarm control panel - Enable remote code validation ([@jbouwh] - [#57764]) ([mqtt docs])
+- Deprecate OpenZWave in manifest ([@MartinHjelmare] - [#57987]) ([ozw docs]) (breaking-change)
+- Add humidifier platform to Tuya ([@frenck] - [#58025]) ([tuya docs])
+- Add entity category to Hue ([@balloob] - [#58011]) ([hue docs])
+- Rewrite test for feedreader ([@briglx] - [#57292]) ([feedreader docs])
+- Add configuration url to Airthings ([@Danielhiversen] - [#58041]) ([airthings docs])
+- Add cover platform to Tuya ([@frenck] - [#58045]) ([tuya docs]) (new-platform)
+- Add configuration url to Tractive ([@Danielhiversen] - [#58038]) ([tractive docs])
+- Add configuration url to Surepetcare ([@Danielhiversen] - [#58039]) ([surepetcare docs])
+- Add more info to OpenGarage device info ([@Danielhiversen] - [#58037]) ([opengarage docs])
+- Add MWh as an energy unit ([@emontnemery] - [#58034]) ([sensor docs])
+- Add Water Detector (sj) device support to Tuya ([@frenck] - [#58049]) ([tuya docs])
+- Add more sensors to Opengarage ([@Danielhiversen] - [#58042]) ([opengarage docs])
+- Clean up self references from Tuya climate platform constructor ([@frenck] - [#58051]) ([tuya docs])
+- Add entity category and state class to mobile app ([@balloob] - [#58012]) ([mobile_app docs])
+- Use constants in Onewire tests ([@epenet] - [#58017]) ([onewire docs])
+- Add support for kPa to sensor statistics ([@emontnemery] - [#58032]) ([sensor docs])
+- Fix clickatell send_error error check ([@scop] - [#57985]) ([clickatell docs])
+- Migrate SimpliSafe to new web-based authentication ([@bachya] - [#57212]) ([simplisafe docs]) (breaking-change)
+- Rework RainMachine entity ID generation ([@bachya] - [#58055]) ([rainmachine docs])
+- Add Human Presence Sensor (hps) device support to Tuya ([@frenck] - [#58054]) ([tuya docs])
+- Bump flux_led to 0.24.11 ([@bdraco] - [#58020]) ([flux_led docs])
+- Add volume_up and volume_down to musiccast ([@vigonotion] - [#57919]) ([yamaha_musiccast docs])
+- Bump flux_led to 0.24.12 ([@bdraco] - [#58071]) ([flux_led docs])
+- Remove legacy tests in onewire ([@epenet] - [#58075]) ([onewire docs])
+- Assign entity category diagnostics to deCONZ battery sensors ([@Kane610] - [#58077]) ([deconz docs])
+- Bump pychromecast to 9.3.1 ([@emontnemery] - [#58035]) ([cast docs])
+- Address late review of unifi ([@Kane610] - [#58080]) ([unifi docs])
+- Don't use deprecated methods of retrieving registries in deCONZ ([@Kane610] - [#58081]) ([deconz docs])
+- Add deCONZ number config entity for Hue motion sensor delay ([@Kane610] - [#58076]) ([deconz docs])
+- Cleanup duplicate code in Onewire tests ([@epenet] - [#58082]) ([onewire docs])
+- Don't use deprecated ways of retrieving registries in Axis ([@Kane610] - [#58083]) ([axis docs])
+- Patch for Alexa percentage_step to precision ([@jbouwh] - [#58062]) ([alexa docs])
+- Fix supported_features behaviour for fan platform ([@jbouwh] - [#58065]) ([template docs])
+- Activate tradfri in coverage and clean conftest for tradfri ([@janiversen] - [#58058]) ([tradfri docs])
+- Please pylint for modbus test ([@janiversen] - [#58089]) ([modbus docs])
+- Add CO2 Detector (co2bj) device support to Tuya ([@frenck] - [#58093]) ([tuya docs])
+- Add state_class to current bandwith sensors for bbox integration ([@davidlb] - [#58086]) ([bbox docs])
+- Simplify signalling for updating available property of deCONZ entities ([@Kane610] - [#58078]) ([deconz docs])
+- Bump ismartgate to 4.0.3 ([@bdraco] - [#58073]) ([gogogate2 docs])
+- bitwise and for test supported_features ([@jbouwh] - [#58097]) ([template docs])
+- Report orphaned statistics in statistic validation ([@emontnemery] - [#57324]) ([recorder docs]) ([sensor docs])
+- Report all unrecorded sensors in statistics tool ([@emontnemery] - [#58092]) ([sensor docs])
+- Purge short term statistics ([@emontnemery] - [#58028]) ([recorder docs])
+- Fix issue where Number still would send force_update to super method ([@Kane610] - [#58110]) ([deconz docs])
+- Use assignment expressions 17 ([@cdce8p] - [#57963])
+- Fix referenced before assignment error in sonos speaker ([@tkdrob] - [#57924]) ([sonos docs])
+- Use assignment expressions 21 ([@cdce8p] - [#57970])
+- Complete Ceiling Light (xdd) device support for Tuya ([@frenck] - [#58095]) ([tuya docs])
+- Complete Switch/Socket/Power Strip device support for Tuya ([@frenck] - [#58106]) ([tuya docs])
+- Ensure lutron_caseta triggers can still be attached in setup retry state ([@bdraco] - [#57873]) ([lutron_caseta docs])
+- Bump hdate to 0.10.4 ([@yuvalabou] - [#58121]) ([jewish_calendar docs])
+- Assign entity category diagnostics to deCONZ tampering sensors ([@Kane610] - [#58112]) ([deconz docs])
+- Add entity categories for appropriate SimpliSafe entities ([@bachya] - [#58108]) ([simplisafe docs])
+- Add configuration url to Sonarr ([@jesserockz] - [#58085]) ([sonarr docs])
+- Correct unit_of_measurement for statistics sensor ([@emontnemery] - [#58023]) ([statistics docs])
+- Use assignment expressions 20 ([@cdce8p] - [#57969]) ([mqtt docs]) ([zha docs]) ([buienradar docs]) ([upb docs]) ([debugpy docs])
+- Add Formaldehyde Detector (jqbj) device support to Tuya ([@frenck] - [#58118]) ([tuya docs])
+- Add Dimmer Switch (tgkg) device support to Tuya ([@frenck] - [#58134]) ([tuya docs])
+- Use assignment expressions 12 ([@cdce8p] - [#57937])
+- Add entity categories for appropriate RainMachine entities ([@bachya] - [#58107]) ([rainmachine docs])
+- Add entity categories for appropriate Notion entities ([@bachya] - [#58105]) ([notion docs])
+- Add entity categories for appropriate Guardian entities ([@bachya] - [#58104]) ([guardian docs])
+- Add entity categories for appropriate Ambient PWS entities ([@bachya] - [#58100]) ([ambient_station docs])
+- Report modbus buffer too small or too big to unpack ([@janiversen] - [#57838]) ([modbus docs])
+- Fix connect_fail test and modbus.py 100% coverage ([@janiversen] - [#57894]) ([modbus docs])
+- Add entity categories for appropriate AirVisual entities ([@bachya] - [#58102]) ([airvisual docs])
+- Add `configuration_url` to Denon AVR integration ([@bieniu] - [#58116]) ([denonavr docs])
+- Move Screenlogic lights to the light platform ([@bdraco] - [#55467]) ([screenlogic docs]) (breaking-change) (new-platform)
+- Run tests with -X dev and -bb ([@scop] - [#58079])
+- Bump frontend to 20211020.0 ([@balloob] - [#58139]) ([frontend docs])
+- Add auto slider/box mode to number entity ([@frenck] - [#57737]) ([demo docs]) ([number docs])
+- Add `configuration_url` to Sonos devices ([@jjlawren] - [#58148]) ([sonos docs])
+- Add `configuration_url` to Plex integration ([@jjlawren] - [#58149]) ([plex docs])
+- Add missing names for notify service fields ([@spacegaier] - [#58154]) ([notify docs])
+- Remove accidental blanks from Shelly trigger type translations ([@spacegaier] - [#58151]) ([shelly docs])
+- Update pyhomematic to 0.1.76 ([@danielperna84] - [#58136]) ([homematic docs])
+- input_datetime: Move has_date, has_time to capability_attributes ([@balloob] - [#58138]) ([input_datetime docs])
+- Use assignment expressions 14 ([@cdce8p] - [#57939])
+- Use assignment expressions 13 ([@cdce8p] - [#57938])
+- Add entity categories to goalzero ([@tkdrob] - [#57906]) ([goalzero docs])
+- Use assignment expressions 22 ([@cdce8p] - [#57971])
+- Add Device Type Energy to Srp Energy Sensor ([@briglx] - [#58147]) ([srp_energy docs])
+- Address late review for Fritz entity_category ([@chemelli74] - [#58141]) ([fritz docs])
+- Clean up SimpliSafe entity inheritance structure ([@bachya] - [#58063]) ([simplisafe docs])
+- Revert "Swap order of int template helper kwargs (#57729)" ([@emontnemery] - [#58015])
+- Add long-term statistics for AEMET sensors ([@Noltari] - [#57844]) ([aemet docs])
+- Add LOOKin integration ([@ANMalko] - [#58125]) ([lookin docs]) (new-integration)
+- Improve SSDP discovery compatibility when device was discovery through an SSDP advertisement ([@StevenLooman] - [#58133]) ([ssdp docs])
+- Bump async-upnp-client to 0.22.9 ([@bdraco] - [#58185]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs])
+- Add climate platform to lookin ([@ANMalko] - [#58175]) ([lookin docs]) (new-platform)
+- Move notify setup to legacy ([@MartinHjelmare] - [#58033]) ([notify docs])
+- Remove unreachable code in data_entry_flow.py ([@bdraco] - [#58193])
+- Allow setting the nexia run mode with the hvac mode ([@bdraco] - [#57940]) ([nexia docs])
+- Cleanup lookin entity MRO and inheritance ([@bdraco] - [#58194]) ([lookin docs])
+- Tweak energy validator ([@emontnemery] - [#58018]) ([energy docs])
+- Fjaraskupan entity categories ([@elupus] - [#57846]) ([fjaraskupan docs])
+- Add long-term statistics for Tado sensors ([@Noltari] - [#58111]) ([tado docs])
+- Add `configuration_url` to AsusWrt integration ([@bieniu] - [#58172]) ([asuswrt docs])
+- Add support for device configuration URL to Axis devices ([@Kane610] - [#58176]) ([axis docs])
+- Use assignment expressions 23 ([@cdce8p] - [#58180])
+- Add `configuration_url` to Netatmo devices ([@cgtobi] - [#58160]) ([netatmo docs])
+- Use assignment expressions 27 ([@cdce8p] - [#58188])
+- Use assignment expressions 26 ([@cdce8p] - [#58187])
+- Use DeviceInfo on zha ([@epenet] - [#58202]) ([zha docs])
+- Use assignment expressions 25 ([@cdce8p] - [#58182])
+- Use DeviceInfo on zwave ([@epenet] - [#58183]) ([zwave docs])
+- Bump google-nest-sdm to 0.3.8 ([@allenporter] - [#58186]) ([nest docs])
+- Fix registration UI to work for Israel devices ([@tomer-w] - [#58192]) ([tuya docs])
+- Cleanup device registration in Onewire ([@epenet] - [#58101]) ([onewire docs])
+- Use DeviceInfo on components with via_device (H) ([@epenet] - [#58211]) ([hive docs]) ([hue docs]) ([homematicip_cloud docs]) ([hunterdouglas_powerview docs])
+- Remove black color name for light dropdowns ([@TomBrien] - [#58207]) ([light docs])
+- Make sure IQVIA data storage conforms to standards ([@bachya] - [#57811]) ([iqvia docs])
+- Use DeviceInfo on components with via_device (A-G) ([@epenet] - [#58210]) ([deconz docs]) ([elkm1 docs]) ([freebox docs]) ([directv docs]) ([fritz docs]) ([acmeda docs]) ([guardian docs]) ([bosch_shc docs])
+- Make sure RainMachine data storage conforms to standards ([@bachya] - [#57816]) ([rainmachine docs])
+- Make sure Ambient PWS data storage conforms to standards ([@bachya] - [#57807]) ([ambient_station docs])
+- Add memory/cpu percentage to Supervisor addons entities ([@avee87] - [#57468]) ([hassio docs])
+- Make sure Guardian data storage conforms to standards ([@bachya] - [#57809]) ([guardian docs])
+- Use DeviceInfo on components with via_device (I-T) ([@epenet] - [#58212])
+- Use DeviceInfo on components with via_device (R-X) ([@epenet] - [#58213]) ([tado docs]) ([toon docs]) ([xiaomi_aqara docs]) ([simplisafe docs]) ([somfy docs]) ([xiaomi_miio docs]) ([synology_dsm docs]) ([wilight docs]) ([sia docs]) ([roon docs]) ([ruckus_unleashed docs])
+- Use assignment expressions 28 ([@cdce8p] - [#58189])
+- Use assignment expressions 24 ([@cdce8p] - [#58181])
+- Add Smoke Detector (ywbj) device support to Tuya ([@regevbr] - [#58170]) ([tuya docs])
+- Enable long-term statistics for OpenWeatherMap sensors ([@dkt01] - [#57781]) ([openweathermap docs])
+- Use HTTPStatus instead of HTTP_ consts and magic values in components/a* ([@scop] - [#57988])
+- Gogogate2 add statistics ([@thomas-svrts] - [#58178]) ([gogogate2 docs])
+- Warn if state_changed events are excluded from recorder ([@emontnemery] - [#58021]) ([recorder docs]) (breaking-change)
+- Support for Fritz!DECT 500 lightbulbs ([@flabbamann] - [#52830]) ([fritzbox docs]) (new-platform)
+- Switch Fritz to device selector for services ([@chemelli74] - [#58005]) ([fritz docs]) (breaking-change)
+- Rework octoprint ([@rfleming71] - [#58040]) ([octoprint docs]) (breaking-change)
+- Use HTTPStatus instead of HTTP_ consts and magic values in comp.../[de]* ([@scop] - [#57990])
+- Use DeviceInfo class - A ([@tkdrob] - [#57859])
+- Use DeviceInfo Class D ([@tkdrob] - [#58218])
+- Use DeviceInfo on components with via_device ([@epenet] - [#58222]) ([tellduslive docs]) ([homekit_controller docs]) ([myq docs]) ([onewire docs]) ([ozw docs]) ([bond docs])
+- Fix fritzbox tests ([@flabbamann] - [#58227]) ([fritzbox docs])
+- Use DeviceInfo on components with configuration_url ([@epenet] - [#58223])
+- Add strict typing to efergy ([@tkdrob] - [#57682])
+- Consolidate ESPHome icon-handling code into EsphomeEntity ([@paulmonigatti] - [#57744]) ([esphome docs])
+- Fix unit of measurement for P1 Montior ([@klaasnicolaas] - [#57495]) ([p1_monitor docs])
+- Bump pylgnetcast to 0.3.4 ([@Drafteed] - [#58233]) ([lg_netcast docs])
+- Fix plugwise longterm statistics ([@bouwew] - [#58127]) ([plugwise docs])
+- Use value_fn for bmw_connected_drive binary_sensor ([@cdce8p] - [#57540]) ([bmw_connected_drive docs])
+- Index in-progress flows to avoid linear search ([@bdraco] - [#58146]) ([zha docs]) ([auth docs]) ([point docs]) ([smartthings docs]) ([withings docs])
+- Add product ID to model for Tuya ([@frenck] - [#58235]) ([tuya docs])
+- Add support for device configuration URL to deCONZ gateway ([@Kane610] - [#58184]) ([deconz docs])
+- Use HTTPStatus instead of HTTP_ consts and magic values in comp.../[bc]* ([@scop] - [#57989])
+- Update naming scheme for Renault entities ([@epenet] - [#57922]) ([renault docs])
+- Add datetime_today template method ([@Petro31] - [#57435])
+- Add area_entities and area_devices template functions/filters ([@raman325] - [#55228])
+- Add support for device configuration URL to UniFi Controller ([@Kane610] - [#58237]) ([unifi docs])
+- Add warning when entity used in template doesn't exist ([@avee87] - [#57316])
+- Enable strict typing in lookin ([@bdraco] - [#58238]) ([lookin docs])
+- Add support for min/max dimmer brightness in Tuya ([@frenck] - [#58165]) ([tuya docs])
+- Restore the previous state of a KNX binary sensor ([@marvin-w] - [#57891]) ([knx docs])
+- Nello removal ([@pattyland] - [#57926]) ([nello docs]) (breaking-change)
+- Use attributes octoprint ([@cdce8p] - [#58241]) ([octoprint docs])
+- Add statistics support to Huisbaasje ([@dennisschroer] - [#54651]) ([huisbaasje docs])
+- Add strict typing to modem_callerid ([@tkdrob] - [#57683]) ([modem_callerid docs])
+- Fix Fibaro light features ([@rik-v] - [#56385]) ([fibaro docs])
+- Use http.HTTPStatus in components/f* ([@scop] - [#58244])
+- Bump arcam library to 0.12 with new series support ([@elupus] - [#53843]) ([arcam_fmj docs])
+- ISS cleanup ([@yuvalabou] - [#55801]) ([iss docs])
+- Discovery ignores DLNA DMR devices when they are better supported by another integration ([@chishm] - [#57363]) ([dlna_dmr docs]) ([ssdp docs])
+- Add state_class support to Rest ([@koying] - [#58026]) ([rest docs])
+- Use http.HTTPStatus in components/[ikl]* ([@scop] - [#58248])
+- Improve Discord notifier ([@nihaals] - [#52523]) ([discord docs])
+- Fully type Jewish Calendar ([@yuvalabou] - [#56232]) ([jewish_calendar docs])
+- Apple TV power management ([@itairaz1] - [#51520]) ([apple_tv docs])
+- Spelling & grammar improvements to bug_report.yml ([@JJJ] - [#56800])
+- Add additional nest stream test coverage ([@allenporter] - [#58013]) ([nest docs])
+- Allow different voices in Watson TTS calls ([@drinfernoo] - [#56811]) ([watson_tts docs])
+- Use http.HTTPStatus in components/m* ([@scop] - [#58251])
+- Add grid services active sensor to telsa powerwall integration ([@some-guy-in-oz] - [#56317]) ([powerwall docs])
+- Bump velbusaio to 2021.10.6 ([@Cereal2nd] - [#58168]) ([velbus docs])
+- Update ismartgate dependency ([@NickM-27] - [#58259]) ([gogogate2 docs])
+- Change precision of Nest sensors ([@michaeldavie] - [#56993]) ([nest docs])
+- Fix format bug in nest log statement ([@allenporter] - [#58263]) ([nest docs])
+- Fix a bug in a nest test that causes side effects for other tests ([@allenporter] - [#58264]) ([nest docs])
+- Rename tests filenames to conform to Home Assistant standards ([@allenporter] - [#58266]) ([nest docs])
+- Bump greeclimate to 0.12.2 ([@cmroche] - [#58256]) ([gree docs])
+- Fix yandex captcha detecting ([@devbis] - [#56132]) ([yandex_transport docs])
+- Use DeviceInfo Class B-C ([@tkdrob] - [#58217])
+- Use DeviceInfo Class E ([@tkdrob] - [#58230])
+- Use DeviceInfo Class F-G ([@tkdrob] - [#58255])
+- Use DeviceInfo on components with suggested_area ([@epenet] - [#58225]) ([tado docs]) ([nuheat docs]) ([august docs]) ([roku docs]) ([sonos docs]) ([hunterdouglas_powerview docs]) ([devolo_home_control docs])
+- Address Watson TTS review comment ([@frenck] - [#58277]) ([watson_tts docs])
+- Use regex instead of partition to section package definition ([@ludeeus] - [#58278])
+- Bump awesomeversion from 21.8.1 to 21.10.1 ([@ludeeus] - [#58258])
+- Ensure all devices show up in Tuya ([@frenck] - [#58280]) ([tuya docs])
+- Fix modem callerid callback ([@tkdrob] - [#58275]) ([modem_callerid docs])
+- Update tesla_powerwall to 0.3.12 ([@jrester] - [#58284]) ([powerwall docs])
+- Use DeviceInfo Class H ([@tkdrob] - [#58276])
+- Update aiolookin to 0.0.3 version ([@ANMalko] - [#58249]) ([lookin docs])
+- Add CO Detector (cobj) device support to Tuya ([@frenck] - [#58292]) ([tuya docs])
+- Add Gas Detector (rqbj) device support to Tuya ([@frenck] - [#58293]) ([tuya docs])
+- Add Pressure Sensor (ylcg) device support to Tuya ([@frenck] - [#58294]) ([tuya docs])
+- Complete Heater (qn) device support to Tuya ([@frenck] - [#58296]) ([tuya docs])
+- Make sure Flu Near You data storage conforms to standards ([@bachya] - [#57808]) ([flunearyou docs])
+- Use http.HTTPStatus in components/[gh]* ([@scop] - [#58246])
+- Use DeviceInfo Class I-K ([@tkdrob] - [#58300])
+- Use http.HTTPStatus in components/s* ([@scop] - [#58291])
+- Ensure zeroconf uses the newest non-link local address in discovery ([@bdraco] - [#58257]) ([zeroconf docs])
+- Use http.HTTPStatus in components/r* ([@scop] - [#58288])
+- Use HTTPStatus in components/[nop]* ([@scop] - [#58279])
+- Add new attribute constants for DeviceInfo registration ([@epenet] - [#58289]) ([netatmo docs]) ([isy994 docs]) ([apple_tv docs]) ([plugwise docs]) ([bond docs]) ([zwave_js docs])
+- Allow service data template to return a dict ([@koying] - [#57105])
+- Complete Smart Camera (sp) device support to Tuya ([@frenck] - [#58301]) ([tuya docs])
+- Add switch platform to Tuya Light (dj) devices ([@fOmey] - [#58196]) ([tuya docs])
+- OpenGarage binary sensor ([@Danielhiversen] - [#58030]) ([opengarage docs]) (new-platform)
+- Bump pylitterbot to 2021.10.1 ([@natekspencer] - [#58307]) ([litterrobot docs])
+- Expose Sonos features as switch entities ([@jjlawren] - [#54502]) ([sonos docs]) (breaking-change)
+- Filter by connections instead of identifiers for Shelly ([@chemelli74] - [#58305]) ([shelly docs])
+- Configurable mode for KNX number entity ([@farmio] - [#58268]) ([knx docs])
+- Use http.HTTPStatus in components/[tuv]* ([@scop] - [#58325])
+- Pull configuration_url from library in gogogate2 ([@bdraco] - [#58318]) ([gogogate2 docs])
+- Use DeviceInfo Class N-O ([@tkdrob] - [#58314])
+- Move `configuration_url` abbreviation to MQTT `DEVICE_ABBREVIATIONS` const ([@bieniu] - [#58313]) ([mqtt docs])
+- Fix bug in MediaSource definintion and enable strict type checking ([@allenporter] - [#58321]) ([netatmo docs]) ([media_source docs]) ([xbox docs])
+- Complete removal of auto_start, zeroconf_default_interface, and safe_mode from HomeKit ([@bdraco] - [#58320]) (breaking-change)
+- Complete Solar Light (tyndj) device support to Tuya ([@frenck] - [#58302]) ([tuya docs])
+- Add long-term statistics for Ondilo ICO ([@TheNogl] - [#58290]) ([ondilo_ico docs])
+- Add VOC Sensor (voc) device support to Tuya ([@frenck] - [#58332]) ([tuya docs])
+- Add Methane Detector (jwbj) device support to Tuya ([@frenck] - [#58328]) ([tuya docs])
+- Add PM2.5 Sensor (pm25) device support to Tuya ([@frenck] - [#58329]) ([tuya docs])
+- Add more Huawei LTE sensor state classes ([@scop] - [#57983]) ([huawei_lte docs])
+- Use http.HTTPStatus in components/[wxyz]* ([@scop] - [#58330])
+- Support suburban railways stations in yandex transport ([@devbis] - [#58281]) ([yandex_transport docs])
+- Extend Tuya Humidifier ([@alexanv1] - [#58260]) ([tuya docs])
+- Pin pytest-github-actions-annotate-failures to fix broken CI ([@frenck] - [#58351])
+- add BitronVideo AV2021 ZHA stick ([@javicalle] - [#58337]) ([zha docs])
+- feat: Add unit of measurement to KNX number platform ([@marvin-w] - [#58353]) ([knx docs])
+- Fix lookin device validation in config flow ([@bdraco] - [#58349]) ([lookin docs])
+- Use DataUpdateCoordinator in Vallox ([@andre-richter] - [#56966]) ([vallox docs])
+- Allow advanced Plex `play_media` search options ([@jjlawren] - [#56226]) ([plex docs])
+- Fix lookin push updates when sensor entities disabled ([@bdraco] - [#58346]) ([lookin docs])
+- Add warning if Sonos not linked to Plex ([@jjlawren] - [#58150]) ([plex docs])
+- Set Sonos alarm and battery entity categories ([@jjlawren] - [#58340]) ([sonos docs])
+- Add Cell State sensor to Vallox ([@andre-richter] - [#58358]) ([vallox docs])
+- Add support for entity category for necessary KNX platforms ([@marvin-w] - [#58357]) ([knx docs])
+- Fix EXT-X-PROGRAM-DATE-TIME in stream ([@uvjustin] - [#58036]) ([stream docs])
+- Add entity category to MyQ ([@balloob] - [#58377]) ([myq docs])
+- Initial support for Tradfri STARKVIND Air purifier ([@ggravlingen] - [#58295]) ([tradfri docs]) (new-platform)
+- Fix configuration url in gogogate2 ([@bdraco] - [#58365]) ([gogogate2 docs])
+- Bump pytradfri to 7.1.1 ([@janiversen] - [#58379]) ([tradfri docs])
+- Add entity category to august ([@bdraco] - [#58359]) ([august docs])
+- Add entity category to roomba ([@bdraco] - [#58362]) ([roomba docs])
+- Add entity category to gogogate2 ([@bdraco] - [#58366]) ([gogogate2 docs])
+- Add entity category to elkm1 ([@bdraco] - [#58364]) ([elkm1 docs])
+- Add Temperature and Humidity Sensor (wsdcg) device support to Tuya ([@frenck] - [#58335]) ([tuya docs])
+- Add configuration_url to isy994 ([@bdraco] - [#58372]) ([isy994 docs])
+- Add entity category to Neato ([@chemelli74] - [#58367]) ([neato docs])
+- Add support for unit of measurement in MQTT number platform ([@frenck] - [#58343]) ([mqtt docs])
+- Upgrade youless library to fix LS110 power total is not a number ([@gjong] - [#58333]) ([youless docs])
+- Minor cleanups for Vallox ([@andre-richter] - [#58384]) ([vallox docs])
+- Adjust DeviceInfo registration on zwave_js ([@epenet] - [#58391]) ([zwave_js docs])
+- Upgrade Tuya IoT Python SDK to 0.6.3 ([@frenck] - [#58240]) ([tuya docs])
+- Bump async-upnp-client to 0.22.10 ([@StevenLooman] - [#58387]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs])
+- Use DeviceInfo in control4 ([@epenet] - [#58388]) ([control4 docs])
+- Use DeviceInfo on accuweather ([@epenet] - [#58394]) ([accuweather docs])
+- Add entity categories to Netatmo ([@cgtobi] - [#58383]) ([netatmo docs])
+- Run nuki bidge.info() on executor ([@sagioto] - [#58345]) ([nuki docs])
+- Add entity category to nut battery ([@bdraco] - [#58363]) ([nut docs])
+- Add entity category to hunterdouglas_powerview ([@bdraco] - [#58368]) ([hunterdouglas_powerview docs])
+- Add entity category to MotionEye ([@chemelli74] - [#58370]) ([motioneye docs])
+- Add entity category to Advantage Air ([@Bre77] - [#58371]) ([advantage_air docs])
+- Use DeviceInfo on awair ([@epenet] - [#58395]) ([awair docs])
+- Use DeviceInfo on hassio ([@epenet] - [#58397]) ([hassio docs])
+- Use DeviceInfo on esphome ([@epenet] - [#58396]) ([esphome docs])
+- Use DeviceInfo in huawei-lte ([@epenet] - [#58398]) ([huawei_lte docs])
+- Add configuration_url to upnp device ([@StevenLooman] - [#58385]) ([upnp docs])
+- Update PyVicare to 2.13.0 ([@oischinger] - [#57700]) ([vicare docs]) (breaking-change)
+- Use DeviceInfo in mqtt ([@epenet] - [#58389]) ([mqtt docs])
+- Allow extra keys in MQTT discovery messages ([@emontnemery] - [#58390]) ([mqtt docs])
+- Add Smart Kettle (bh) device support to Tuya ([@frenck] - [#58347]) ([tuya docs])
+- Drop unused ATTR_ENTRY_TYPE constant ([@epenet] - [#58400]) ([forecast_solar docs])
+- Use DeviceInfo in asuswrt ([@epenet] - [#58399]) ([asuswrt docs])
+- Advantage Air fix logic for motion sensors ([@Bre77] - [#58376]) ([advantage_air docs])
+- Use constants in renault tests ([@epenet] - [#58406]) ([renault docs])
+- Use ATTR_VIA_DEVICE constant in onewire tests ([@epenet] - [#58405]) ([onewire docs])
+- Meteofrance - Add state_class to appropriate sensors ([@davidlb] - [#58401]) ([meteo_france docs])
+- Bump up ZHA dependencies ([@Adminiuga] - [#58409]) ([zha docs])
+- Log correct ZHA channel initialization step ([@Adminiuga] - [#58410]) ([zha docs])
+- Add state_class/entity_category to Verisure ([@frenck] - [#58403]) ([verisure docs])
+- Add zwave_js sensor entity categories ([@MartinHjelmare] - [#58416]) ([zwave_js docs]) (breaking-change)
+- Use DeviceInfo Class P-R ([@tkdrob] - [#58324])
+- Update PyVicare to 2.13.1 ([@oischinger] - [#58422]) ([vicare docs])
+- bump pylgnetcast to 0.3.5 ([@Drafteed] - [#58419]) ([lg_netcast docs])
+- Switch to UpdateCoordinator for eight sleep ([@raman325] - [#52614]) ([eight_sleep docs])
+- Complete Air Conditioner (kt) device support for Tuya ([@frenck] - [#58417]) ([tuya docs])
+- Add running device class to binary sensor ([@ludeeus] - [#58423]) ([binary_sensor docs])
+- Use DeviceInfo Class L-M ([@tkdrob] - [#58312])
+- Fix updating sensor on unlinked Plex server ([@jjlawren] - [#58418]) ([plex docs])
+- Add config flow to venstar ([@garbled1] - [#58152]) ([venstar docs]) (breaking-change)
+- Add WattTime config option for showing the monitored location on the map ([@bachya] - [#57129]) ([watttime docs])
+- Set entity_category for node status sensor ([@raman325] - [#58434]) ([zwave_js docs])
+- Add binary sensor to add-ons to show if they are running ([@ludeeus] - [#58120]) ([hassio docs])
+- Re-add support for realtime SimpliSafe websocket ([@bachya] - [#58061]) ([simplisafe docs])
+- Ensure domain is correct format ([@balloob] - [#58429])
+- dlna_dmr won't support devices that don't provide all DMR services ([@chishm] - [#58374]) ([dlna_dmr docs]) ([ssdp docs])
+- Aurora abb (solar) configflow ([@davet2001] - [#36300]) ([aurora_abb_powerone docs]) (breaking-change)
+- Use class attribute instead of property decorator ([@raman325] - [#58448]) ([zwave_js docs])
+- Fix flux_led with RGB/W bulbs (model 0x44) ([@bdraco] - [#58438]) ([flux_led docs])
+- Refactor input_select ([@frenck] - [#53334]) ([input_select docs]) (breaking-change)
+- Fix Aurora abb incorrect attr ([@tkdrob] - [#58450]) ([aurora_abb_powerone docs])
+- Add typehints to eight_sleep ([@raman325] - [#58442]) ([eight_sleep docs])
+- Add all kraken entities on startup ([@eifinger] - [#58027]) ([kraken docs])
+- Add speed & intensity controls to wled ([@rytilahti] - [#56862]) ([wled docs])
+- Add support for external statistics ([@emontnemery] - [#56607]) ([recorder docs]) ([sensor docs])
+- Add support for fan groups ([@bdraco] - [#57941]) ([group docs]) (new-platform)
+- Allow homeassistant prefix for device info configuration url ([@ludeeus] - [#58414]) ([hassio docs])
+- Remove redundant value test in KNX Number entity ([@farmio] - [#58455]) ([knx docs])
+- Fix velbus climate ([@Cereal2nd] - [#58408]) ([velbus docs])
+- Use NamedTuple in Vallox service_to_method mapping ([@andre-richter] - [#58361]) ([vallox docs])
+- Automatic spider supported fan speed and hvac ([@peternijssen] - [#58308]) ([spider docs])
+- Address late review of velbus ([@Cereal2nd] - [#58463]) ([velbus docs])
+- Use http.HTTPStatus in util.aiohttp ([@scop] - [#58456])
+- Clean up rounding in Ecobee integration ([@bjpetit] - [#56319]) ([ecobee docs])
+- Add device_class and state_class as optional attributes to the scrape sensor, to support statistics ([@lukas-hetzenecker] - [#58164]) ([scrape docs])
+- Warn when recorder connects to an unsupported database ([@emontnemery] - [#58161]) ([recorder docs]) (breaking-change)
+- Use async_on_unload in Netatmo ([@cgtobi] - [#58461]) ([netatmo docs])
+- Corrections for external statistics ([@emontnemery] - [#58469]) ([recorder docs])
+- Validate device automation capablities WS calls ([@balloob] - [#58444])
+- Add entity_category to SmartThings sensors ([@allenporter] - [#58375]) ([smartthings docs])
+- Add offset support to time trigger ([@RobertMe] - [#56838]) ([homeassistant docs])
+- Add reauth for Netatmo when token or token scope is invalid ([@cgtobi] - [#57487]) ([netatmo docs])
+- Register Coinbase service in Device Registry and provide configuration URL ([@TomBrien] - [#58472]) ([coinbase docs])
+- Publish nest event ids in camera related events ([@allenporter] - [#58299]) ([nest docs])
+- Add some more required/optional tags to condition schemas ([@balloob] - [#58424])
+- Fjaraskupan number entity for periodic venting ([@elupus] - [#58179]) ([fjaraskupan docs])
+- Add vlc telnet error handler decorator ([@MartinHjelmare] - [#58468]) ([vlc_telnet docs])
+- Fix mysensors metric/non-metric gateway ([@MartinHjelmare] - [#58476]) ([mysensors docs])
+- Limit add-on stats to add-ons that are running ([@ludeeus] - [#58479]) ([hassio docs])
+- Support Energy Sensor and Statistics in Homematic IP Cloud Integration ([@FlavorFx] - [#57734]) ([homematicip_cloud docs])
+- dlna_dmr will gracefully handle device's rejection of subscription attempt ([@chishm] - [#58451]) ([dlna_dmr docs])
+- Bump ZHA quirks version to 0.0.63 ([@dmulcahey] - [#58478]) ([zha docs])
+- Add entity category to UniFi sensors and switches ([@Kane610] - [#58484]) ([unifi docs])
+- Enable type checking - bmw_connected_drive ([@cdce8p] - [#58310]) ([bmw_connected_drive docs])
+- Remove Huawei Router (ADR-0004) ([@yuvalabou] - [#57136]) ([huawei_router docs]) (breaking-change)
+- Bump pyotp to 2.6.0 ([@chrillebile] - [#58413]) ([otp docs])
+- Add translations for binary_sensor device classes ([@spacegaier] - [#58471]) ([binary_sensor docs])
+- Fix overriding the yeelight model if it is not known ([@bdraco] - [#56967]) ([yeelight docs]) (breaking-change)
+- Add Mill Sense Air sensors ([@Danielhiversen] - [#57776]) ([mill docs])
+- Allow data sources to affect client tracker state after reconnecting to UniFi controller ([@Kane610] - [#58269]) ([unifi docs])
+- Fix device_info for xiaomi_aqara ([@epenet] - [#58465]) ([xiaomi_aqara docs])
+- Minor cleanup on stream ([@uvjustin] - [#58486]) ([stream docs])
+- Fix flaky UPNP test ([@emontnemery] - [#58493]) ([upnp docs])
+- Add average template function and filter ([@Petro31] - [#57727])
+- Bump frontend to 20211026.0 ([@balloob] - [#58500]) ([frontend docs])
+- Add async lib and DataUpdateCoordinator for environment_canada ([@gwww] - [#57746]) ([environment_canada docs]) (breaking-change)
+- Bump aioambient to 2021.10.0 ([@bachya] - [#58494]) ([ambient_station docs])
+- Add entity categories to esphome ([@jesserockz] - [#58495]) ([esphome docs])
+- Add Select platform to Advantage Air ([@Bre77] - [#54747]) ([advantage_air docs])
+- Broadlink Integration add support for LB1 ([@L-I-Am] - [#50953]) ([broadlink docs]) (new-platform)
+- Fix endpoints issues for Tuya Integration ([@zlinoliver] - [#58411]) ([tuya docs])
+- Fix Microsoft tts defaults to resolve broken settings ([@tylergibson] - [#58499]) ([microsoft docs]) (breaking-change)
+- Fix min_humidity and max_humidity in homekit_controller ([@yeahme49] - [#58507]) ([homekit_controller docs])
+- Bump quantum_gateway to v0.0.6 ([@cisasteelersfan] - [#58452]) ([quantum_gateway docs])
+- Retry yeelight setup later if first update fails ([@bdraco] - [#58446]) ([yeelight docs])
+- Add myStrom LED Strip support extending rgblamp bulb_type ([@asansano] - [#57322]) ([mystrom docs])
+- Fix issue where UniFi DPI groups state wasn't being updated ([@Kane610] - [#58502]) ([unifi docs])
+- Use PyAV fork and set hvc1 codec tag for H.265 ([@uvjustin] - [#58309]) ([stream docs])
+- Refactor Growatt sensor types ([@muppet3000] - [#56544]) ([growatt_server docs])
+- Fix available for Mill ([@Danielhiversen] - [#58510]) ([mill docs])
+- Use constants for device registry checks ([@epenet] - [#58514]) ([nest docs]) ([arcam_fmj docs])
+- Fritz clean device_tracker service ([@chemelli74] - [#56535]) ([fritz docs])
+- Adjust onewire device manufacturer ([@epenet] - [#58515]) ([onewire docs])
+- Fix media_player grouping while media_player is off ([@vigonotion] - [#58070]) ([media_player docs])
+- Use DeviceInfo in screenlogic ([@epenet] - [#58518]) ([screenlogic docs])
+- Use DeviceInfo in sharkiq ([@epenet] - [#58519]) ([sharkiq docs])
+- Use DeviceInfo in shelly ([@epenet] - [#58520]) ([shelly docs])
+- Move WLED palette to config entity category ([@frenck] - [#58517]) ([wled docs])
+- Use DeviceInfo in sms ([@epenet] - [#58525]) ([sms docs])
+- Use DeviceInfo in smarttub ([@epenet] - [#58524]) ([smarttub docs])
+- Use DeviceInfo in smartthings ([@epenet] - [#58523]) ([smappee docs])
+- Use DeviceInfo in sma ([@epenet] - [#58521]) ([sma docs])
+- Handle accessories without a serial number in homekit_controller ([@bdraco] - [#58498]) ([homekit_controller docs])
+- Simplify utility_meter code base with croniter ([@dgomes] - [#55625]) ([utility_meter docs]) (breaking-change)
+- Revert "Add warning when entity used in template doesn't exist" ([@frenck] - [#58527])
+- Use DeviceInfo in solarlog ([@epenet] - [#58526]) ([solarlog docs])
+- Fix Vicare unique_ids ([@oischinger] - [#58531]) ([vicare docs])
+- Increase setMode flexibility ([@oischinger] - [#58491]) ([vicare docs])
+- Use DeviceInfo in smappee ([@epenet] - [#58522]) ([smappee docs])
+- Add new orange pi boards to orangepi integration ([@drizzle1] - [#58392]) ([orangepi_gpio docs])
+- Simplify recorder PgSQL version checks ([@emontnemery] - [#58533]) ([recorder docs])
+- Allow specifying a super template for async_track_template_result ([@emontnemery] - [#58477]) ([websocket_api docs]) ([template docs]) ([universal docs]) ([bayesian docs])
+- Correct changes in Allow extra keys in MQTT discovery messages ([@emontnemery] - [#58534]) ([mqtt docs])
+- Add Solar Edge entity device and state class ([@terminet85] - [#55902]) (breaking-change)
+- Add kWh as cost option for gas ([@ColinRobbins] - [#58426]) ([energy docs])
+- When tradfri device goes offline set attr_available false ([@janiversen] - [#58487]) ([tradfri docs])
+- Fix energy cost sensor for MWh + improve tests ([@emontnemery] - [#58540]) ([energy docs])
+- Allow storing picture in area registry ([@balloob] - [#58539]) ([config docs])
+- Add multi-partition support for TotalConnect ([@austinmroczek] - [#55429]) ([totalconnect docs])
+- Adjust onewire device model ([@epenet] - [#58516]) ([onewire docs])
+- Enable strict typing - bmw_connected_drive ([@cdce8p] - [#58506]) ([bmw_connected_drive docs])
+- Serialize dates and times to isoformat ([@emontnemery] - [#58157])
+- Add Number platform to Wallbox ([@hesselonline] - [#52786]) ([wallbox docs])
+- Blink arm camera ([@yeahme49] - [#56474]) ([blink docs])
+- Support ViCare energy units ([@oischinger] - [#58433]) ([vicare docs])
+- Update frontend to 20211027.0 ([@bramkragten] - [#58545]) ([frontend docs])
+- Fix ZeroDivisionError on freebox/sensor ([@davelowper] - [#57077]) ([freebox docs]) (beta fix)
+- Allow initialized callback to have arguments ([@inytar] - [#58129]) ([hdmi_cec docs]) (beta fix)
+- Add an image placeholder for Nest WebRTC cameras ([@allenporter] - [#58250]) ([nest docs]) (beta fix)
+- Reduce rainmachine intervals to avoid device overload ([@bdraco] - [#58319]) ([rainmachine docs]) (beta fix)
+- Return the real MAC address for LIFX bulbs with newer firmware ([@Djelibeybi] - [#58511]) ([lifx docs]) (beta fix)
+- Add tplink KP303 to discovery ([@bdraco] - [#58548]) ([tplink docs]) (beta fix)
+- Add service configuration URL to Doorbird ([@Tommatheussen] - [#58549]) ([doorbird docs]) (beta fix)
+- Add entity category to ZHA battery ([@balloob] - [#58553]) ([zha docs]) (beta fix)
+- Add `configuration_url` to Freebox integration ([@Quentame] - [#58555]) ([freebox docs]) (beta fix)
+- Add `configuration_url` to iCloud integration ([@Quentame] - [#58557]) ([icloud docs]) (beta fix)
+- Allow configuration_url to be removed/nullified from device registry ([@jesserockz] - [#58564]) (beta fix)
+- Add configuration_url to ESPHome ([@jesserockz] - [#58565]) ([esphome docs]) (beta fix)
+- Fix default value for host in octoprint config flow ([@balloob] - [#58568]) ([octoprint docs]) (beta fix)
+- Add `configuration_url` to Huawei LTE integration ([@chmielowiec] - [#58584]) ([huawei_lte docs]) (beta fix)
+- Add ROCKROBO_S5_MAX to xiaomi_miio vacuum models ([@OGKevin] - [#58591]) ([xiaomi_miio docs]) (beta fix)
+- Add configuration_url to devolo Home Control ([@Shutgun] - [#58594]) ([devolo_home_control docs]) (beta fix)
+- Fix missing config string in sense ([@tkdrob] - [#58597]) ([sense docs]) (beta fix)
+- Fix uncaught exception in sense and retry later ([@bdraco] - [#58623]) ([sense docs]) (beta fix)
+- Add entity category for load sensors to AsusWRT ([@Chen-IL] - [#58625]) ([asuswrt docs]) (beta fix)
+- Add package constraint to websockets ([@bdraco] - [#58626]) (beta fix)
+- Fix missing triggered state in SimpliSafe alarm control panel ([@bachya] - [#58628]) ([simplisafe docs]) (beta fix)
+- Update frontend to 20211028.0 ([@bramkragten] - [#58629]) ([frontend docs]) (beta fix)
+- Improve ViCare energy units ([@oischinger] - [#58630]) ([vicare docs]) (beta fix)
+- Migrate Tuya unique IDs for switches & lights ([@frenck] - [#58631]) ([tuya docs]) (beta fix)
+- Fix incorrect RainMachine service helper ([@bachya] - [#58633]) ([rainmachine docs]) (beta fix)
+- Bump greeclimate to 0.12.3 ([@cmroche] - [#58635]) ([gree docs]) (beta fix)
+- Fix missing temperature level on Tuya Heater (qn) devices ([@frenck] - [#58643]) ([tuya docs]) (beta fix)
+- Bump pyhik to 0.3.0 ([@mezz64] - [#58659]) ([hikvision docs]) (beta fix)
+- Update light turn_on schema to coerce colors to tuple before asserting sequence type ([@emontnemery] - [#58670]) ([group docs]) (beta fix)
+- Convert RGBW and RGBWW colors in light turn_on calls ([@emontnemery] - [#58680]) ([light docs]) (beta fix)
+- Fix regression in MQTT discovery ([@emontnemery] - [#58684]) ([mqtt docs]) (beta fix)
+- Fix spelling of OctoPrint ([@frenck] - [#58686]) ([octoprint docs]) (beta fix)
+- Fix OctoPrint config flow schema ([@frenck] - [#58688]) ([octoprint docs]) (beta fix)
+- Fix round - wallbox ([@cdce8p] - [#58689]) ([wallbox docs]) (beta fix)
+- Fix OctoPrint SSDP URL parsing and discovered values ([@frenck] - [#58698]) ([octoprint docs]) (beta fix)
+- Avoid doorbird device probe during discovery for known devices ([@bdraco] - [#58701]) ([doorbird docs]) (beta fix)
+- Disable polling Sonos switches by default ([@jjlawren] - [#58705]) ([sonos docs]) (beta fix)
+- Bump aioambient to 2021.10.1 ([@bachya] - [#58708]) ([ambient_station docs]) (beta fix)
+- reload service: remove entities before disconnection ([@farmio] - [#58712]) ([knx docs]) (beta fix)
+- Fix bug with volumes in SimpliSafe set_system_properties service ([@bachya] - [#58721]) ([simplisafe docs]) (beta fix)
+- Improve handling of invalid serial numbers in HomeKit Controller ([@bdraco] - [#58723]) ([homekit_controller docs]) (beta fix)
+- Add configuration url to AVM Fritz!Smarthome ([@mib1185] - [#57711]) ([fritzbox docs]) (beta fix)
+- Mobile app to update entity registry on re-register sensors ([@balloob] - [#58378]) ([mobile_app docs]) (beta fix)
+- Coerce to tuple before asserting the sequence ([@emontnemery] - [#58672]) ([opencv docs]) ([lifx docs]) ([yeelight docs]) ([flux_led docs]) (beta fix)
+- Add ROCKROBO_S4 to xiaomi_miio vaccum models ([@OGKevin] - [#58682]) ([xiaomi_miio docs]) (beta fix)
+- Set Netatmo max default temperature ([@cgtobi] - [#58718]) ([netatmo docs]) (beta fix)
+- Fix bluesound player internally used id ([@thrawnarn] - [#58732]) ([bluesound docs]) (beta fix)
+- Add additional test coverage for RYSE smartbridges with HK ([@bdraco] - [#58746]) ([homekit_controller docs]) (beta fix)
+- Bump nad_receiver to version 0.3.0 ([@Kapernicus] - [#58751]) ([nad docs]) (beta fix)
+- Add configuration_url to OctoPrint ([@frenck] - [#58753]) ([octoprint docs]) (beta fix)
+- Bump zeroconf 0.36.11 ([@bdraco] - [#58755]) ([zeroconf docs]) (beta fix)
+- Fix channel.send in Discord ([@mib1185] - [#58756]) ([discord docs]) (beta fix)
+- Fix solaredge energy sensor names ([@purcell-lab] - [#58773]) ([solaredge docs]) (breaking-change) (beta fix)
+- Workaround brightness transition delay from off in older yeelight models ([@bdraco] - [#58774]) ([yeelight docs]) (beta fix)
+- dlna_dmr: less eager discovery ([@chishm] - [#58780]) ([dlna_dmr docs]) (beta fix)
+- Add ROCKROBO_E2 to supported vacuums for xiaomi_miio ([@OGKevin] - [#58817]) ([xiaomi_miio docs]) (beta fix)
+- Fix Plugwise not updating config entry with discovery information ([@frenck] - [#58819]) ([plugwise docs]) (beta fix)
+- Bump pyefergy to 0.1.3 ([@tkdrob] - [#58821]) ([efergy docs]) (beta fix)
+- Improve part metadata in stream ([@uvjustin] - [#58822]) ([stream docs]) (beta fix)
+- Add `configuration_url` to GIOS integration ([@bieniu] - [#58840]) ([gios docs]) (beta fix)
+- Fix OpenWeatherMap options not being initialized the first time ([@mback2k] - [#58736]) ([openweathermap docs]) (beta fix)
+- Add ROCKROBO_S4_MAX to supported xiaomi vacuums ([@OGKevin] - [#58826]) ([xiaomi_miio docs]) (beta fix)
+- Fix renamed solaredge sensor keys ([@purcell-lab] - [#58875]) ([solaredge docs]) (beta fix)
+- Handle `None` values in Xiaomi Miio integration ([@bieniu] - [#58880]) ([xiaomi_miio docs]) (beta fix)
+- Fix find_next_time_expression_time ([@OttoWinter] - [#58894]) (beta fix)
+- Fix color temp selection when brightness changed in Tuya light ([@pabigot] - [#58341]) ([tuya docs]) (beta fix)
+- Fix incorrect entity category in Advantage Air ([@frenck] - [#58754]) ([advantage_air docs]) (beta fix)
+- Add ROCKROBO_S6_PURE to supported vacuums for xiaomi_miio ([@OGKevin] - [#58901]) ([xiaomi_miio docs]) (beta fix)
+- Bump pyinsteon to 1.0.13 ([@teharris1] - [#58908]) ([insteon docs]) (beta fix)
+- Add `configuration_url` to Airly integration ([@bieniu] - [#58911]) ([airly docs]) (beta fix)
+- Fix recursive limit in find_next_time_expression_time ([@bdraco] - [#58914]) (beta fix)
+- Add libav.mpegts to logging filter ([@uvjustin] - [#58937]) ([stream docs]) (beta fix)
+- Revert "Add offset support to time trigger" ([@emontnemery] - [#58947]) ([homeassistant docs]) (beta fix)
+- Extend Tuya Dimmer (tgq) support ([@frenck] - [#58951]) ([tuya docs]) (beta fix)
+- Add support for IoT Switches (tdq) in Tuya ([@frenck] - [#58952]) ([tuya docs]) (beta fix)
+- Add device configuration URL to Solar-Log ([@Ernst79] - [#58954]) ([solarlog docs]) (beta fix)
+- Fix unique_id of derived sent-sensors ([@kodsnutten] - [#58298]) ([upnp docs]) (breaking-change) (beta fix)
+- Aurora abb energy metering ([@davet2001] - [#58454]) ([aurora_abb_powerone docs]) (beta fix)
+- Aurora abb defer unique_id assignment during yaml import ([@davet2001] - [#58887]) ([aurora_abb_powerone docs]) (beta fix)
+- Add missing ZMW currency ([@tkdrob] - [#58959]) (beta fix)
+- Fix broken ViCare burner & compressor sensors ([@oischinger] - [#58962]) ([vicare docs]) (beta fix)
+- Bump pyMill to 0.7.4 ([@Danielhiversen] - [#58977]) ([mill docs]) (beta fix)
+- Fix battery_is_charging sensor on system bridge ([@arksega] - [#58980]) ([system_bridge docs]) (beta fix)
+- Update frontend to 20211103.0 ([@bramkragten] - [#58988]) ([frontend docs]) (beta fix)
+
+{% enddetails %}
+
+[#36300]: https://github.com/home-assistant/core/pull/36300
+[#50067]: https://github.com/home-assistant/core/pull/50067
+[#50953]: https://github.com/home-assistant/core/pull/50953
+[#51520]: https://github.com/home-assistant/core/pull/51520
+[#52523]: https://github.com/home-assistant/core/pull/52523
+[#52614]: https://github.com/home-assistant/core/pull/52614
+[#52786]: https://github.com/home-assistant/core/pull/52786
+[#52830]: https://github.com/home-assistant/core/pull/52830
+[#53334]: https://github.com/home-assistant/core/pull/53334
+[#53628]: https://github.com/home-assistant/core/pull/53628
+[#53843]: https://github.com/home-assistant/core/pull/53843
+[#54502]: https://github.com/home-assistant/core/pull/54502
+[#54651]: https://github.com/home-assistant/core/pull/54651
+[#54696]: https://github.com/home-assistant/core/pull/54696
+[#54747]: https://github.com/home-assistant/core/pull/54747
+[#54990]: https://github.com/home-assistant/core/pull/54990
+[#55135]: https://github.com/home-assistant/core/pull/55135
+[#55228]: https://github.com/home-assistant/core/pull/55228
+[#55429]: https://github.com/home-assistant/core/pull/55429
+[#55467]: https://github.com/home-assistant/core/pull/55467
+[#55516]: https://github.com/home-assistant/core/pull/55516
+[#55625]: https://github.com/home-assistant/core/pull/55625
+[#55801]: https://github.com/home-assistant/core/pull/55801
+[#55902]: https://github.com/home-assistant/core/pull/55902
+[#55921]: https://github.com/home-assistant/core/pull/55921
+[#55989]: https://github.com/home-assistant/core/pull/55989
+[#56132]: https://github.com/home-assistant/core/pull/56132
+[#56154]: https://github.com/home-assistant/core/pull/56154
+[#56226]: https://github.com/home-assistant/core/pull/56226
+[#56232]: https://github.com/home-assistant/core/pull/56232
+[#56317]: https://github.com/home-assistant/core/pull/56317
+[#56319]: https://github.com/home-assistant/core/pull/56319
+[#56354]: https://github.com/home-assistant/core/pull/56354
+[#56385]: https://github.com/home-assistant/core/pull/56385
+[#56418]: https://github.com/home-assistant/core/pull/56418
+[#56474]: https://github.com/home-assistant/core/pull/56474
+[#56535]: https://github.com/home-assistant/core/pull/56535
+[#56541]: https://github.com/home-assistant/core/pull/56541
+[#56543]: https://github.com/home-assistant/core/pull/56543
+[#56544]: https://github.com/home-assistant/core/pull/56544
+[#56582]: https://github.com/home-assistant/core/pull/56582
+[#56607]: https://github.com/home-assistant/core/pull/56607
+[#56634]: https://github.com/home-assistant/core/pull/56634
+[#56800]: https://github.com/home-assistant/core/pull/56800
+[#56811]: https://github.com/home-assistant/core/pull/56811
+[#56823]: https://github.com/home-assistant/core/pull/56823
+[#56834]: https://github.com/home-assistant/core/pull/56834
+[#56835]: https://github.com/home-assistant/core/pull/56835
+[#56838]: https://github.com/home-assistant/core/pull/56838
+[#56847]: https://github.com/home-assistant/core/pull/56847
+[#56849]: https://github.com/home-assistant/core/pull/56849
+[#56852]: https://github.com/home-assistant/core/pull/56852
+[#56854]: https://github.com/home-assistant/core/pull/56854
+[#56856]: https://github.com/home-assistant/core/pull/56856
+[#56861]: https://github.com/home-assistant/core/pull/56861
+[#56862]: https://github.com/home-assistant/core/pull/56862
+[#56863]: https://github.com/home-assistant/core/pull/56863
+[#56871]: https://github.com/home-assistant/core/pull/56871
+[#56883]: https://github.com/home-assistant/core/pull/56883
+[#56885]: https://github.com/home-assistant/core/pull/56885
+[#56886]: https://github.com/home-assistant/core/pull/56886
+[#56887]: https://github.com/home-assistant/core/pull/56887
+[#56888]: https://github.com/home-assistant/core/pull/56888
+[#56889]: https://github.com/home-assistant/core/pull/56889
+[#56890]: https://github.com/home-assistant/core/pull/56890
+[#56894]: https://github.com/home-assistant/core/pull/56894
+[#56896]: https://github.com/home-assistant/core/pull/56896
+[#56904]: https://github.com/home-assistant/core/pull/56904
+[#56907]: https://github.com/home-assistant/core/pull/56907
+[#56909]: https://github.com/home-assistant/core/pull/56909
+[#56910]: https://github.com/home-assistant/core/pull/56910
+[#56920]: https://github.com/home-assistant/core/pull/56920
+[#56921]: https://github.com/home-assistant/core/pull/56921
+[#56924]: https://github.com/home-assistant/core/pull/56924
+[#56927]: https://github.com/home-assistant/core/pull/56927
+[#56931]: https://github.com/home-assistant/core/pull/56931
+[#56933]: https://github.com/home-assistant/core/pull/56933
+[#56940]: https://github.com/home-assistant/core/pull/56940
+[#56941]: https://github.com/home-assistant/core/pull/56941
+[#56942]: https://github.com/home-assistant/core/pull/56942
+[#56943]: https://github.com/home-assistant/core/pull/56943
+[#56944]: https://github.com/home-assistant/core/pull/56944
+[#56945]: https://github.com/home-assistant/core/pull/56945
+[#56946]: https://github.com/home-assistant/core/pull/56946
+[#56948]: https://github.com/home-assistant/core/pull/56948
+[#56952]: https://github.com/home-assistant/core/pull/56952
+[#56953]: https://github.com/home-assistant/core/pull/56953
+[#56958]: https://github.com/home-assistant/core/pull/56958
+[#56966]: https://github.com/home-assistant/core/pull/56966
+[#56967]: https://github.com/home-assistant/core/pull/56967
+[#56982]: https://github.com/home-assistant/core/pull/56982
+[#56984]: https://github.com/home-assistant/core/pull/56984
+[#56991]: https://github.com/home-assistant/core/pull/56991
+[#56993]: https://github.com/home-assistant/core/pull/56993
+[#56995]: https://github.com/home-assistant/core/pull/56995
+[#56997]: https://github.com/home-assistant/core/pull/56997
+[#57000]: https://github.com/home-assistant/core/pull/57000
+[#57019]: https://github.com/home-assistant/core/pull/57019
+[#57021]: https://github.com/home-assistant/core/pull/57021
+[#57022]: https://github.com/home-assistant/core/pull/57022
+[#57026]: https://github.com/home-assistant/core/pull/57026
+[#57034]: https://github.com/home-assistant/core/pull/57034
+[#57037]: https://github.com/home-assistant/core/pull/57037
+[#57038]: https://github.com/home-assistant/core/pull/57038
+[#57039]: https://github.com/home-assistant/core/pull/57039
+[#57041]: https://github.com/home-assistant/core/pull/57041
+[#57046]: https://github.com/home-assistant/core/pull/57046
+[#57047]: https://github.com/home-assistant/core/pull/57047
+[#57058]: https://github.com/home-assistant/core/pull/57058
+[#57059]: https://github.com/home-assistant/core/pull/57059
+[#57068]: https://github.com/home-assistant/core/pull/57068
+[#57077]: https://github.com/home-assistant/core/pull/57077
+[#57079]: https://github.com/home-assistant/core/pull/57079
+[#57080]: https://github.com/home-assistant/core/pull/57080
+[#57083]: https://github.com/home-assistant/core/pull/57083
+[#57086]: https://github.com/home-assistant/core/pull/57086
+[#57089]: https://github.com/home-assistant/core/pull/57089
+[#57091]: https://github.com/home-assistant/core/pull/57091
+[#57092]: https://github.com/home-assistant/core/pull/57092
+[#57094]: https://github.com/home-assistant/core/pull/57094
+[#57095]: https://github.com/home-assistant/core/pull/57095
+[#57096]: https://github.com/home-assistant/core/pull/57096
+[#57098]: https://github.com/home-assistant/core/pull/57098
+[#57099]: https://github.com/home-assistant/core/pull/57099
+[#57101]: https://github.com/home-assistant/core/pull/57101
+[#57105]: https://github.com/home-assistant/core/pull/57105
+[#57115]: https://github.com/home-assistant/core/pull/57115
+[#57116]: https://github.com/home-assistant/core/pull/57116
+[#57119]: https://github.com/home-assistant/core/pull/57119
+[#57127]: https://github.com/home-assistant/core/pull/57127
+[#57129]: https://github.com/home-assistant/core/pull/57129
+[#57130]: https://github.com/home-assistant/core/pull/57130
+[#57131]: https://github.com/home-assistant/core/pull/57131
+[#57132]: https://github.com/home-assistant/core/pull/57132
+[#57133]: https://github.com/home-assistant/core/pull/57133
+[#57136]: https://github.com/home-assistant/core/pull/57136
+[#57137]: https://github.com/home-assistant/core/pull/57137
+[#57140]: https://github.com/home-assistant/core/pull/57140
+[#57141]: https://github.com/home-assistant/core/pull/57141
+[#57144]: https://github.com/home-assistant/core/pull/57144
+[#57145]: https://github.com/home-assistant/core/pull/57145
+[#57152]: https://github.com/home-assistant/core/pull/57152
+[#57153]: https://github.com/home-assistant/core/pull/57153
+[#57157]: https://github.com/home-assistant/core/pull/57157
+[#57161]: https://github.com/home-assistant/core/pull/57161
+[#57170]: https://github.com/home-assistant/core/pull/57170
+[#57182]: https://github.com/home-assistant/core/pull/57182
+[#57187]: https://github.com/home-assistant/core/pull/57187
+[#57212]: https://github.com/home-assistant/core/pull/57212
+[#57214]: https://github.com/home-assistant/core/pull/57214
+[#57224]: https://github.com/home-assistant/core/pull/57224
+[#57226]: https://github.com/home-assistant/core/pull/57226
+[#57233]: https://github.com/home-assistant/core/pull/57233
+[#57235]: https://github.com/home-assistant/core/pull/57235
+[#57264]: https://github.com/home-assistant/core/pull/57264
+[#57266]: https://github.com/home-assistant/core/pull/57266
+[#57278]: https://github.com/home-assistant/core/pull/57278
+[#57279]: https://github.com/home-assistant/core/pull/57279
+[#57292]: https://github.com/home-assistant/core/pull/57292
+[#57295]: https://github.com/home-assistant/core/pull/57295
+[#57299]: https://github.com/home-assistant/core/pull/57299
+[#57316]: https://github.com/home-assistant/core/pull/57316
+[#57317]: https://github.com/home-assistant/core/pull/57317
+[#57322]: https://github.com/home-assistant/core/pull/57322
+[#57324]: https://github.com/home-assistant/core/pull/57324
+[#57339]: https://github.com/home-assistant/core/pull/57339
+[#57353]: https://github.com/home-assistant/core/pull/57353
+[#57354]: https://github.com/home-assistant/core/pull/57354
+[#57356]: https://github.com/home-assistant/core/pull/57356
+[#57357]: https://github.com/home-assistant/core/pull/57357
+[#57358]: https://github.com/home-assistant/core/pull/57358
+[#57363]: https://github.com/home-assistant/core/pull/57363
+[#57393]: https://github.com/home-assistant/core/pull/57393
+[#57399]: https://github.com/home-assistant/core/pull/57399
+[#57408]: https://github.com/home-assistant/core/pull/57408
+[#57430]: https://github.com/home-assistant/core/pull/57430
+[#57435]: https://github.com/home-assistant/core/pull/57435
+[#57439]: https://github.com/home-assistant/core/pull/57439
+[#57440]: https://github.com/home-assistant/core/pull/57440
+[#57444]: https://github.com/home-assistant/core/pull/57444
+[#57449]: https://github.com/home-assistant/core/pull/57449
+[#57456]: https://github.com/home-assistant/core/pull/57456
+[#57458]: https://github.com/home-assistant/core/pull/57458
+[#57463]: https://github.com/home-assistant/core/pull/57463
+[#57468]: https://github.com/home-assistant/core/pull/57468
+[#57470]: https://github.com/home-assistant/core/pull/57470
+[#57472]: https://github.com/home-assistant/core/pull/57472
+[#57473]: https://github.com/home-assistant/core/pull/57473
+[#57477]: https://github.com/home-assistant/core/pull/57477
+[#57478]: https://github.com/home-assistant/core/pull/57478
+[#57479]: https://github.com/home-assistant/core/pull/57479
+[#57483]: https://github.com/home-assistant/core/pull/57483
+[#57487]: https://github.com/home-assistant/core/pull/57487
+[#57492]: https://github.com/home-assistant/core/pull/57492
+[#57495]: https://github.com/home-assistant/core/pull/57495
+[#57497]: https://github.com/home-assistant/core/pull/57497
+[#57498]: https://github.com/home-assistant/core/pull/57498
+[#57503]: https://github.com/home-assistant/core/pull/57503
+[#57504]: https://github.com/home-assistant/core/pull/57504
+[#57505]: https://github.com/home-assistant/core/pull/57505
+[#57507]: https://github.com/home-assistant/core/pull/57507
+[#57508]: https://github.com/home-assistant/core/pull/57508
+[#57510]: https://github.com/home-assistant/core/pull/57510
+[#57511]: https://github.com/home-assistant/core/pull/57511
+[#57512]: https://github.com/home-assistant/core/pull/57512
+[#57513]: https://github.com/home-assistant/core/pull/57513
+[#57518]: https://github.com/home-assistant/core/pull/57518
+[#57519]: https://github.com/home-assistant/core/pull/57519
+[#57520]: https://github.com/home-assistant/core/pull/57520
+[#57523]: https://github.com/home-assistant/core/pull/57523
+[#57526]: https://github.com/home-assistant/core/pull/57526
+[#57527]: https://github.com/home-assistant/core/pull/57527
+[#57528]: https://github.com/home-assistant/core/pull/57528
+[#57529]: https://github.com/home-assistant/core/pull/57529
+[#57530]: https://github.com/home-assistant/core/pull/57530
+[#57532]: https://github.com/home-assistant/core/pull/57532
+[#57537]: https://github.com/home-assistant/core/pull/57537
+[#57538]: https://github.com/home-assistant/core/pull/57538
+[#57539]: https://github.com/home-assistant/core/pull/57539
+[#57540]: https://github.com/home-assistant/core/pull/57540
+[#57543]: https://github.com/home-assistant/core/pull/57543
+[#57545]: https://github.com/home-assistant/core/pull/57545
+[#57546]: https://github.com/home-assistant/core/pull/57546
+[#57554]: https://github.com/home-assistant/core/pull/57554
+[#57558]: https://github.com/home-assistant/core/pull/57558
+[#57559]: https://github.com/home-assistant/core/pull/57559
+[#57560]: https://github.com/home-assistant/core/pull/57560
+[#57564]: https://github.com/home-assistant/core/pull/57564
+[#57568]: https://github.com/home-assistant/core/pull/57568
+[#57570]: https://github.com/home-assistant/core/pull/57570
+[#57576]: https://github.com/home-assistant/core/pull/57576
+[#57579]: https://github.com/home-assistant/core/pull/57579
+[#57581]: https://github.com/home-assistant/core/pull/57581
+[#57583]: https://github.com/home-assistant/core/pull/57583
+[#57588]: https://github.com/home-assistant/core/pull/57588
+[#57595]: https://github.com/home-assistant/core/pull/57595
+[#57596]: https://github.com/home-assistant/core/pull/57596
+[#57601]: https://github.com/home-assistant/core/pull/57601
+[#57602]: https://github.com/home-assistant/core/pull/57602
+[#57603]: https://github.com/home-assistant/core/pull/57603
+[#57605]: https://github.com/home-assistant/core/pull/57605
+[#57607]: https://github.com/home-assistant/core/pull/57607
+[#57609]: https://github.com/home-assistant/core/pull/57609
+[#57615]: https://github.com/home-assistant/core/pull/57615
+[#57616]: https://github.com/home-assistant/core/pull/57616
+[#57619]: https://github.com/home-assistant/core/pull/57619
+[#57623]: https://github.com/home-assistant/core/pull/57623
+[#57624]: https://github.com/home-assistant/core/pull/57624
+[#57625]: https://github.com/home-assistant/core/pull/57625
+[#57627]: https://github.com/home-assistant/core/pull/57627
+[#57629]: https://github.com/home-assistant/core/pull/57629
+[#57632]: https://github.com/home-assistant/core/pull/57632
+[#57634]: https://github.com/home-assistant/core/pull/57634
+[#57635]: https://github.com/home-assistant/core/pull/57635
+[#57636]: https://github.com/home-assistant/core/pull/57636
+[#57638]: https://github.com/home-assistant/core/pull/57638
+[#57643]: https://github.com/home-assistant/core/pull/57643
+[#57648]: https://github.com/home-assistant/core/pull/57648
+[#57649]: https://github.com/home-assistant/core/pull/57649
+[#57650]: https://github.com/home-assistant/core/pull/57650
+[#57651]: https://github.com/home-assistant/core/pull/57651
+[#57652]: https://github.com/home-assistant/core/pull/57652
+[#57653]: https://github.com/home-assistant/core/pull/57653
+[#57654]: https://github.com/home-assistant/core/pull/57654
+[#57656]: https://github.com/home-assistant/core/pull/57656
+[#57662]: https://github.com/home-assistant/core/pull/57662
+[#57666]: https://github.com/home-assistant/core/pull/57666
+[#57668]: https://github.com/home-assistant/core/pull/57668
+[#57669]: https://github.com/home-assistant/core/pull/57669
+[#57671]: https://github.com/home-assistant/core/pull/57671
+[#57672]: https://github.com/home-assistant/core/pull/57672
+[#57674]: https://github.com/home-assistant/core/pull/57674
+[#57680]: https://github.com/home-assistant/core/pull/57680
+[#57682]: https://github.com/home-assistant/core/pull/57682
+[#57683]: https://github.com/home-assistant/core/pull/57683
+[#57687]: https://github.com/home-assistant/core/pull/57687
+[#57689]: https://github.com/home-assistant/core/pull/57689
+[#57690]: https://github.com/home-assistant/core/pull/57690
+[#57692]: https://github.com/home-assistant/core/pull/57692
+[#57693]: https://github.com/home-assistant/core/pull/57693
+[#57694]: https://github.com/home-assistant/core/pull/57694
+[#57695]: https://github.com/home-assistant/core/pull/57695
+[#57696]: https://github.com/home-assistant/core/pull/57696
+[#57697]: https://github.com/home-assistant/core/pull/57697
+[#57698]: https://github.com/home-assistant/core/pull/57698
+[#57699]: https://github.com/home-assistant/core/pull/57699
+[#57700]: https://github.com/home-assistant/core/pull/57700
+[#57701]: https://github.com/home-assistant/core/pull/57701
+[#57703]: https://github.com/home-assistant/core/pull/57703
+[#57704]: https://github.com/home-assistant/core/pull/57704
+[#57705]: https://github.com/home-assistant/core/pull/57705
+[#57706]: https://github.com/home-assistant/core/pull/57706
+[#57707]: https://github.com/home-assistant/core/pull/57707
+[#57709]: https://github.com/home-assistant/core/pull/57709
+[#57710]: https://github.com/home-assistant/core/pull/57710
+[#57711]: https://github.com/home-assistant/core/pull/57711
+[#57713]: https://github.com/home-assistant/core/pull/57713
+[#57714]: https://github.com/home-assistant/core/pull/57714
+[#57715]: https://github.com/home-assistant/core/pull/57715
+[#57716]: https://github.com/home-assistant/core/pull/57716
+[#57718]: https://github.com/home-assistant/core/pull/57718
+[#57719]: https://github.com/home-assistant/core/pull/57719
+[#57720]: https://github.com/home-assistant/core/pull/57720
+[#57722]: https://github.com/home-assistant/core/pull/57722
+[#57725]: https://github.com/home-assistant/core/pull/57725
+[#57726]: https://github.com/home-assistant/core/pull/57726
+[#57727]: https://github.com/home-assistant/core/pull/57727
+[#57728]: https://github.com/home-assistant/core/pull/57728
+[#57729]: https://github.com/home-assistant/core/pull/57729
+[#57731]: https://github.com/home-assistant/core/pull/57731
+[#57732]: https://github.com/home-assistant/core/pull/57732
+[#57733]: https://github.com/home-assistant/core/pull/57733
+[#57734]: https://github.com/home-assistant/core/pull/57734
+[#57735]: https://github.com/home-assistant/core/pull/57735
+[#57736]: https://github.com/home-assistant/core/pull/57736
+[#57737]: https://github.com/home-assistant/core/pull/57737
+[#57738]: https://github.com/home-assistant/core/pull/57738
+[#57739]: https://github.com/home-assistant/core/pull/57739
+[#57740]: https://github.com/home-assistant/core/pull/57740
+[#57742]: https://github.com/home-assistant/core/pull/57742
+[#57743]: https://github.com/home-assistant/core/pull/57743
+[#57744]: https://github.com/home-assistant/core/pull/57744
+[#57746]: https://github.com/home-assistant/core/pull/57746
+[#57747]: https://github.com/home-assistant/core/pull/57747
+[#57750]: https://github.com/home-assistant/core/pull/57750
+[#57751]: https://github.com/home-assistant/core/pull/57751
+[#57752]: https://github.com/home-assistant/core/pull/57752
+[#57755]: https://github.com/home-assistant/core/pull/57755
+[#57756]: https://github.com/home-assistant/core/pull/57756
+[#57757]: https://github.com/home-assistant/core/pull/57757
+[#57759]: https://github.com/home-assistant/core/pull/57759
+[#57760]: https://github.com/home-assistant/core/pull/57760
+[#57761]: https://github.com/home-assistant/core/pull/57761
+[#57762]: https://github.com/home-assistant/core/pull/57762
+[#57763]: https://github.com/home-assistant/core/pull/57763
+[#57764]: https://github.com/home-assistant/core/pull/57764
+[#57770]: https://github.com/home-assistant/core/pull/57770
+[#57771]: https://github.com/home-assistant/core/pull/57771
+[#57772]: https://github.com/home-assistant/core/pull/57772
+[#57774]: https://github.com/home-assistant/core/pull/57774
+[#57775]: https://github.com/home-assistant/core/pull/57775
+[#57776]: https://github.com/home-assistant/core/pull/57776
+[#57780]: https://github.com/home-assistant/core/pull/57780
+[#57781]: https://github.com/home-assistant/core/pull/57781
+[#57784]: https://github.com/home-assistant/core/pull/57784
+[#57785]: https://github.com/home-assistant/core/pull/57785
+[#57786]: https://github.com/home-assistant/core/pull/57786
+[#57787]: https://github.com/home-assistant/core/pull/57787
+[#57788]: https://github.com/home-assistant/core/pull/57788
+[#57790]: https://github.com/home-assistant/core/pull/57790
+[#57791]: https://github.com/home-assistant/core/pull/57791
+[#57792]: https://github.com/home-assistant/core/pull/57792
+[#57794]: https://github.com/home-assistant/core/pull/57794
+[#57795]: https://github.com/home-assistant/core/pull/57795
+[#57796]: https://github.com/home-assistant/core/pull/57796
+[#57797]: https://github.com/home-assistant/core/pull/57797
+[#57799]: https://github.com/home-assistant/core/pull/57799
+[#57805]: https://github.com/home-assistant/core/pull/57805
+[#57806]: https://github.com/home-assistant/core/pull/57806
+[#57807]: https://github.com/home-assistant/core/pull/57807
+[#57808]: https://github.com/home-assistant/core/pull/57808
+[#57809]: https://github.com/home-assistant/core/pull/57809
+[#57810]: https://github.com/home-assistant/core/pull/57810
+[#57811]: https://github.com/home-assistant/core/pull/57811
+[#57812]: https://github.com/home-assistant/core/pull/57812
+[#57813]: https://github.com/home-assistant/core/pull/57813
+[#57814]: https://github.com/home-assistant/core/pull/57814
+[#57815]: https://github.com/home-assistant/core/pull/57815
+[#57816]: https://github.com/home-assistant/core/pull/57816
+[#57817]: https://github.com/home-assistant/core/pull/57817
+[#57818]: https://github.com/home-assistant/core/pull/57818
+[#57825]: https://github.com/home-assistant/core/pull/57825
+[#57826]: https://github.com/home-assistant/core/pull/57826
+[#57829]: https://github.com/home-assistant/core/pull/57829
+[#57832]: https://github.com/home-assistant/core/pull/57832
+[#57834]: https://github.com/home-assistant/core/pull/57834
+[#57836]: https://github.com/home-assistant/core/pull/57836
+[#57837]: https://github.com/home-assistant/core/pull/57837
+[#57838]: https://github.com/home-assistant/core/pull/57838
+[#57839]: https://github.com/home-assistant/core/pull/57839
+[#57840]: https://github.com/home-assistant/core/pull/57840
+[#57843]: https://github.com/home-assistant/core/pull/57843
+[#57844]: https://github.com/home-assistant/core/pull/57844
+[#57846]: https://github.com/home-assistant/core/pull/57846
+[#57848]: https://github.com/home-assistant/core/pull/57848
+[#57850]: https://github.com/home-assistant/core/pull/57850
+[#57851]: https://github.com/home-assistant/core/pull/57851
+[#57852]: https://github.com/home-assistant/core/pull/57852
+[#57854]: https://github.com/home-assistant/core/pull/57854
+[#57858]: https://github.com/home-assistant/core/pull/57858
+[#57859]: https://github.com/home-assistant/core/pull/57859
+[#57861]: https://github.com/home-assistant/core/pull/57861
+[#57865]: https://github.com/home-assistant/core/pull/57865
+[#57867]: https://github.com/home-assistant/core/pull/57867
+[#57868]: https://github.com/home-assistant/core/pull/57868
+[#57870]: https://github.com/home-assistant/core/pull/57870
+[#57873]: https://github.com/home-assistant/core/pull/57873
+[#57877]: https://github.com/home-assistant/core/pull/57877
+[#57881]: https://github.com/home-assistant/core/pull/57881
+[#57882]: https://github.com/home-assistant/core/pull/57882
+[#57885]: https://github.com/home-assistant/core/pull/57885
+[#57887]: https://github.com/home-assistant/core/pull/57887
+[#57888]: https://github.com/home-assistant/core/pull/57888
+[#57890]: https://github.com/home-assistant/core/pull/57890
+[#57891]: https://github.com/home-assistant/core/pull/57891
+[#57892]: https://github.com/home-assistant/core/pull/57892
+[#57894]: https://github.com/home-assistant/core/pull/57894
+[#57895]: https://github.com/home-assistant/core/pull/57895
+[#57902]: https://github.com/home-assistant/core/pull/57902
+[#57906]: https://github.com/home-assistant/core/pull/57906
+[#57907]: https://github.com/home-assistant/core/pull/57907
+[#57908]: https://github.com/home-assistant/core/pull/57908
+[#57913]: https://github.com/home-assistant/core/pull/57913
+[#57919]: https://github.com/home-assistant/core/pull/57919
+[#57920]: https://github.com/home-assistant/core/pull/57920
+[#57922]: https://github.com/home-assistant/core/pull/57922
+[#57923]: https://github.com/home-assistant/core/pull/57923
+[#57924]: https://github.com/home-assistant/core/pull/57924
+[#57926]: https://github.com/home-assistant/core/pull/57926
+[#57929]: https://github.com/home-assistant/core/pull/57929
+[#57934]: https://github.com/home-assistant/core/pull/57934
+[#57937]: https://github.com/home-assistant/core/pull/57937
+[#57938]: https://github.com/home-assistant/core/pull/57938
+[#57939]: https://github.com/home-assistant/core/pull/57939
+[#57940]: https://github.com/home-assistant/core/pull/57940
+[#57941]: https://github.com/home-assistant/core/pull/57941
+[#57947]: https://github.com/home-assistant/core/pull/57947
+[#57949]: https://github.com/home-assistant/core/pull/57949
+[#57953]: https://github.com/home-assistant/core/pull/57953
+[#57955]: https://github.com/home-assistant/core/pull/57955
+[#57957]: https://github.com/home-assistant/core/pull/57957
+[#57958]: https://github.com/home-assistant/core/pull/57958
+[#57961]: https://github.com/home-assistant/core/pull/57961
+[#57962]: https://github.com/home-assistant/core/pull/57962
+[#57963]: https://github.com/home-assistant/core/pull/57963
+[#57964]: https://github.com/home-assistant/core/pull/57964
+[#57966]: https://github.com/home-assistant/core/pull/57966
+[#57967]: https://github.com/home-assistant/core/pull/57967
+[#57968]: https://github.com/home-assistant/core/pull/57968
+[#57969]: https://github.com/home-assistant/core/pull/57969
+[#57970]: https://github.com/home-assistant/core/pull/57970
+[#57971]: https://github.com/home-assistant/core/pull/57971
+[#57973]: https://github.com/home-assistant/core/pull/57973
+[#57974]: https://github.com/home-assistant/core/pull/57974
+[#57976]: https://github.com/home-assistant/core/pull/57976
+[#57978]: https://github.com/home-assistant/core/pull/57978
+[#57979]: https://github.com/home-assistant/core/pull/57979
+[#57980]: https://github.com/home-assistant/core/pull/57980
+[#57983]: https://github.com/home-assistant/core/pull/57983
+[#57985]: https://github.com/home-assistant/core/pull/57985
+[#57987]: https://github.com/home-assistant/core/pull/57987
+[#57988]: https://github.com/home-assistant/core/pull/57988
+[#57989]: https://github.com/home-assistant/core/pull/57989
+[#57990]: https://github.com/home-assistant/core/pull/57990
+[#57991]: https://github.com/home-assistant/core/pull/57991
+[#57992]: https://github.com/home-assistant/core/pull/57992
+[#57994]: https://github.com/home-assistant/core/pull/57994
+[#57995]: https://github.com/home-assistant/core/pull/57995
+[#57996]: https://github.com/home-assistant/core/pull/57996
+[#57998]: https://github.com/home-assistant/core/pull/57998
+[#57999]: https://github.com/home-assistant/core/pull/57999
+[#58004]: https://github.com/home-assistant/core/pull/58004
+[#58005]: https://github.com/home-assistant/core/pull/58005
+[#58006]: https://github.com/home-assistant/core/pull/58006
+[#58007]: https://github.com/home-assistant/core/pull/58007
+[#58011]: https://github.com/home-assistant/core/pull/58011
+[#58012]: https://github.com/home-assistant/core/pull/58012
+[#58013]: https://github.com/home-assistant/core/pull/58013
+[#58014]: https://github.com/home-assistant/core/pull/58014
+[#58015]: https://github.com/home-assistant/core/pull/58015
+[#58017]: https://github.com/home-assistant/core/pull/58017
+[#58018]: https://github.com/home-assistant/core/pull/58018
+[#58019]: https://github.com/home-assistant/core/pull/58019
+[#58020]: https://github.com/home-assistant/core/pull/58020
+[#58021]: https://github.com/home-assistant/core/pull/58021
+[#58023]: https://github.com/home-assistant/core/pull/58023
+[#58025]: https://github.com/home-assistant/core/pull/58025
+[#58026]: https://github.com/home-assistant/core/pull/58026
+[#58027]: https://github.com/home-assistant/core/pull/58027
+[#58028]: https://github.com/home-assistant/core/pull/58028
+[#58030]: https://github.com/home-assistant/core/pull/58030
+[#58032]: https://github.com/home-assistant/core/pull/58032
+[#58033]: https://github.com/home-assistant/core/pull/58033
+[#58034]: https://github.com/home-assistant/core/pull/58034
+[#58035]: https://github.com/home-assistant/core/pull/58035
+[#58036]: https://github.com/home-assistant/core/pull/58036
+[#58037]: https://github.com/home-assistant/core/pull/58037
+[#58038]: https://github.com/home-assistant/core/pull/58038
+[#58039]: https://github.com/home-assistant/core/pull/58039
+[#58040]: https://github.com/home-assistant/core/pull/58040
+[#58041]: https://github.com/home-assistant/core/pull/58041
+[#58042]: https://github.com/home-assistant/core/pull/58042
+[#58045]: https://github.com/home-assistant/core/pull/58045
+[#58049]: https://github.com/home-assistant/core/pull/58049
+[#58051]: https://github.com/home-assistant/core/pull/58051
+[#58054]: https://github.com/home-assistant/core/pull/58054
+[#58055]: https://github.com/home-assistant/core/pull/58055
+[#58058]: https://github.com/home-assistant/core/pull/58058
+[#58061]: https://github.com/home-assistant/core/pull/58061
+[#58062]: https://github.com/home-assistant/core/pull/58062
+[#58063]: https://github.com/home-assistant/core/pull/58063
+[#58065]: https://github.com/home-assistant/core/pull/58065
+[#58070]: https://github.com/home-assistant/core/pull/58070
+[#58071]: https://github.com/home-assistant/core/pull/58071
+[#58073]: https://github.com/home-assistant/core/pull/58073
+[#58075]: https://github.com/home-assistant/core/pull/58075
+[#58076]: https://github.com/home-assistant/core/pull/58076
+[#58077]: https://github.com/home-assistant/core/pull/58077
+[#58078]: https://github.com/home-assistant/core/pull/58078
+[#58079]: https://github.com/home-assistant/core/pull/58079
+[#58080]: https://github.com/home-assistant/core/pull/58080
+[#58081]: https://github.com/home-assistant/core/pull/58081
+[#58082]: https://github.com/home-assistant/core/pull/58082
+[#58083]: https://github.com/home-assistant/core/pull/58083
+[#58085]: https://github.com/home-assistant/core/pull/58085
+[#58086]: https://github.com/home-assistant/core/pull/58086
+[#58089]: https://github.com/home-assistant/core/pull/58089
+[#58092]: https://github.com/home-assistant/core/pull/58092
+[#58093]: https://github.com/home-assistant/core/pull/58093
+[#58095]: https://github.com/home-assistant/core/pull/58095
+[#58097]: https://github.com/home-assistant/core/pull/58097
+[#58100]: https://github.com/home-assistant/core/pull/58100
+[#58101]: https://github.com/home-assistant/core/pull/58101
+[#58102]: https://github.com/home-assistant/core/pull/58102
+[#58104]: https://github.com/home-assistant/core/pull/58104
+[#58105]: https://github.com/home-assistant/core/pull/58105
+[#58106]: https://github.com/home-assistant/core/pull/58106
+[#58107]: https://github.com/home-assistant/core/pull/58107
+[#58108]: https://github.com/home-assistant/core/pull/58108
+[#58110]: https://github.com/home-assistant/core/pull/58110
+[#58111]: https://github.com/home-assistant/core/pull/58111
+[#58112]: https://github.com/home-assistant/core/pull/58112
+[#58116]: https://github.com/home-assistant/core/pull/58116
+[#58118]: https://github.com/home-assistant/core/pull/58118
+[#58120]: https://github.com/home-assistant/core/pull/58120
+[#58121]: https://github.com/home-assistant/core/pull/58121
+[#58125]: https://github.com/home-assistant/core/pull/58125
+[#58127]: https://github.com/home-assistant/core/pull/58127
+[#58129]: https://github.com/home-assistant/core/pull/58129
+[#58133]: https://github.com/home-assistant/core/pull/58133
+[#58134]: https://github.com/home-assistant/core/pull/58134
+[#58136]: https://github.com/home-assistant/core/pull/58136
+[#58138]: https://github.com/home-assistant/core/pull/58138
+[#58139]: https://github.com/home-assistant/core/pull/58139
+[#58141]: https://github.com/home-assistant/core/pull/58141
+[#58146]: https://github.com/home-assistant/core/pull/58146
+[#58147]: https://github.com/home-assistant/core/pull/58147
+[#58148]: https://github.com/home-assistant/core/pull/58148
+[#58149]: https://github.com/home-assistant/core/pull/58149
+[#58150]: https://github.com/home-assistant/core/pull/58150
+[#58151]: https://github.com/home-assistant/core/pull/58151
+[#58152]: https://github.com/home-assistant/core/pull/58152
+[#58154]: https://github.com/home-assistant/core/pull/58154
+[#58157]: https://github.com/home-assistant/core/pull/58157
+[#58160]: https://github.com/home-assistant/core/pull/58160
+[#58161]: https://github.com/home-assistant/core/pull/58161
+[#58164]: https://github.com/home-assistant/core/pull/58164
+[#58165]: https://github.com/home-assistant/core/pull/58165
+[#58168]: https://github.com/home-assistant/core/pull/58168
+[#58170]: https://github.com/home-assistant/core/pull/58170
+[#58172]: https://github.com/home-assistant/core/pull/58172
+[#58175]: https://github.com/home-assistant/core/pull/58175
+[#58176]: https://github.com/home-assistant/core/pull/58176
+[#58178]: https://github.com/home-assistant/core/pull/58178
+[#58179]: https://github.com/home-assistant/core/pull/58179
+[#58180]: https://github.com/home-assistant/core/pull/58180
+[#58181]: https://github.com/home-assistant/core/pull/58181
+[#58182]: https://github.com/home-assistant/core/pull/58182
+[#58183]: https://github.com/home-assistant/core/pull/58183
+[#58184]: https://github.com/home-assistant/core/pull/58184
+[#58185]: https://github.com/home-assistant/core/pull/58185
+[#58186]: https://github.com/home-assistant/core/pull/58186
+[#58187]: https://github.com/home-assistant/core/pull/58187
+[#58188]: https://github.com/home-assistant/core/pull/58188
+[#58189]: https://github.com/home-assistant/core/pull/58189
+[#58192]: https://github.com/home-assistant/core/pull/58192
+[#58193]: https://github.com/home-assistant/core/pull/58193
+[#58194]: https://github.com/home-assistant/core/pull/58194
+[#58196]: https://github.com/home-assistant/core/pull/58196
+[#58202]: https://github.com/home-assistant/core/pull/58202
+[#58207]: https://github.com/home-assistant/core/pull/58207
+[#58210]: https://github.com/home-assistant/core/pull/58210
+[#58211]: https://github.com/home-assistant/core/pull/58211
+[#58212]: https://github.com/home-assistant/core/pull/58212
+[#58213]: https://github.com/home-assistant/core/pull/58213
+[#58217]: https://github.com/home-assistant/core/pull/58217
+[#58218]: https://github.com/home-assistant/core/pull/58218
+[#58222]: https://github.com/home-assistant/core/pull/58222
+[#58223]: https://github.com/home-assistant/core/pull/58223
+[#58225]: https://github.com/home-assistant/core/pull/58225
+[#58227]: https://github.com/home-assistant/core/pull/58227
+[#58230]: https://github.com/home-assistant/core/pull/58230
+[#58233]: https://github.com/home-assistant/core/pull/58233
+[#58235]: https://github.com/home-assistant/core/pull/58235
+[#58237]: https://github.com/home-assistant/core/pull/58237
+[#58238]: https://github.com/home-assistant/core/pull/58238
+[#58240]: https://github.com/home-assistant/core/pull/58240
+[#58241]: https://github.com/home-assistant/core/pull/58241
+[#58244]: https://github.com/home-assistant/core/pull/58244
+[#58246]: https://github.com/home-assistant/core/pull/58246
+[#58248]: https://github.com/home-assistant/core/pull/58248
+[#58249]: https://github.com/home-assistant/core/pull/58249
+[#58250]: https://github.com/home-assistant/core/pull/58250
+[#58251]: https://github.com/home-assistant/core/pull/58251
+[#58255]: https://github.com/home-assistant/core/pull/58255
+[#58256]: https://github.com/home-assistant/core/pull/58256
+[#58257]: https://github.com/home-assistant/core/pull/58257
+[#58258]: https://github.com/home-assistant/core/pull/58258
+[#58259]: https://github.com/home-assistant/core/pull/58259
+[#58260]: https://github.com/home-assistant/core/pull/58260
+[#58263]: https://github.com/home-assistant/core/pull/58263
+[#58264]: https://github.com/home-assistant/core/pull/58264
+[#58266]: https://github.com/home-assistant/core/pull/58266
+[#58268]: https://github.com/home-assistant/core/pull/58268
+[#58269]: https://github.com/home-assistant/core/pull/58269
+[#58275]: https://github.com/home-assistant/core/pull/58275
+[#58276]: https://github.com/home-assistant/core/pull/58276
+[#58277]: https://github.com/home-assistant/core/pull/58277
+[#58278]: https://github.com/home-assistant/core/pull/58278
+[#58279]: https://github.com/home-assistant/core/pull/58279
+[#58280]: https://github.com/home-assistant/core/pull/58280
+[#58281]: https://github.com/home-assistant/core/pull/58281
+[#58284]: https://github.com/home-assistant/core/pull/58284
+[#58288]: https://github.com/home-assistant/core/pull/58288
+[#58289]: https://github.com/home-assistant/core/pull/58289
+[#58290]: https://github.com/home-assistant/core/pull/58290
+[#58291]: https://github.com/home-assistant/core/pull/58291
+[#58292]: https://github.com/home-assistant/core/pull/58292
+[#58293]: https://github.com/home-assistant/core/pull/58293
+[#58294]: https://github.com/home-assistant/core/pull/58294
+[#58295]: https://github.com/home-assistant/core/pull/58295
+[#58296]: https://github.com/home-assistant/core/pull/58296
+[#58298]: https://github.com/home-assistant/core/pull/58298
+[#58299]: https://github.com/home-assistant/core/pull/58299
+[#58300]: https://github.com/home-assistant/core/pull/58300
+[#58301]: https://github.com/home-assistant/core/pull/58301
+[#58302]: https://github.com/home-assistant/core/pull/58302
+[#58305]: https://github.com/home-assistant/core/pull/58305
+[#58307]: https://github.com/home-assistant/core/pull/58307
+[#58308]: https://github.com/home-assistant/core/pull/58308
+[#58309]: https://github.com/home-assistant/core/pull/58309
+[#58310]: https://github.com/home-assistant/core/pull/58310
+[#58312]: https://github.com/home-assistant/core/pull/58312
+[#58313]: https://github.com/home-assistant/core/pull/58313
+[#58314]: https://github.com/home-assistant/core/pull/58314
+[#58318]: https://github.com/home-assistant/core/pull/58318
+[#58319]: https://github.com/home-assistant/core/pull/58319
+[#58320]: https://github.com/home-assistant/core/pull/58320
+[#58321]: https://github.com/home-assistant/core/pull/58321
+[#58324]: https://github.com/home-assistant/core/pull/58324
+[#58325]: https://github.com/home-assistant/core/pull/58325
+[#58328]: https://github.com/home-assistant/core/pull/58328
+[#58329]: https://github.com/home-assistant/core/pull/58329
+[#58330]: https://github.com/home-assistant/core/pull/58330
+[#58332]: https://github.com/home-assistant/core/pull/58332
+[#58333]: https://github.com/home-assistant/core/pull/58333
+[#58335]: https://github.com/home-assistant/core/pull/58335
+[#58337]: https://github.com/home-assistant/core/pull/58337
+[#58340]: https://github.com/home-assistant/core/pull/58340
+[#58341]: https://github.com/home-assistant/core/pull/58341
+[#58343]: https://github.com/home-assistant/core/pull/58343
+[#58345]: https://github.com/home-assistant/core/pull/58345
+[#58346]: https://github.com/home-assistant/core/pull/58346
+[#58347]: https://github.com/home-assistant/core/pull/58347
+[#58349]: https://github.com/home-assistant/core/pull/58349
+[#58351]: https://github.com/home-assistant/core/pull/58351
+[#58353]: https://github.com/home-assistant/core/pull/58353
+[#58357]: https://github.com/home-assistant/core/pull/58357
+[#58358]: https://github.com/home-assistant/core/pull/58358
+[#58359]: https://github.com/home-assistant/core/pull/58359
+[#58361]: https://github.com/home-assistant/core/pull/58361
+[#58362]: https://github.com/home-assistant/core/pull/58362
+[#58363]: https://github.com/home-assistant/core/pull/58363
+[#58364]: https://github.com/home-assistant/core/pull/58364
+[#58365]: https://github.com/home-assistant/core/pull/58365
+[#58366]: https://github.com/home-assistant/core/pull/58366
+[#58367]: https://github.com/home-assistant/core/pull/58367
+[#58368]: https://github.com/home-assistant/core/pull/58368
+[#58370]: https://github.com/home-assistant/core/pull/58370
+[#58371]: https://github.com/home-assistant/core/pull/58371
+[#58372]: https://github.com/home-assistant/core/pull/58372
+[#58374]: https://github.com/home-assistant/core/pull/58374
+[#58375]: https://github.com/home-assistant/core/pull/58375
+[#58376]: https://github.com/home-assistant/core/pull/58376
+[#58377]: https://github.com/home-assistant/core/pull/58377
+[#58378]: https://github.com/home-assistant/core/pull/58378
+[#58379]: https://github.com/home-assistant/core/pull/58379
+[#58383]: https://github.com/home-assistant/core/pull/58383
+[#58384]: https://github.com/home-assistant/core/pull/58384
+[#58385]: https://github.com/home-assistant/core/pull/58385
+[#58387]: https://github.com/home-assistant/core/pull/58387
+[#58388]: https://github.com/home-assistant/core/pull/58388
+[#58389]: https://github.com/home-assistant/core/pull/58389
+[#58390]: https://github.com/home-assistant/core/pull/58390
+[#58391]: https://github.com/home-assistant/core/pull/58391
+[#58392]: https://github.com/home-assistant/core/pull/58392
+[#58394]: https://github.com/home-assistant/core/pull/58394
+[#58395]: https://github.com/home-assistant/core/pull/58395
+[#58396]: https://github.com/home-assistant/core/pull/58396
+[#58397]: https://github.com/home-assistant/core/pull/58397
+[#58398]: https://github.com/home-assistant/core/pull/58398
+[#58399]: https://github.com/home-assistant/core/pull/58399
+[#58400]: https://github.com/home-assistant/core/pull/58400
+[#58401]: https://github.com/home-assistant/core/pull/58401
+[#58403]: https://github.com/home-assistant/core/pull/58403
+[#58405]: https://github.com/home-assistant/core/pull/58405
+[#58406]: https://github.com/home-assistant/core/pull/58406
+[#58408]: https://github.com/home-assistant/core/pull/58408
+[#58409]: https://github.com/home-assistant/core/pull/58409
+[#58410]: https://github.com/home-assistant/core/pull/58410
+[#58411]: https://github.com/home-assistant/core/pull/58411
+[#58413]: https://github.com/home-assistant/core/pull/58413
+[#58414]: https://github.com/home-assistant/core/pull/58414
+[#58416]: https://github.com/home-assistant/core/pull/58416
+[#58417]: https://github.com/home-assistant/core/pull/58417
+[#58418]: https://github.com/home-assistant/core/pull/58418
+[#58419]: https://github.com/home-assistant/core/pull/58419
+[#58422]: https://github.com/home-assistant/core/pull/58422
+[#58423]: https://github.com/home-assistant/core/pull/58423
+[#58424]: https://github.com/home-assistant/core/pull/58424
+[#58426]: https://github.com/home-assistant/core/pull/58426
+[#58429]: https://github.com/home-assistant/core/pull/58429
+[#58433]: https://github.com/home-assistant/core/pull/58433
+[#58434]: https://github.com/home-assistant/core/pull/58434
+[#58438]: https://github.com/home-assistant/core/pull/58438
+[#58442]: https://github.com/home-assistant/core/pull/58442
+[#58444]: https://github.com/home-assistant/core/pull/58444
+[#58446]: https://github.com/home-assistant/core/pull/58446
+[#58448]: https://github.com/home-assistant/core/pull/58448
+[#58450]: https://github.com/home-assistant/core/pull/58450
+[#58451]: https://github.com/home-assistant/core/pull/58451
+[#58452]: https://github.com/home-assistant/core/pull/58452
+[#58454]: https://github.com/home-assistant/core/pull/58454
+[#58455]: https://github.com/home-assistant/core/pull/58455
+[#58456]: https://github.com/home-assistant/core/pull/58456
+[#58461]: https://github.com/home-assistant/core/pull/58461
+[#58463]: https://github.com/home-assistant/core/pull/58463
+[#58465]: https://github.com/home-assistant/core/pull/58465
+[#58468]: https://github.com/home-assistant/core/pull/58468
+[#58469]: https://github.com/home-assistant/core/pull/58469
+[#58471]: https://github.com/home-assistant/core/pull/58471
+[#58472]: https://github.com/home-assistant/core/pull/58472
+[#58476]: https://github.com/home-assistant/core/pull/58476
+[#58477]: https://github.com/home-assistant/core/pull/58477
+[#58478]: https://github.com/home-assistant/core/pull/58478
+[#58479]: https://github.com/home-assistant/core/pull/58479
+[#58484]: https://github.com/home-assistant/core/pull/58484
+[#58486]: https://github.com/home-assistant/core/pull/58486
+[#58487]: https://github.com/home-assistant/core/pull/58487
+[#58491]: https://github.com/home-assistant/core/pull/58491
+[#58493]: https://github.com/home-assistant/core/pull/58493
+[#58494]: https://github.com/home-assistant/core/pull/58494
+[#58495]: https://github.com/home-assistant/core/pull/58495
+[#58498]: https://github.com/home-assistant/core/pull/58498
+[#58499]: https://github.com/home-assistant/core/pull/58499
+[#58500]: https://github.com/home-assistant/core/pull/58500
+[#58502]: https://github.com/home-assistant/core/pull/58502
+[#58506]: https://github.com/home-assistant/core/pull/58506
+[#58507]: https://github.com/home-assistant/core/pull/58507
+[#58510]: https://github.com/home-assistant/core/pull/58510
+[#58511]: https://github.com/home-assistant/core/pull/58511
+[#58514]: https://github.com/home-assistant/core/pull/58514
+[#58515]: https://github.com/home-assistant/core/pull/58515
+[#58516]: https://github.com/home-assistant/core/pull/58516
+[#58517]: https://github.com/home-assistant/core/pull/58517
+[#58518]: https://github.com/home-assistant/core/pull/58518
+[#58519]: https://github.com/home-assistant/core/pull/58519
+[#58520]: https://github.com/home-assistant/core/pull/58520
+[#58521]: https://github.com/home-assistant/core/pull/58521
+[#58522]: https://github.com/home-assistant/core/pull/58522
+[#58523]: https://github.com/home-assistant/core/pull/58523
+[#58524]: https://github.com/home-assistant/core/pull/58524
+[#58525]: https://github.com/home-assistant/core/pull/58525
+[#58526]: https://github.com/home-assistant/core/pull/58526
+[#58527]: https://github.com/home-assistant/core/pull/58527
+[#58531]: https://github.com/home-assistant/core/pull/58531
+[#58533]: https://github.com/home-assistant/core/pull/58533
+[#58534]: https://github.com/home-assistant/core/pull/58534
+[#58539]: https://github.com/home-assistant/core/pull/58539
+[#58540]: https://github.com/home-assistant/core/pull/58540
+[#58545]: https://github.com/home-assistant/core/pull/58545
+[#58548]: https://github.com/home-assistant/core/pull/58548
+[#58549]: https://github.com/home-assistant/core/pull/58549
+[#58553]: https://github.com/home-assistant/core/pull/58553
+[#58555]: https://github.com/home-assistant/core/pull/58555
+[#58557]: https://github.com/home-assistant/core/pull/58557
+[#58564]: https://github.com/home-assistant/core/pull/58564
+[#58565]: https://github.com/home-assistant/core/pull/58565
+[#58568]: https://github.com/home-assistant/core/pull/58568
+[#58584]: https://github.com/home-assistant/core/pull/58584
+[#58591]: https://github.com/home-assistant/core/pull/58591
+[#58594]: https://github.com/home-assistant/core/pull/58594
+[#58597]: https://github.com/home-assistant/core/pull/58597
+[#58623]: https://github.com/home-assistant/core/pull/58623
+[#58625]: https://github.com/home-assistant/core/pull/58625
+[#58626]: https://github.com/home-assistant/core/pull/58626
+[#58628]: https://github.com/home-assistant/core/pull/58628
+[#58629]: https://github.com/home-assistant/core/pull/58629
+[#58630]: https://github.com/home-assistant/core/pull/58630
+[#58631]: https://github.com/home-assistant/core/pull/58631
+[#58633]: https://github.com/home-assistant/core/pull/58633
+[#58635]: https://github.com/home-assistant/core/pull/58635
+[#58643]: https://github.com/home-assistant/core/pull/58643
+[#58659]: https://github.com/home-assistant/core/pull/58659
+[#58670]: https://github.com/home-assistant/core/pull/58670
+[#58672]: https://github.com/home-assistant/core/pull/58672
+[#58680]: https://github.com/home-assistant/core/pull/58680
+[#58682]: https://github.com/home-assistant/core/pull/58682
+[#58684]: https://github.com/home-assistant/core/pull/58684
+[#58686]: https://github.com/home-assistant/core/pull/58686
+[#58688]: https://github.com/home-assistant/core/pull/58688
+[#58689]: https://github.com/home-assistant/core/pull/58689
+[#58698]: https://github.com/home-assistant/core/pull/58698
+[#58701]: https://github.com/home-assistant/core/pull/58701
+[#58705]: https://github.com/home-assistant/core/pull/58705
+[#58708]: https://github.com/home-assistant/core/pull/58708
+[#58712]: https://github.com/home-assistant/core/pull/58712
+[#58718]: https://github.com/home-assistant/core/pull/58718
+[#58721]: https://github.com/home-assistant/core/pull/58721
+[#58723]: https://github.com/home-assistant/core/pull/58723
+[#58732]: https://github.com/home-assistant/core/pull/58732
+[#58736]: https://github.com/home-assistant/core/pull/58736
+[#58746]: https://github.com/home-assistant/core/pull/58746
+[#58751]: https://github.com/home-assistant/core/pull/58751
+[#58753]: https://github.com/home-assistant/core/pull/58753
+[#58754]: https://github.com/home-assistant/core/pull/58754
+[#58755]: https://github.com/home-assistant/core/pull/58755
+[#58756]: https://github.com/home-assistant/core/pull/58756
+[#58773]: https://github.com/home-assistant/core/pull/58773
+[#58774]: https://github.com/home-assistant/core/pull/58774
+[#58780]: https://github.com/home-assistant/core/pull/58780
+[#58817]: https://github.com/home-assistant/core/pull/58817
+[#58819]: https://github.com/home-assistant/core/pull/58819
+[#58821]: https://github.com/home-assistant/core/pull/58821
+[#58822]: https://github.com/home-assistant/core/pull/58822
+[#58826]: https://github.com/home-assistant/core/pull/58826
+[#58840]: https://github.com/home-assistant/core/pull/58840
+[#58875]: https://github.com/home-assistant/core/pull/58875
+[#58880]: https://github.com/home-assistant/core/pull/58880
+[#58887]: https://github.com/home-assistant/core/pull/58887
+[#58894]: https://github.com/home-assistant/core/pull/58894
+[#58901]: https://github.com/home-assistant/core/pull/58901
+[#58908]: https://github.com/home-assistant/core/pull/58908
+[#58911]: https://github.com/home-assistant/core/pull/58911
+[#58914]: https://github.com/home-assistant/core/pull/58914
+[#58937]: https://github.com/home-assistant/core/pull/58937
+[#58947]: https://github.com/home-assistant/core/pull/58947
+[#58951]: https://github.com/home-assistant/core/pull/58951
+[#58952]: https://github.com/home-assistant/core/pull/58952
+[#58954]: https://github.com/home-assistant/core/pull/58954
+[#58959]: https://github.com/home-assistant/core/pull/58959
+[#58962]: https://github.com/home-assistant/core/pull/58962
+[#58977]: https://github.com/home-assistant/core/pull/58977
+[#58980]: https://github.com/home-assistant/core/pull/58980
+[#58988]: https://github.com/home-assistant/core/pull/58988
+[@ANMalko]: https://github.com/ANMalko
+[@Adminiuga]: https://github.com/Adminiuga
+[@Bre77]: https://github.com/Bre77
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Chen-IL]: https://github.com/Chen-IL
+[@ColinRobbins]: https://github.com/ColinRobbins
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Djelibeybi]: https://github.com/Djelibeybi
+[@Drafteed]: https://github.com/Drafteed
+[@Ernst79]: https://github.com/Ernst79
+[@FlavorFx]: https://github.com/FlavorFx
+[@JJJ]: https://github.com/JJJ
+[@JeffLIrion]: https://github.com/JeffLIrion
+[@Kane610]: https://github.com/Kane610
+[@Kapernicus]: https://github.com/Kapernicus
+[@L-I-Am]: https://github.com/L-I-Am
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MatthewFlamm]: https://github.com/MatthewFlamm
+[@Misiu]: https://github.com/Misiu
+[@NickM-27]: https://github.com/NickM-27
+[@Noltari]: https://github.com/Noltari
+[@OGKevin]: https://github.com/OGKevin
+[@OttoWinter]: https://github.com/OttoWinter
+[@Petro31]: https://github.com/Petro31
+[@Quentame]: https://github.com/Quentame
+[@RenierM26]: https://github.com/RenierM26
+[@RobertMe]: https://github.com/RobertMe
+[@Shutgun]: https://github.com/Shutgun
+[@StevenLooman]: https://github.com/StevenLooman
+[@TheLastProject]: https://github.com/TheLastProject
+[@TheNogl]: https://github.com/TheNogl
+[@TomBrien]: https://github.com/TomBrien
+[@Tommatheussen]: https://github.com/Tommatheussen
+[@abmantis]: https://github.com/abmantis
+[@alexanv1]: https://github.com/alexanv1
+[@allenporter]: https://github.com/allenporter
+[@ammgws]: https://github.com/ammgws
+[@andre-richter]: https://github.com/andre-richter
+[@arksega]: https://github.com/arksega
+[@asansano]: https://github.com/asansano
+[@austinmroczek]: https://github.com/austinmroczek
+[@avee87]: https://github.com/avee87
+[@b-pass]: https://github.com/b-pass
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@benleb]: https://github.com/benleb
+[@bieniu]: https://github.com/bieniu
+[@bjpetit]: https://github.com/bjpetit
+[@bokub]: https://github.com/bokub
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@brianegge]: https://github.com/brianegge
+[@briglx]: https://github.com/briglx
+[@cdce8p]: https://github.com/cdce8p
+[@cgtobi]: https://github.com/cgtobi
+[@chemelli74]: https://github.com/chemelli74
+[@chishm]: https://github.com/chishm
+[@chmielowiec]: https://github.com/chmielowiec
+[@chrillebile]: https://github.com/chrillebile
+[@cisasteelersfan]: https://github.com/cisasteelersfan
+[@cmroche]: https://github.com/cmroche
+[@danielperna84]: https://github.com/danielperna84
+[@davelowper]: https://github.com/davelowper
+[@davet2001]: https://github.com/davet2001
+[@davidlb]: https://github.com/davidlb
+[@dboslee]: https://github.com/dboslee
+[@dennisschroer]: https://github.com/dennisschroer
+[@devbis]: https://github.com/devbis
+[@dgomes]: https://github.com/dgomes
+[@dkt01]: https://github.com/dkt01
+[@dmulcahey]: https://github.com/dmulcahey
+[@drinfernoo]: https://github.com/drinfernoo
+[@drizzle1]: https://github.com/drizzle1
+[@eavanvalkenburg]: https://github.com/eavanvalkenburg
+[@eifinger]: https://github.com/eifinger
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@fOmey]: https://github.com/fOmey
+[@farmio]: https://github.com/farmio
+[@felipediel]: https://github.com/felipediel
+[@firstof9]: https://github.com/firstof9
+[@flabbamann]: https://github.com/flabbamann
+[@fredrike]: https://github.com/fredrike
+[@frenck]: https://github.com/frenck
+[@garbled1]: https://github.com/garbled1
+[@ggravlingen]: https://github.com/ggravlingen
+[@gjong]: https://github.com/gjong
+[@gwww]: https://github.com/gwww
+[@hesselonline]: https://github.com/hesselonline
+[@icemanch]: https://github.com/icemanch
+[@indykoning]: https://github.com/indykoning
+[@inytar]: https://github.com/inytar
+[@itairaz1]: https://github.com/itairaz1
+[@janiversen]: https://github.com/janiversen
+[@jasonmadigan]: https://github.com/jasonmadigan
+[@javicalle]: https://github.com/javicalle
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@jjlawren]: https://github.com/jjlawren
+[@jrester]: https://github.com/jrester
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@kodsnutten]: https://github.com/kodsnutten
+[@koying]: https://github.com/koying
+[@krys1976]: https://github.com/krys1976
+[@lanrat]: https://github.com/lanrat
+[@lkempf]: https://github.com/lkempf
+[@ludeeus]: https://github.com/ludeeus
+[@lukas-hetzenecker]: https://github.com/lukas-hetzenecker
+[@marvin-w]: https://github.com/marvin-w
+[@mback2k]: https://github.com/mback2k
+[@mezz64]: https://github.com/mezz64
+[@mib1185]: https://github.com/mib1185
+[@michaeldavie]: https://github.com/michaeldavie
+[@milanmeu]: https://github.com/milanmeu
+[@muppet3000]: https://github.com/muppet3000
+[@natekspencer]: https://github.com/natekspencer
+[@nihaals]: https://github.com/nihaals
+[@oischinger]: https://github.com/oischinger
+[@ol-iver]: https://github.com/ol-iver
+[@ollo69]: https://github.com/ollo69
+[@pabigot]: https://github.com/pabigot
+[@pattyland]: https://github.com/pattyland
+[@paulmonigatti]: https://github.com/paulmonigatti
+[@peternijssen]: https://github.com/peternijssen
+[@purcell-lab]: https://github.com/purcell-lab
+[@raman325]: https://github.com/raman325
+[@rdfurman]: https://github.com/rdfurman
+[@regevbr]: https://github.com/regevbr
+[@rfleming71]: https://github.com/rfleming71
+[@rik-v]: https://github.com/rik-v
+[@rikroe]: https://github.com/rikroe
+[@rklomp]: https://github.com/rklomp
+[@ronalterde]: https://github.com/ronalterde
+[@rytilahti]: https://github.com/rytilahti
+[@sagioto]: https://github.com/sagioto
+[@scop]: https://github.com/scop
+[@shbatm]: https://github.com/shbatm
+[@some-guy-in-oz]: https://github.com/some-guy-in-oz
+[@spacegaier]: https://github.com/spacegaier
+[@spahlimi]: https://github.com/spahlimi
+[@starkillerOG]: https://github.com/starkillerOG
+[@teharris1]: https://github.com/teharris1
+[@terminet85]: https://github.com/terminet85
+[@thecode]: https://github.com/thecode
+[@thomas-svrts]: https://github.com/thomas-svrts
+[@thrawnarn]: https://github.com/thrawnarn
+[@timmo001]: https://github.com/timmo001
+[@tkdrob]: https://github.com/tkdrob
+[@tomer-w]: https://github.com/tomer-w
+[@tylergibson]: https://github.com/tylergibson
+[@uvjustin]: https://github.com/uvjustin
+[@vigonotion]: https://github.com/vigonotion
+[@yeahme49]: https://github.com/yeahme49
+[@yuvalabou]: https://github.com/yuvalabou
+[@zacwest]: https://github.com/zacwest
+[@zlinoliver]: https://github.com/zlinoliver
+[accuweather docs]: /integrations/accuweather/
+[acmeda docs]: /integrations/acmeda/
+[adax docs]: /integrations/adax/
+[advantage_air docs]: /integrations/advantage_air/
+[aemet docs]: /integrations/aemet/
+[aftership docs]: /integrations/aftership/
+[agent_dvr docs]: /integrations/agent_dvr/
+[air_quality docs]: /integrations/air_quality/
+[airly docs]: /integrations/airly/
+[airthings docs]: /integrations/airthings/
+[airvisual docs]: /integrations/airvisual/
+[alexa docs]: /integrations/alexa/
+[ambee docs]: /integrations/ambee/
+[amberelectric docs]: /integrations/amberelectric/
+[ambient_station docs]: /integrations/ambient_station/
+[apple_tv docs]: /integrations/apple_tv/
+[arcam_fmj docs]: /integrations/arcam_fmj/
+[arlo docs]: /integrations/arlo/
+[asuswrt docs]: /integrations/asuswrt/
+[august docs]: /integrations/august/
+[aurora_abb_powerone docs]: /integrations/aurora_abb_powerone/
+[auth docs]: /integrations/auth/
+[automation docs]: /integrations/automation/
+[awair docs]: /integrations/awair/
+[axis docs]: /integrations/axis/
+[bayesian docs]: /integrations/bayesian/
+[bbox docs]: /integrations/bbox/
+[binary_sensor docs]: /integrations/binary_sensor/
+[bitcoin docs]: /integrations/bitcoin/
+[blink docs]: /integrations/blink/
+[bluesound docs]: /integrations/bluesound/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[bond docs]: /integrations/bond/
+[bosch_shc docs]: /integrations/bosch_shc/
+[broadlink docs]: /integrations/broadlink/
+[brother docs]: /integrations/brother/
+[buienradar docs]: /integrations/buienradar/
+[camera docs]: /integrations/camera/
+[cast docs]: /integrations/cast/
+[clickatell docs]: /integrations/clickatell/
+[climacell docs]: /integrations/climacell/
+[climate docs]: /integrations/climate/
+[cloud docs]: /integrations/cloud/
+[co2signal docs]: /integrations/co2signal/
+[coinbase docs]: /integrations/coinbase/
+[config docs]: /integrations/config/
+[control4 docs]: /integrations/control4/
+[daikin docs]: /integrations/daikin/
+[darksky docs]: /integrations/darksky/
+[debugpy docs]: /integrations/debugpy/
+[deconz docs]: /integrations/deconz/
+[demo docs]: /integrations/demo/
+[denonavr docs]: /integrations/denonavr/
+[device_automation docs]: /integrations/device_automation/
+[devolo_home_control docs]: /integrations/devolo_home_control/
+[dhcp docs]: /integrations/dhcp/
+[directv docs]: /integrations/directv/
+[discord docs]: /integrations/discord/
+[discovery docs]: /integrations/discovery/
+[dlna_dmr docs]: /integrations/dlna_dmr/
+[doorbird docs]: /integrations/doorbird/
+[ecobee docs]: /integrations/ecobee/
+[efergy docs]: /integrations/efergy/
+[eight_sleep docs]: /integrations/eight_sleep/
+[elkm1 docs]: /integrations/elkm1/
+[emulated_hue docs]: /integrations/emulated_hue/
+[energy docs]: /integrations/energy/
+[enocean docs]: /integrations/enocean/
+[environment_canada docs]: /integrations/environment_canada/
+[eq3btsmart docs]: /integrations/eq3btsmart/
+[esphome docs]: /integrations/esphome/
+[essent docs]: /integrations/essent/
+[ezviz docs]: /integrations/ezviz/
+[fan docs]: /integrations/fan/
+[feedreader docs]: /integrations/feedreader/
+[fibaro docs]: /integrations/fibaro/
+[fitbit docs]: /integrations/fitbit/
+[fjaraskupan docs]: /integrations/fjaraskupan/
+[flunearyou docs]: /integrations/flunearyou/
+[flux_led docs]: /integrations/flux_led/
+[folder_watcher docs]: /integrations/folder_watcher/
+[forecast_solar docs]: /integrations/forecast_solar/
+[freebox docs]: /integrations/freebox/
+[fritz docs]: /integrations/fritz/
+[fritzbox docs]: /integrations/fritzbox/
+[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/
+[fronius docs]: /integrations/fronius/
+[frontend docs]: /integrations/frontend/
+[gios docs]: /integrations/gios/
+[goalzero docs]: /integrations/goalzero/
+[gogogate2 docs]: /integrations/gogogate2/
+[google_assistant docs]: /integrations/google_assistant/
+[google_travel_time docs]: /integrations/google_travel_time/
+[gree docs]: /integrations/gree/
+[group docs]: /integrations/group/
+[growatt_server docs]: /integrations/growatt_server/
+[guardian docs]: /integrations/guardian/
+[hassio docs]: /integrations/hassio/
+[hdmi_cec docs]: /integrations/hdmi_cec/
+[hikvision docs]: /integrations/hikvision/
+[hive docs]: /integrations/hive/
+[homeassistant docs]: /integrations/homeassistant/
+[homekit docs]: /integrations/homekit/
+[homekit_controller docs]: /integrations/homekit_controller/
+[homematic docs]: /integrations/homematic/
+[homematicip_cloud docs]: /integrations/homematicip_cloud/
+[honeywell docs]: /integrations/honeywell/
+[huawei_lte docs]: /integrations/huawei_lte/
+[huawei_router docs]: /integrations/huawei_router/
+[hue docs]: /integrations/hue/
+[huisbaasje docs]: /integrations/huisbaasje/
+[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/
+[icloud docs]: /integrations/icloud/
+[input_datetime docs]: /integrations/input_datetime/
+[input_select docs]: /integrations/input_select/
+[insteon docs]: /integrations/insteon/
+[iqvia docs]: /integrations/iqvia/
+[iss docs]: /integrations/iss/
+[isy994 docs]: /integrations/isy994/
+[jewish_calendar docs]: /integrations/jewish_calendar/
+[juicenet docs]: /integrations/juicenet/
+[keyboard_remote docs]: /integrations/keyboard_remote/
+[kira docs]: /integrations/kira/
+[knx docs]: /integrations/knx/
+[kraken docs]: /integrations/kraken/
+[lg_netcast docs]: /integrations/lg_netcast/
+[lifx docs]: /integrations/lifx/
+[light docs]: /integrations/light/
+[litterrobot docs]: /integrations/litterrobot/
+[local_ip docs]: /integrations/local_ip/
+[lookin docs]: /integrations/lookin/
+[lutron_caseta docs]: /integrations/lutron_caseta/
+[lyft docs]: /integrations/lyft/
+[media_player docs]: /integrations/media_player/
+[media_source docs]: /integrations/media_source/
+[meteo_france docs]: /integrations/meteo_france/
+[metoffice docs]: /integrations/metoffice/
+[microsoft docs]: /integrations/microsoft/
+[mill docs]: /integrations/mill/
+[mobile_app docs]: /integrations/mobile_app/
+[modbus docs]: /integrations/modbus/
+[modem_callerid docs]: /integrations/modem_callerid/
+[motion_blinds docs]: /integrations/motion_blinds/
+[motioneye docs]: /integrations/motioneye/
+[mqtt docs]: /integrations/mqtt/
+[myq docs]: /integrations/myq/
+[mysensors docs]: /integrations/mysensors/
+[mystrom docs]: /integrations/mystrom/
+[nad docs]: /integrations/nad/
+[nam docs]: /integrations/nam/
+[nanoleaf docs]: /integrations/nanoleaf/
+[neato docs]: /integrations/neato/
+[nello docs]: /integrations/nello/
+[nest docs]: /integrations/nest/
+[netatmo docs]: /integrations/netatmo/
+[netgear docs]: /integrations/netgear/
+[nexia docs]: /integrations/nexia/
+[nfandroidtv docs]: /integrations/nfandroidtv/
+[notify docs]: /integrations/notify/
+[notion docs]: /integrations/notion/
+[nuheat docs]: /integrations/nuheat/
+[nuki docs]: /integrations/nuki/
+[number docs]: /integrations/number/
+[nut docs]: /integrations/nut/
+[nws docs]: /integrations/nws/
+[octoprint docs]: /integrations/octoprint/
+[ondilo_ico docs]: /integrations/ondilo_ico/
+[onewire docs]: /integrations/onewire/
+[opencv docs]: /integrations/opencv/
+[opengarage docs]: /integrations/opengarage/
+[openuv docs]: /integrations/openuv/
+[openweathermap docs]: /integrations/openweathermap/
+[orangepi_gpio docs]: /integrations/orangepi_gpio/
+[otp docs]: /integrations/otp/
+[ozw docs]: /integrations/ozw/
+[p1_monitor docs]: /integrations/p1_monitor/
+[persistent_notification docs]: /integrations/persistent_notification/
+[pi_hole docs]: /integrations/pi_hole/
+[picnic docs]: /integrations/picnic/
+[plex docs]: /integrations/plex/
+[plugwise docs]: /integrations/plugwise/
+[point docs]: /integrations/point/
+[powerwall docs]: /integrations/powerwall/
+[quantum_gateway docs]: /integrations/quantum_gateway/
+[rachio docs]: /integrations/rachio/
+[rainforest_eagle docs]: /integrations/rainforest_eagle/
+[rainmachine docs]: /integrations/rainmachine/
+[recollect_waste docs]: /integrations/recollect_waste/
+[recorder docs]: /integrations/recorder/
+[renault docs]: /integrations/renault/
+[repetier docs]: /integrations/repetier/
+[rest docs]: /integrations/rest/
+[rfxtrx docs]: /integrations/rfxtrx/
+[roku docs]: /integrations/roku/
+[roomba docs]: /integrations/roomba/
+[roon docs]: /integrations/roon/
+[rpi_power docs]: /integrations/rpi_power/
+[ruckus_unleashed docs]: /integrations/ruckus_unleashed/
+[scrape docs]: /integrations/scrape/
+[screenlogic docs]: /integrations/screenlogic/
+[script docs]: /integrations/script/
+[sense docs]: /integrations/sense/
+[sensor docs]: /integrations/sensor/
+[sentry docs]: /integrations/sentry/
+[seventeentrack docs]: /integrations/seventeentrack/
+[sharkiq docs]: /integrations/sharkiq/
+[shelly docs]: /integrations/shelly/
+[sia docs]: /integrations/sia/
+[simplisafe docs]: /integrations/simplisafe/
+[sma docs]: /integrations/sma/
+[smappee docs]: /integrations/smappee/
+[smartthings docs]: /integrations/smartthings/
+[smarttub docs]: /integrations/smarttub/
+[sms docs]: /integrations/sms/
+[solaredge docs]: /integrations/solaredge/
+[solarlog docs]: /integrations/solarlog/
+[soma docs]: /integrations/soma/
+[somfy docs]: /integrations/somfy/
+[sonarr docs]: /integrations/sonarr/
+[sonos docs]: /integrations/sonos/
+[speedtestdotnet docs]: /integrations/speedtestdotnet/
+[spider docs]: /integrations/spider/
+[spotify docs]: /integrations/spotify/
+[srp_energy docs]: /integrations/srp_energy/
+[ssdp docs]: /integrations/ssdp/
+[statistics docs]: /integrations/statistics/
+[stookalert docs]: /integrations/stookalert/
+[stream docs]: /integrations/stream/
+[suez_water docs]: /integrations/suez_water/
+[surepetcare docs]: /integrations/surepetcare/
+[switchbot docs]: /integrations/switchbot/
+[synology_dsm docs]: /integrations/synology_dsm/
+[system_bridge docs]: /integrations/system_bridge/
+[systemmonitor docs]: /integrations/systemmonitor/
+[tado docs]: /integrations/tado/
+[tasmota docs]: /integrations/tasmota/
+[tautulli docs]: /integrations/tautulli/
+[tellduslive docs]: /integrations/tellduslive/
+[template docs]: /integrations/template/
+[tibber docs]: /integrations/tibber/
+[tile docs]: /integrations/tile/
+[toon docs]: /integrations/toon/
+[totalconnect docs]: /integrations/totalconnect/
+[tplink docs]: /integrations/tplink/
+[trace docs]: /integrations/trace/
+[tractive docs]: /integrations/tractive/
+[tradfri docs]: /integrations/tradfri/
+[tuya docs]: /integrations/tuya/
+[unifi docs]: /integrations/unifi/
+[universal docs]: /integrations/universal/
+[upb docs]: /integrations/upb/
+[upnp docs]: /integrations/upnp/
+[uptimerobot docs]: /integrations/uptimerobot/
+[utility_meter docs]: /integrations/utility_meter/
+[vallox docs]: /integrations/vallox/
+[velbus docs]: /integrations/velbus/
+[venstar docs]: /integrations/venstar/
+[verisure docs]: /integrations/verisure/
+[vicare docs]: /integrations/vicare/
+[vizio docs]: /integrations/vizio/
+[vlc_telnet docs]: /integrations/vlc_telnet/
+[wallbox docs]: /integrations/wallbox/
+[waqi docs]: /integrations/waqi/
+[watson_tts docs]: /integrations/watson_tts/
+[watttime docs]: /integrations/watttime/
+[waze_travel_time docs]: /integrations/waze_travel_time/
+[weather docs]: /integrations/weather/
+[websocket_api docs]: /integrations/websocket_api/
+[whirlpool docs]: /integrations/whirlpool/
+[wilight docs]: /integrations/wilight/
+[wink docs]: /integrations/wink/
+[withings docs]: /integrations/withings/
+[wled docs]: /integrations/wled/
+[xbox docs]: /integrations/xbox/
+[xiaomi_aqara docs]: /integrations/xiaomi_aqara/
+[xiaomi_miio docs]: /integrations/xiaomi_miio/
+[yamaha docs]: /integrations/yamaha/
+[yamaha_musiccast docs]: /integrations/yamaha_musiccast/
+[yandex_transport docs]: /integrations/yandex_transport/
+[yeelight docs]: /integrations/yeelight/
+[youless docs]: /integrations/youless/
+[zeroconf docs]: /integrations/zeroconf/
+[zha docs]: /integrations/zha/
+[zwave docs]: /integrations/zwave/
+[zwave_js docs]: /integrations/zwave_js/
diff --git a/source/_redirects b/source/_redirects
index c30fc404e6b..afa3818d84d 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -111,7 +111,6 @@
/components/alarm_control_panel.spc /integrations/spc
/components/alarm_control_panel.totalconnect /integrations/totalconnect
/components/alarm_control_panel.verisure /integrations/verisure#alarm-control-panel
-/components/alarm_control_panel.wink /integrations/wink#alarm-control-panel
/components/alarm_control_panel.yale_smart_alarm /integrations/yale_smart_alarm
/components/apiai /integrations/dialogflow
/components/binary_sensor.abode /integrations/abode#binary-sensor
@@ -207,7 +206,6 @@
/components/binary_sensor.vultr /integrations/vultr#binary-sensor
/components/binary_sensor.w800rf32 /integrations/w800rf32#binary-sensor
/components/binary_sensor.wemo /integrations/wemo
-/components/binary_sensor.wink /integrations/wink#binary-sensor
/components/binary_sensor.wirelesstag /integrations/wirelesstag#binary-sensor
/components/binary_sensor.workday /integrations/workday
/components/binary_sensor.zha /integrations/zha
@@ -290,7 +288,6 @@
/components/climate.velbus /integrations/velbus
/components/climate.venstar /integrations/venstar
/components/climate.vera /integrations/vera
-/components/climate.wink /integrations/wink#climate
/components/climate.xs1 /integrations/xs1
/components/climate.zhong_hong /integrations/zhong_hong
/components/climate.zwave /integrations/zwave#climate
@@ -322,7 +319,6 @@
/components/cover.tuya /integrations/tuya
/components/cover.velux /integrations/velux
/components/cover.vera /integrations/vera
-/components/cover.wink /integrations/wink#cover
/components/cover.zwave /integrations/zwave#cover
/components/cppm /integrations/cppm_tracker
/components/device_tracker.actiontec /integrations/actiontec
@@ -344,7 +340,6 @@
/components/device_tracker.gpslogger /integrations/gpslogger
/components/device_tracker.hitron_coda /integrations/hitron_coda
/components/device_tracker.huawei_lte /integrations/huawei_lte
-/components/device_tracker.huawei_router /integrations/huawei_router
/components/device_tracker.icloud /integrations/icloud
/components/device_tracker.keenetic_ndms2 /integrations/keenetic_ndms2
/components/device_tracker.linksys_ap /integrations/linksys_ap
@@ -386,7 +381,6 @@
/components/fan.smartthings /integrations/smartthings#fan
/components/fan.tuya /integrations/tuya
/components/fan.wemo /integrations/wemo#fan
-/components/fan.wink /integrations/wink#fan
/components/fan.zha /integrations/zha
/components/fan.zwave /integrations/zwave
/components/generic /integrations/generic
@@ -468,7 +462,6 @@
/components/light.tuya /integrations/tuya
/components/light.vera /integrations/vera
/components/light.wemo /integrations/wemo
-/components/light.wink /integrations/wink#light
/components/light.x10 /integrations/x10
/components/light.yeelight /integrations/yeelight
/components/light.yeelightsunflower /integrations/yeelightsunflower
@@ -483,7 +476,6 @@
/components/lock.homematic /integrations/homematic
/components/lock.isy994 /integrations/isy994
/components/lock.kiwi /integrations/kiwi
-/components/lock.nello /integrations/nello
/components/lock.nuki /integrations/nuki
/components/lock.sesame /integrations/sesame
/components/lock.smartthings /integrations/smartthings#lock
@@ -491,7 +483,6 @@
/components/lock.vera /integrations/vera
/components/lock.verisure /integrations/verisure
/components/lock.volvooncall /integrations/volvooncall
-/components/lock.wink /integrations/wink#lock
/components/lock.zwave /integrations/zwave#lock
/components/mailbox.asterisk_cdr /integrations/asterisk_cdr
/components/mailbox.asterisk_mbox /integrations/asterisk_mbox
@@ -629,7 +620,6 @@
/components/scene.tuya /integrations/tuya
/components/scene.velux /integrations/velux
/components/scene.vera /integrations/vera
-/components/scene.wink /integrations/wink
/components/sensor.abode /integrations/abode
/components/sensor.ads /integrations/ads#sensor
/components/sensor.aftership /integrations/aftership
@@ -768,7 +758,6 @@
/components/sensor.loop_energy /integrations/loopenergy
/components/sensor.loopenergy /integrations/loopenergy
/components/sensor.luftdaten /integrations/luftdaten#sensor
-/components/sensor.lyft /integrations/lyft
/components/sensor.magicseaweed /integrations/magicseaweed
/components/sensor.meteo_france /integrations/meteo_france
/components/sensor.mfi /integrations/mfi#sensor
@@ -912,7 +901,6 @@
/components/sensor.waterfurnace /integrations/waterfurnace
/components/sensor.waze_travel_time /integrations/waze_travel_time
/components/sensor.whois /integrations/whois
-/components/sensor.wink /integrations/wink#sensor
/components/sensor.wirelesstag /integrations/wirelesstag#sensor
/components/sensor.worldclock /integrations/worldclock
/components/sensor.worldtidesinfo /integrations/worldtidesinfo
@@ -1036,7 +1024,6 @@
/components/switch.vultr /integrations/vultr#switch
/components/switch.wake_on_lan /integrations/wake_on_lan#switch
/components/switch.wemo /integrations/wemo
-/components/switch.wink /integrations/wink#switch
/components/switch.wirelesstag /integrations/wirelesstag#switch
/components/switch.xs1 /integrations/xs1
/components/switch.zha /integrations/zha
@@ -1060,7 +1047,6 @@
/components/vacuum.roomba /integrations/roomba
/components/vlc-telnet /integrations/vlc_telnet
/components/water_heater.econet /integrations/econet
-/components/water_heater.wink /integrations/wink#water-heater
/components/weather.buienradar /integrations/buienradar
/components/weather.ecobee /integrations/ecobee
/components/weather.ipma /integrations/ipma
@@ -1429,7 +1415,6 @@
/components/http /integrations/http
/components/htu21d /integrations/htu21d
/components/huawei_lte /integrations/huawei_lte
-/components/huawei_router /integrations/huawei_router
/components/hue /integrations/hue
/components/hunterdouglas_powerview /integrations/hunterdouglas_powerview
/components/hydrawise /integrations/hydrawise
@@ -1529,7 +1514,6 @@
/components/lutron /integrations/lutron
/components/lutron_caseta /integrations/lutron_caseta
/components/lw12wifi /integrations/lw12wifi
-/components/lyft /integrations/lyft
/components/magicseaweed /integrations/magicseaweed
/components/mailbox /integrations/mailbox
/components/mailgun /integrations/mailgun
@@ -1590,7 +1574,6 @@
/components/nanoleaf /integrations/nanoleaf
/components/neato /integrations/neato
/components/nederlandse_spoorwegen /integrations/nederlandse_spoorwegen
-/components/nello /integrations/nello
/components/ness_alarm /integrations/ness_alarm
/components/nest /integrations/nest
/components/netatmo /integrations/netatmo
@@ -1967,7 +1950,6 @@
/components/websocket_api /integrations/websocket_api
/components/wemo /integrations/wemo
/components/whois /integrations/whois
-/components/wink /integrations/wink
/components/wirelesstag /integrations/wirelesstag
/components/withings /integrations/withings
/components/workday /integrations/workday
@@ -2239,6 +2221,8 @@
/components/device_tracker.ubee /more-info/removed-integration 301
/components/device_tracker.xfinity /more-info/removed-integration 301
/components/edp_redy /more-info/removed-integration 301
+/components/essent /more-info/removed-integration 301
+/integrations/essent /more-info/removed-integration 301
/components/fedex /more-info/removed-integration 301
/components/fortigate /more-info/removed-integration 301
/components/history_graph /more-info/removed-integration 301
@@ -2343,3 +2327,25 @@
/components/device_tracker.trackr /more-info/removed-integration 301
/components/trackr /more-info/removed-integration 301
/integrations/trackr /more-info/removed-integration 301
+/components/alarm_control_panel.wink /more-info/removed-integration 301
+/components/binary_sensor.wink /more-info/removed-integration 301
+/components/climate.wink /more-info/removed-integration 301
+/components/cover.wink /more-info/removed-integration 301
+/components/fan.wink /more-info/removed-integration 301
+/components/light.wink /more-info/removed-integration 301
+/components/lock.wink /more-info/removed-integration 301
+/components/scene.wink /more-info/removed-integration 301
+/components/sensor.wink /more-info/removed-integration 301
+/components/switch.wink /more-info/removed-integration 301
+/components/water_heater.wink /more-info/removed-integration 301
+/components/wink /more-info/removed-integration 301
+/integrations/wink /more-info/removed-integration 301
+/components/lyft /more-info/removed-integration 301
+/components/sensor.lyft /more-info/removed-integration 301
+/integrations/lyft /more-info/removed-integration 301
+/components/lock.nello /more-info/removed-integration 301
+/components/nello /more-info/removed-integration 301
+/integrations/nello /more-info/removed-integration 301
+/components/device_tracker.huawei_router /more-info/removed-integration 301
+/integrations/huawei_router /more-info/removed-integration 301
+
diff --git a/source/images/blog/2021-11/entity-categories.png b/source/images/blog/2021-11/entity-categories.png
new file mode 100644
index 00000000000..97ba5f4fc25
Binary files /dev/null and b/source/images/blog/2021-11/entity-categories.png differ
diff --git a/source/images/blog/2021-11/icon-picker.gif b/source/images/blog/2021-11/icon-picker.gif
new file mode 100644
index 00000000000..f68bc164339
Binary files /dev/null and b/source/images/blog/2021-11/icon-picker.gif differ
diff --git a/source/images/blog/2021-11/social.png b/source/images/blog/2021-11/social.png
new file mode 100644
index 00000000000..c71a62e6893
Binary files /dev/null and b/source/images/blog/2021-11/social.png differ
diff --git a/source/images/blog/2021-11/visit-device.png b/source/images/blog/2021-11/visit-device.png
new file mode 100644
index 00000000000..2d1e4adab6c
Binary files /dev/null and b/source/images/blog/2021-11/visit-device.png differ