+Many devices that (will) hit the market will use Thread for radio communication and Matter as a control protocol, but this is not guaranteed. For example, Thread-based devices are available that only support Apple HomeKit or some vendor-specific communication protocol. There are also a few cases where you need to apply for a (beta) firmware update on the device to enable Matter as a communication protocol. Therefore, do not assume Matter support when you see a Thread logo when looking for devices. Please be sure to look for the *Matter* logo itself (on either Wi-Fi/Ethernet-based devices or Thread) or any other confirmation by the manufacturer that the device supports Matter.
+
+
+## Bluetooth
+
+Most (if not all) Matter-compliant devices will also have a Bluetooth chip onboard, this is to ease commissioning (a somewhat technical term for adding a device to your controller). Bluetooth will not be used to control a device but only to pair it after unboxing or factory resetting. The Home Assistant controller uses the Home Assistant Companion app to do commissioning, so you can bring your phone close to the device you want to commission. The controller will then send your network credentials to your device over Bluetooth in the commissioning process. If that succeeds, the device will communicate over its native interface, meaning Wi-Fi, Ethernet, or Thread.
+
+
+Although your Home Assistant server might have a Bluetooth adapter on board that the controller can use to commission devices, we choose not to utilize that adapter. Mainly to prevent issues with the built-in Bluetooth integration but also because it makes more sense to bring your mobile devices close to the Matter device you'd like to commission.
+
+
+## Multi fabric: join to multiple controllers
+
+One of the great features of Matter is the so-called _Multi Fabric_ feature: you can join the same device to multiple controllers. For example, simultaneously add it to Google Home, Apple Home, and Home Assistant. The standard describes that each device should be able to at least support 5 different fabrics simultaneously.
+
+For devices where Home Assistant provides a native integration (with local API), Matter may not be the best option. Matter, being a universal standard, might not have the nitty-gritty features that come with a product-specific protocol. A good example is Philips Hue: the communication over Matter only provides the basic controls over lights, while the official [Hue integration](/integrations/hue) brings all Hue unique features like (dynamic) scenes, entertainment mode, etc.
+
+
+
+Image taken from [this excellent article by The Verge](https://www.theverge.com/23165855/thread-smart-home-protocol-matter-apple-google-interview) about Matter that shows the landcape of Matter, Thread, Border routers and bridges in a nice visualized way.
{% include integrations/config_flow.md %}
-_If you run Home Assistant Container, Home Assistant Core, or you don’t want to use the built-in Matter Server add-on, please see the [advanced installation instructions](#advanced-installation-instructions)._
+For communicating with Matter devices, the Home Assistant integration runs its own "Matter controller" in a separate process which will be launched as an add-on. This add-on runs the controller software and connects your Matter network (called Fabric in technical terms) and Home Assistant. The Home Assistant Matter integration connects to this server via a WebSocket connection.
+
+The only supported configuration (for now) for the Matter integration is by running the officially provided Home Assistant Matter add-on. Running the [Matter server](https://github.com/home-assistant-libs/python-matter-server) by any other means is at your own risk and is currently not officially supported.
## Current state of the integration
-While the support for Matter is evolving, we will regularly update the Matter integration with new features or device support. Because it might be hard to track what's supported and what not, we list the current state here and try to update this information as often as possible.
+While the support for Matter is evolving, we will regularly update the Matter integration with new features or device support. Because it might be hard to track what's supported and what's not, we list the current state here and try to update this information regularly.
-Platform support in Home Assistant is currently limited to switches, lights, locks, covers and (binary) sensors.
+Supported platforms (device types):
-### Known issues
+- Binary sensor: We have so far tested door/window sensors and motion sensors, but others will probably work too.
+- Climate: Support for thermostat devices is in development now.
+- Cover: Has been implemented, but support for a tilt feature is still missing.
+- Lights: All features (in the Matter specification) should be supported, including color control, etc.
+- Locks: Basic lock control has been implemented, but not all devices and features are supported yet.
+- Sensor: We have tested Illuminance and temperature sensors, but others will probably work too.
+- Switch: Powerplugs should work (note: no support for energy metering yet in Matter).
-- Support for bridges (e.g. Hue bridge) is NOT working yet. Please do not try to add a bridge as it will break the integration.
-- Door/window sensors show up reversed (closed instead of open)
+Note that a single Matter device can exist on multiple platforms. For example, a Motion sensor also has a temperature sensor and an illuminance sensor on board.
-_Both issues will be fixed in Home Assistant 2023.3._
+If you own a (bridged) Matter device and you are missing controls for this device, create an issue on [GitHub](https://github.com/home-assistant/home-assistant.io) and make sure to post your Integration diagnostics there. In some cases, we can easily extend the existing platform support based on your diagnostics dump.
## Adding Matter devices to Home Assistant
-Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own fabric. You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (ie Google, Apple) to Home Assistant's fabric. We're going to explore all these options below.
+Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own "fabric". You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (ie Google, Apple) to Home Assistant's fabric. We're going to explore all these options below.
### Add a device using the iOS Companion app
This will use the Bluetooth connection of your phone to add the device.
-1) Open The Home Assistant app on your phone.
-2) Go to Settings, Devices & Services.
-3) On the Devices tab, press the `Add device` button.
-4) Choose `Add Matter device` as the top of the list.
-5) Scan the QR-code of the Matter device with your phone camera or press `More options...` to manually enter the Commission code.
-6) Press the `Add to Home Assistant` button which will start the commissioning process which may take up to a few minutes.
-7) If you're adding a test board or beta device you might get a prompt about an Uncertified Accessory". In this dialog press `Add Anyway`.
-8) Once prompted you can enter a custom Accessory Name, this is just an internal reference and not visible in Home Assistant so you can type whatever you like here.
-9) Once the process is complete and you pressed the `Done` button, you are redirected to the Device within Home Assistant and its ready for use.
+1. Open The Home Assistant app on your phone.
+2. Go to {% my integrations title="**Settings** > **Devices & Services**" %}.
+3. On the **Devices** tab, press the **Add device** button.
+4. Choose **Add Matter device** at the top of the list.
+5. Scan the QR-code of the Matter device with your phone camera or press **More options...** to manually enter the Commission code.
+6. Select the **Add to Home Assistant** button which will start the commissioning process which may take up to a few minutes.
+7. If you're adding a test board or beta device, you might get a prompt about an "Uncertified Accessory". In this dialog, select **Add Anyway**.
+8. Once prompted, you can enter a custom **Accessory Name**, this is just an internal reference and not visible in Home Assistant. You can type whatever you like here.
+9. Once the process is complete and you pressed the **Done** button, you are redirected to the device within Home Assistant. It is ready for use.
+At this time it is not yet possible to share a device from Home Assistant to another platform. This feature should be added after the Matter SDK 1.1 is released.
+
-Because availability of actual Matter devices is sparse and proper HOWTO documentation even more, we provide a few step by step instructions for devices we have currently tested.
+## Experiment with Matter using a ESP32 dev board
-### TP-Link Tapo P125M (power plug)
-
-This device runs Matter out of the box, so you can add it directly to the controller(s) of your choice!
-
-Look for the M addition in the model name, a device without the M (regular P125) is not Matter compliant. This device is available in the US only.
-
-[TP-Link Tapo P125M on Amazon](https://amzn.to/3RILJah)
-
-### ESP32 dev board running Matter example app
-
-This is the most convenient and easy way to start playing with Matter. We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We actually recommend the M5 Stamp C3 device running the Lightning app.
+You do not yet have any Matter-compatible hardware but you do like to try it out or maybe create your own DIY Matter device? We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We recommend the M5 Stamp C3 device running the Lightning app.
NOTE for Android users: You need to follow the instructions at the bottom of the page to add the test device to the Google developer console, otherwise commissioning will fail. iOS users will not have this issue but they will get a prompt during commissioning asking if you trust the development device.
-1) Make sure you are using the Google Chrome or Microsoft Edge browser.
-2) Open https://nabucasa.github.io/matter-example-apps/
-3) Attach the ESP32 device using an USB cable.
-4) Click the radiobutton next to the example you like to setup, in case of an M5 Stamp, click `Lightning app for M5STAMP C3`.
-5) Press `Connect`.
-6) In the popup dialog that appears choose the correct serial device, in most cases this will be something like "cu-usbserial" or alike.
-7) Click `Install Matter Lightning app example` and let it install the firmware on the device, this will take a few minutes.
-8) Once the device is flashed with the Matter firmware, connect to the device again but this time choose `Logs & console`.
-9) You are presented with a console interface where you see live logging of events. This is actually an interactive shell where you can type commands. For a list of all commands, type `matter help` and press enter.
-10) To add the device, we need the QR code. In the console type in `matter onboardingcodes ble` and copy/paste the URL in your browser.
-11) Use the QR code to add the device using one of the above instructions on your phone, e.g. using the Home Assistant Companion app.
+1. Make sure you use Google Chrome or Microsoft Edge browser.
+2. Open https://nabucasa.github.io/matter-example-apps/
+3. Attach the ESP32 device using a USB cable.
+4. Select the radio button next to the example you like to set up, in case of an M5 Stamp, click **Lightning app for M5STAMP C3**.
+5. Select **Connect**.
+6. In the popup dialog that appears, choose the correct serial device. This will usually be something like "cu-usbserial" or alike.
+7. Click **Install Matter Lightning app example** and let it install the firmware on the device. This will take a few minutes.
+8. Once the device is flashed with the Matter firmware, connect to the device again but this time choose **Logs & console**.
+9. You are presented with a console interface where you see live logging of events. This is an interactive shell where you can type commands. For a list of all commands, type **matter help** and press enter.
+10. To add the device, we need the QR code. In the console, type in `matter onboardingcodes ble` and copy/paste the URL into your browser.
+11. Use the QR code to add the device using one of the above instructions on your phone, e.g. using the Home Assistant Companion app.
+
+## Known working devices
+
+Because the availability of actual Matter devices (and their documentation) is sparse, we provide a list of all known working devices that are tested by the Home Assistant Matter developers and/or the community to help you find the device you need. Note: The list below is ordered alphabetically, and some links contain affiliate links.
+
+Did you test a device that is not listed below? It would be greatly appreciated if you share your experience either on the Matter discord channel or contribute a PR (or suggestion) to this documentation page so you can help others, thanks in advance!
+
+### Aqara M2 Hub
+
+- Bridges Aqara (Zigbee) devices connected to the hub to Matter.
+- You need to enable Matter support/firmware in the Aqara app.
+- You will need an Aqara (cloud) account and the app before you can use Matter.
+- See [this Aqara landingpage](https://www.aqara.com/en/article-1583275073188196352.html) for more information, including what devices are bridged.
+- Thermostat devices (climate platform) are not supported yet (but are currently in development).
+- Device events, for example for the wall rockers and Cube, are not supported.
### Eve Energy (power plug), Eve Door & Window (contact sensor), Eve Motion (motion sensor)
-1) Look for the Thread logo on the box to ensure you have the new device which is compatible with Matter.
-2) The Eve device runs on HomeKit by default, you will need an iOS device to set it up out of the box.
-3) The Eve device uses Thread for communication, therefore you will need to have a Thread Border Router configured in your network setup, such as the Apple TV 4K (2021/2022), Homepod Mini, or Homepod V2.
-4) You need to join the [Eve Beta program here](https://www.evehome.com/en/meet-matter) and wait for instructions per email.
-5) Update the firmware of your Eve device using the Eve beta app to Matter.
-6) During the update process the Eve app will create a new QR code for you to save somewhere safe. This QR code is required when you want to add the device to a Matter controller. The normal QR code attached to the device will no longer work!
-7) During the upgrade process, the Eve app will join the device to Apple Home using Matter.
-8) Confirm that the device is working properly within Apple Home.
-9) Follow our instructions above to share the device from Apple Home to Home Assistant.
+- If you see a Matter logo on the box, the device runs Matter already and you can add it to HA immediately.
+- If there is a Thread logo, you need to install the Matter firmware using the Eve app.
+- No Matter logo and no Thread logo on the box? The device is not Matter compatible.
+- The energy metering feature of the Eve plug will not work in Home Assistant (Apple only feature).
+- Eve has just released official Matter support so ignore any documentation about the beta program.
-Once the initial firmware upgrade to Matter is complete, the device can also be paired to non-Apple based Thread networks, like Google Home or later Home Assistant's own Thread implementation based on OTBR but you do need an Apple ecosystem running (iOS phone + Border router) for the first time setup.
+[Eve Energy on Amazon](https://amzn.to/3YuO62P)
+[Eve Door & Window on Amazon](https://amzn.to/3RIU6ml)
+[Eve Motion on Amazon](https://amzn.to/3jDujiP)
-- [Eve Energy on Amazon](https://amzn.to/3YuO62P)
-- [Eve Door & Window on Amazon](https://amzn.to/3RIU6ml)
-- [Eve Motion on Amazon](https://amzn.to/3jDujiP)
+### Nanoleaf Matter bulbs and Lightstrips
+
+- Although the products work great once commissioned, multiple users have reported that commissioning them can be a bit difficult and requires some patience and multiple resets or optimizations to your home network.
+- Check the [Nanoleaf Matter infopage](https://nanoleaf.me/en-EU/integration/matter/) for all supported products and instructions.
+
+### Philips Hue (V2) Bridge
+
+The Philips Hue V2 bridge supports Matter since a recent update (the beta program closed, it is now officially available). You can enable Matter support from the Hue app after which you can commission it to Home Assistant and other fabrics.
+
+- Binding the Hue bridge to Home Assistant does not make sense because you will lose functionality over the default Hue integration in Home Assistant, such as button press events and (dynamic) scenes.
+- You will need a Hue/Signify (cloud) account and the app before you can use Matter.
+- Device events for example for dimmer remotes are not supported.
+- Only basic control of lights is supported, no scenes, events, effects etc.
+
+### TP-Link Tapo P125M (power plug)
+
+- Look for the M addition in the model name, a device without the M (regular P125) is not Matter compliant.
+- This device is available in the US only.
+
+[TP-Link Tapo P125M on Amazon](https://amzn.to/3RILJah)
## Troubleshooting
-### I do not see the option to add a Matter device in the settings
-We've added the option to **Add a Matter device** from the **Settings**>**Devices** in a recent version of the Home Assistant frontend, available from version 2023.3 and upwards or if you're running the Home Assistant nightly channel. If you are on a previous version of Home Assistant, you should see a button **Configure** on the Matter integration card within **Settings**>**Devices & Services**>**Integrations**. Click that **Configure** button and you should be able to see the **Commission** button on the Companion app.
+### General recommendations
+
+- Using Thread-based Matter devices in Home Assistant requires Home Assistant OS (version 10 and above) because of kernel patches to solve routing issues. Not using HAOS (and thus the official Matter add-on) is at your own risk.
+
+- To use Thread devices you will need a Thread Network with at least one Thread Border Router in your network nearby the Thread device(s). Apple users need for example the Apple TV 4K or the HomePod Mini, while Google users need a Nest Hub V2. Use the Thread integration in Home Assistant to diagnose your Thread network(s).
+
+- Start simple and work from there, keep your network easy and add for example an ESP32 test device. Once that works, move on to the next step or more devices.
+
+- Realize that you are an early adopter, both on the hardware side and on the software (controller) side so you may run into compatibility issues or features that are still missing. Report any issues you may find and help out others if you find a workaround or tested a device.
+
+- Make sure IPv6 (multicast) traffic travels freely from your network to the Home Assistant host. There is no requirement to have an IPv6-enabled internet connection or DHCPv6 server. However, IPv6 support has to be enabled (it's enabled by default on Home Assistant OS).
### I do not see the button "Commission using the Companion app"
+
This button will only be visible within the Home Assistant Companion App (so not in the browser) and your device meets all requirements for Matter support.
+
- For iOS, minimum version is iOS 16 (minimal 16.3 is preferred) and the most recent version of the HA companion app.
- For Android, minimum version is 8.1 and the most recent version of both the Google Home app and the (full) HA Companion app, downloaded from the app store.
### When I'm trying to commission using the Android app, I get an error stating "Matter is currently unavailable"
-See above, make sure your device meets all requirements to support Matter. Update Android to the latest version and the Google Home and Home Assistant Companion app. To quickly verify if your device meets all requirements to support Matter, on your Android device go to **Settings**>**Google**>**Devices & Sharing**. There should be an entry there for **Matter devices**.
+
+See above, make sure your device meets all requirements to support Matter. Update Android to the latest version and the Google Home and Home Assistant Companion app. To quickly verify if your device meets all requirements to support Matter, on your Android device, go to **Settings** > **Google** > **Devices & Sharing**. There should be an entry there for **Matter devices**.
+
+Some users have reported that uninstalling and reinstalling the Google Home app fixed this issue for them.
+Also see this [extended troubleshooting guide](https://developers.home.google.com/matter/verify-services) from Google.
### Unable to commission devices, it keeps giving errors or stops working randomly
-We've seen cases (e.g. on UniFi hardware) where IPv6 derived from the Internet Provider causes issues with the discovery of Matter devices. Keep this in mind when you experience issues trying to add or control Matter devices. Protocols like Matter are designed for regular residential network setups and do not play nice with enterprise solutions like VLAN's, Multicast filtering, and IGMP snooping. To avoid issues, try to keep your network as simple and flat as possible.
-## Advanced installation instructions
+The Matter protocol relies on (local) IPv6 and mDNS (multicast traffic) which should be able to travel freely in your network. Matter devices that use Wi-Fi (including Thread Border routers) must be on the same LAN/VLAN as Home Assistant. Matter devices that only use Thread must be joined to Thread networks for which there is at least one border router connected to the Home Assistant LAN.
-If you are using Home Assistant Container, Home Assistant Core, or you don't want to use the built-in Matter Server add-on, you will need to run the Matter Server yourself, to which the Matter integration will connect.
-
-### Running Matter Server
-
-This application provides the connection between your Matter network (called Fabric in technical terms) and Home Assistant. The Home Assistant Matter integration connects to this server via a websocket connection. You need to run the Matter Server before you can use the integration.
-
-There are multiple ways to run the server:
-
-**Option 1: The official Matter Server add-on, as described above**
-
-_This option is only available for Home Assistant OS (the recommended installation type) and Home Assistant Supervised installations._
-
-**Option 2: Run the Matter server yourself**
-
-This option is considered a very advanced setup and only for experienced users. You can find instructions on how to run the Matter Server in the [project repository](https://github.com/home-assistant-libs/python-matter-server).
-
-_Disclaimer: Some links on this page are affiliate links._
+Investigate your network topology if you experience any issues with discovering devices (like the initial commission keeps failing) or if devices become unavailable randomly. For instance, a setting on your router or Wi-Fi access point to "optimize" multicast traffic can harm the (discovery) traffic from Matter devices. Keep this in mind when you experience issues trying to add or control Matter devices. Protocols like Matter are designed for regular residential network setups and do not play nicely with enterprise networking solutions like VLANs, Multicast filtering, and IGMP snooping. Try to keep your network as simple and flat as possible to avoid issues.
diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown
index 3fc66ac8bfe..ab89f6c9866 100644
--- a/source/_integrations/mqtt.markdown
+++ b/source/_integrations/mqtt.markdown
@@ -535,6 +535,8 @@ The following software has built-in support for MQTT discovery:
- [HASS.Agent](https://github.com/LAB02-Research/HASS.Agent)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
- [MiFlora MQTT Daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon)
+- [Nuki Hub](https://github.com/technyon/nuki_hub)
+- [Nuki Smart Lock 3.0 Pro](https://support.nuki.io/hc/en-us/articles/12947926779409-MQTT-support)
- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway)
- [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
- [SmartHome](https://github.com/roncoa/SmartHome)
diff --git a/source/_integrations/notify.command_line.markdown b/source/_integrations/notify.command_line.markdown
deleted file mode 100644
index b1d6b5e32ab..00000000000
--- a/source/_integrations/notify.command_line.markdown
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "Command line Notify"
-description: "Instructions on how to add command line notifications to Home Assistant."
-ha_category:
- - Notifications
-ha_release: 0.14
-ha_domain: command_line
----
-
-The `command_line` platform allows you to use external tools for notifications from Home Assistant. The message will be passed in as STDIN.
-
-To enable those notifications in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-notify:
- - name: NOTIFIER_NAME
- platform: command_line
- command: "espeak -vmb/mb-us1"
-```
-
-{% configuration %}
-name:
- description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- required: false
- default: notify
- type: string
-command:
- description: The action to take.
- required: true
- type: string
-command_timeout:
- description: Defines number of seconds for command timeout.
- required: false
- type: integer
- default: 15
-{% endconfiguration %}
-
-To use notifications, please see the [getting started with automation page](/getting-started/automation/).
diff --git a/source/_integrations/pi_hole.markdown b/source/_integrations/pi_hole.markdown
index 32eeccc7ce1..7314ab3eeda 100644
--- a/source/_integrations/pi_hole.markdown
+++ b/source/_integrations/pi_hole.markdown
@@ -22,10 +22,23 @@ ha_integration_type: integration
---
The Pi-hole integration allows you to retrieve statistics and interact with a
-[Pi-hole](https://pi-hole.net/) system. If your Pi-hole web interface is password protected, an API key is needed for the setup (_from Settings -> API / Web interface_).
+[Pi-hole](https://pi-hole.net/) system.
{% include integrations/config_flow.md %}
+During the setup, it will ask for the following:
+
+| Item | Description | Example |
+| ---- | ----------- | ------- |
+| `Host` | The IP or domain name to Pi-Hole | 192.168.1.1 |
+| `Port` | Port used to get to the admin page | 80 |
+| `Name` | Name to for this Pi-Hole. | Pi-Hole |
+| `Location` | the path to the admin page. | /admin |
+
+The combined host, port and location should take you to the login page of Pi-Hole. Using the example above, it would be `http://192.168.1.1:80/admin`.
+
+If your Pi-hole web interface is password protected, an API key will be requested by Home Assistant after submitting the initial details above. You can get the API key by logging into your Pi-Hole and going to _from Settings > API_ and then the **Show API token** button.
+
## Services
The platform provides the following services to interact with your Pi-hole. Use switch entities when calling the services.
diff --git a/source/_integrations/python_script.markdown b/source/_integrations/python_script.markdown
index cf764e30cbf..8b7de9877f9 100644
--- a/source/_integrations/python_script.markdown
+++ b/source/_integrations/python_script.markdown
@@ -23,7 +23,7 @@ This integration allows you to write Python scripts that are exposed as services
Other imports like `min`, `max` are available as builtins. See the [python_script](https://github.com/home-assistant/core/blob/dev/homeassistant/components/python_script/__init__.py) source code for up-to-date information on the available objects inside the script.
-[hass-api]: /developers/development_hass_object/
+[hass-api]: https://developers.home-assistant.io/docs/dev_101_hass/
[logger-api]: https://docs.python.org/3.7/library/logging.html#logger-objects
diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown
index b1a9a7d68de..c4ee4901183 100644
--- a/source/_integrations/reolink.markdown
+++ b/source/_integrations/reolink.markdown
@@ -195,7 +195,8 @@ The following models have been tested and confirmed to work:
Battery-powered cameras are not yet supported.
-The following models are lacking the HTTP webserver API and can therfore not work with this integration:
+The following models are lacking the HTTP web server API and can, therefore, not work directly with this integration.
+However, these cameras can work with this integration through an NVR in which the NVR is connected to Home Assistant.
- E1 Pro
- E1
diff --git a/source/_integrations/schedule.markdown b/source/_integrations/schedule.markdown
index b8fc078ccac..1ad04a09f4b 100644
--- a/source/_integrations/schedule.markdown
+++ b/source/_integrations/schedule.markdown
@@ -17,12 +17,12 @@ Home Assistant that can be used to trigger or make decisions in your
automations and scripts.
The preferred way to configure a schedule is via the user interface at
-**Settings** -> **Devices & Services** -> **Helpers**. Click the add button
-and then choose the **Schedule** option, or click the My button below.
+**{% my helpers title="Settings > Devices & Services > Helpers." %}** Click the add button
+and then choose the **{% my config_flow_start domain=schedule title="Schedule" %}** option, or click the My button below.
{% include integrations/config_flow.md %}
-To be able to add **Helpers** via the user interface you should
+To be able to add **{% my helpers title="Helpers" %}** via the user interface you should
have `default_config:` in your `configuration.yaml`, it should already
be there by default unless you removed it.
diff --git a/source/_integrations/sensor.command_line.markdown b/source/_integrations/sensor.command_line.markdown
deleted file mode 100644
index 011c5b4446d..00000000000
--- a/source/_integrations/sensor.command_line.markdown
+++ /dev/null
@@ -1,208 +0,0 @@
----
-title: "Command line Sensor"
-description: "Instructions on how to integrate command line sensors into Home Assistant."
-ha_category:
- - Utility
- - Sensor
-ha_release: pre 0.7
-ha_iot_class: Local Polling
-ha_domain: command_line
----
-
-
-The `command_line` sensor platform simply issues specific commands to get its data. This makes it a very powerful platform as it allows anyone to integrate any type of sensor into Home Assistant that can get data from the command line.
-
-## Configuration
-
-To enable it, add the following lines to your `configuration.yaml`:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: command_line
- command: SENSOR_COMMAND
-```
-
-{% configuration %}
-command:
- description: The action to take to get the value.
- required: true
- type: string
-name:
- description: Name of the command sensor.
- required: false
- type: string
-unit_of_measurement:
- description: Defines the unit of measurement of the sensor, if any.
- required: false
- type: string
-value_template:
- description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload."
- required: false
- type: string
-scan_interval:
- description: Defines number of seconds for polling interval.
- required: false
- type: integer
- default: 60
-command_timeout:
- description: Defines number of seconds for command timeout
- required: false
- type: integer
- default: 15
-json_attributes:
- description: Defines a list of keys to extract values from a JSON dictionary result and then set as sensor attributes.
- required: false
- type: [string, list]
-unique_id:
- description: An ID that uniquely identifies this sensor. Set this to a unique value to allow customization through the UI.
- required: false
- type: string
-{% endconfiguration %}
-
-## Execution
-
-The `command` is executed within the [configuration directory](/docs/configuration/).
-
-
-
-If you are using [Home Assistant Operating System](https://github.com/home-assistant/operating-system), the commands are executed in the `homeassistant` container context. So if you test or debug your script, it might make sense to do this in the context of this container to get the same runtime environment.
-
-
-
-With a `0` exit code, the output (stdout) of the command is used as `value`. In case a command results in a non `0` exit code or is terminated by the `command_timeout`, the result is only logged to Home Assistant log and the value of the sensor is not updated.
-
-## Examples
-
-In this section you find some real-life examples of how to use this sensor.
-
-### CPU temperature
-
-Thanks to the [`proc`](https://en.wikipedia.org/wiki/Procfs) file system, various details about a system can be retrieved. Here the CPU temperature is of interest. Add something similar to your `configuration.yaml` file:
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: command_line
- name: CPU Temperature
- command: "cat /sys/class/thermal/thermal_zone0/temp"
- # If errors occur, make sure configuration file is encoded as UTF-8
- unit_of_measurement: "°C"
- value_template: "{{ value | multiply(0.001) | round(1) }}"
-```
-
-{% endraw %}
-
-### Monitoring failed login attempts on Home Assistant
-
-If you'd like to know how many failed login attempts are made to Home Assistant, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: command_line
- name: badlogin
- command: "grep -c 'Login attempt' /home/hass/.homeassistant/home-assistant.log"
-```
-
-Make sure to configure the [Logger integration](/integrations/logger) to monitor the [HTTP integration](/integrations/http/) at least the `warning` level.
-
-```yaml
-# Example working logger settings that works
-logger:
- default: critical
- logs:
- homeassistant.components.http: warning
-```
-
-### Details about the upstream Home Assistant release
-
-You can see directly in the frontend (**Developer tools** -> **About**) what release of Home Assistant you are running. The Home Assistant releases are available on the [Python Package Index](https://pypi.python.org/pypi). This makes it possible to get the current release.
-
-```yaml
-sensor:
- - platform: command_line
- command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])"
- name: HA release
-```
-
-### Read value out of a remote text file
-
-If you own devices which are storing values in text files which are accessible over HTTP then you can use the same approach as shown in the previous section. Instead of looking at the JSON response we directly grab the sensor's value.
-
-```yaml
-sensor:
- - platform: command_line
- command: python3 -c "import requests; print(requests.get('http://remote-host/sensor_data.txt').text)"
- name: File value
-```
-
-### Use an external script
-
-The example is doing the same as the [aREST sensor](/integrations/arest#sensor) but with an external Python script. It should give you an idea about interfacing with devices which are exposing a RESTful API.
-
-The one-line script to retrieve a value is shown below. Of course it would be possible to use this directly in the `configuration.yaml` file but need extra care about the quotation marks.
-
-```bash
-python3 -c "import requests; print(requests.get('http://10.0.0.48/analog/2').json()['return_value'])"
-```
-
-The script (saved as `arest-value.py`) that is used looks like the example below.
-
-```python
-#!/usr/bin/python3
-from requests import get
-
-response = get("http://10.0.0.48/analog/2")
-print(response.json()["return_value"])
-```
-
-To use the script you need to add something like the following to your `configuration.yaml` file.
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: command_line
- name: Brightness
- command: "python3 /path/to/script/arest-value.py"
-```
-
-### Usage of templating in `command:`
-
-[Templates](/docs/configuration/templating/) are supported in the `command` configuration variable. This could be used if you want to include the state of a specific sensor as an argument to your external script.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: command_line
- name: wind direction
- command: "sh /home/pi/.homeassistant/scripts/wind_direction.sh {{ states('sensor.wind_direction') }}"
- unit_of_measurement: "Direction"
-```
-
-{% endraw %}
-
-### Usage of JSON attributes in command output
-
-The example shows how you can retrieve multiple values with one sensor (where the additional values are attributes) by using `value_json` and `json_attributes`.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: command_line
- name: JSON time
- json_attributes:
- - date
- - milliseconds_since_epoch
- command: "python3 /home/pi/.homeassistant/scripts/datetime.py"
- value_template: "{{ value_json.time }}"
-```
-
-{% endraw %}
-
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown
index 6566221189d..6c296821566 100644
--- a/source/_integrations/sensor.mqtt.markdown
+++ b/source/_integrations/sensor.mqtt.markdown
@@ -151,7 +151,7 @@ json_attributes_topic:
last_reset_value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the last_reset. Available variables: `entity_id`. The `entity_id` can be used to reference the entity's attributes."
required: false
- type: string
+ type: template
name:
description: The name of the MQTT sensor.
required: false
diff --git a/source/_integrations/siren.mqtt.markdown b/source/_integrations/siren.mqtt.markdown
index 75f42cf8e5a..fcb7f9515a5 100644
--- a/source/_integrations/siren.mqtt.markdown
+++ b/source/_integrations/siren.mqtt.markdown
@@ -216,7 +216,7 @@ state_topic:
state_value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's state from the `state_topic`. To determine the siren's state result of this template will be compared to `state_on` and `state_off`. Alternatively `value_template` can be used to render to a valid JSON payload."
required: false
- type: string
+ type: template
support_duration:
description: Set to `true` if the MQTT siren supports the `duration` service turn on parameter and enables the `duration` state attribute.
required: false
diff --git a/source/_integrations/smtp.markdown b/source/_integrations/smtp.markdown
index 53c9abcd126..8b66b0d899c 100644
--- a/source/_integrations/smtp.markdown
+++ b/source/_integrations/smtp.markdown
@@ -205,6 +205,6 @@ notify:
sender_name: "SENDER_NAME"
```
-Keep in mind that Google has some extra layers of protection that need special attention. By default, the usage by external applications is limited so you will need to visit the [less secure apps](https://www.google.com/settings/security/lesssecureapps) page and enable it to be able to send e-mails. Be aware that Google will periodically turn it off if it is not used (no e-mail is sent).
+Keep in mind that Google has some extra layers of protection that need special attention. By default, the usage by external applications is limited so you will need to visit the [less secure apps](https://myaccount.google.com/lesssecureapps) page and enable it to be able to send e-mails. Be aware that Google will periodically turn it off if it is not used (no e-mail is sent).
-To avoid having your e-mail notifications broken due to the less secure app's behavior, it is recommended that you enable 2-step verification on your Google account, and use [an application-specific password](https://support.google.com/mail/answer/185833?hl=en) in your notification configuration.
+To avoid having your e-mail notifications broken due to the less secure app's behavior, it is recommended that you enable 2-step verification on your Google account, and use [an application-specific password](https://support.google.com/mail/answer/185833) in your notification configuration.
diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown
index 70d67be9df9..a2e548eaa5a 100644
--- a/source/_integrations/statistics.markdown
+++ b/source/_integrations/statistics.markdown
@@ -119,7 +119,7 @@ sensor:
{% configuration %}
entity_id:
- description: The source sensor to observe and compute statistical characteristics for. Only [sensors](/integrations/sensor/) and [binary sensor](/integrations/binary_sensor/) are supported.
+ description: The source sensor to observe and compute statistical characteristics for. Only [sensors](/integrations/sensor/) and [binary sensors](/integrations/binary_sensor/) are supported.
required: true
type: string
name:
@@ -157,4 +157,6 @@ unique_id:
### An important note on `max_age` and `sampling_size`
-The `max_age` option is only valid within the measured samples specified by `sampling_size` (default 20). Specify a wide-enough `sampling_size` if using an extended max-age (e.g., when looking for `max_age` 1 hour, a sensor that produces one measurement a minute should have at least a `sampling_size` of 60.
+If both `max_age` and `sampling_size` are given, the considered samples are those within the `max_age` time window but limited to the number of `sample_size` newest samples. Specify a wide-enough `sampling_size` if using an extended `max_age` (e.g., when looking for `max_age` 1 hour, a sensor that produces one measurement per minute should have at least a `sampling_size` of 60 to use all samples within the `max_age` timeframe.)
+
+If only `sample_size` is given there is no time limit. If only `max_age` is given the considered number of samples is unlimited.
diff --git a/source/_integrations/sun.markdown b/source/_integrations/sun.markdown
index 1029f8e1d83..874f3e622eb 100644
--- a/source/_integrations/sun.markdown
+++ b/source/_integrations/sun.markdown
@@ -51,23 +51,25 @@ sun:

-## Implementation Details
+## Automation trigger
The sun's event listener will call the service when the sun rises or sets with
an offset.
-The sun event need to have the type 'sun', which service to call,
-which event (sunset or sunrise) and the offset.
+The sun trigger need to have the type 'sun', which event (sunset or sunrise) and an optional offset.
-```json
-{
- "type": "sun",
- "service": "switch.turn_on",
- "event": "sunset",
- "offset": "-01:00:00"
-}
+```yaml
+trigger:
+ - platform: sun
+ event: sunrise
+ offset: "-01:00:01"
```
+| Key name | Description |
+| --------- | ----------- |
+| `event` | Possible values: `sunset` or `sunrise`
+| `offset` | An optional offset for the sun event trigger, in a positive or negative number of seconds, or specified in `HH:MM:SS` (after sun event trigger) or `-HH:MM:SS` (before sun event trigger).
+
### Maintains entity `sun.sun`
| Possible state | Description |
diff --git a/source/_integrations/switch.command_line.markdown b/source/_integrations/switch.command_line.markdown
deleted file mode 100644
index 7edafef40ec..00000000000
--- a/source/_integrations/switch.command_line.markdown
+++ /dev/null
@@ -1,205 +0,0 @@
----
-title: "Command line Switch"
-description: "Instructions on how to have switches call command line commands."
-ha_category:
- - Switch
-ha_release: pre 0.7
-ha_iot_class: Local Polling
-ha_domain: command_line
----
-
-The `command_line` switch platform issues specific commands when it is turned on
-and off. This might very well become our most powerful platform as it allows
-anyone to integrate any type of switch into Home Assistant that can be
-controlled from the command line, including calling other scripts!
-
-To enable it, add the following lines to your `configuration.yaml`:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: command_line
- switches:
- kitchen_light:
- command_on: switch_command on kitchen
- command_off: switch_command off kitchen
-```
-
-{% configuration %}
-switches:
- description: The array that contains all command switches.
- required: true
- type: map
- keys:
- identifier:
- description: Name of the command switch as slug. Multiple entries are possible.
- required: true
- type: map
- keys:
- command_on:
- description: The action to take for on.
- required: true
- type: string
- command_off:
- description: The action to take for off.
- required: true
- type: string
- command_state:
- description: "If given, this command will be run. Returning a result code `0` will indicate that the switch is on."
- required: false
- type: string
- value_template:
- description: "If specified, `command_state` will ignore the result code of the command but the template evaluating to `true` will indicate the switch is on."
- required: false
- type: string
- friendly_name:
- description: The name used to display the switch in the frontend.
- required: false
- type: string
- icon_template:
- description: Defines a template for the icon of the entity.
- required: false
- type: template
- command_timeout:
- description: Defines number of seconds for command timeout.
- required: false
- type: integer
- default: 15
- unique_id:
- description: An ID that uniquely identifies this switch. Set this to a unique value to allow customization through the UI.
- required: false
- type: string
-{% endconfiguration %}
-
-A note on `friendly_name`:
-
-When set, the `friendly_name` had been previously used for API calls and backend
-configuration instead of the `object_id` ("identifier"), but
-[this behavior is changing](https://github.com/home-assistant/home-assistant/pull/4343)
-to make the `friendly_name` for display purposes only. This allows users to set
-an `identifier` that emphasizes uniqueness and predictability for API and configuration
-purposes but have a prettier `friendly_name` still show up in the UI. As an
-additional benefit, if a user wanted to change the `friendly_name` / display
-name (e.g., from "Kitchen Lightswitch" to "Kitchen Switch" or
-"Living Room Light", or remove the `friendly_name` altogether), they could
-do so without needing to change existing automations or API calls.
-See aREST device below for an example.
-
-## Examples
-
-In this section you find some real-life examples of how to use this switch.
-
-### Change the icon when a state changes
-
-This example demonstrates how to use template to change the icon as its state changes. This icon is referencing its own state.
-
-{% raw %}
-
-```yaml
-switch:
- - platform: command_line
- switches:
-
- driveway_sensor_motion:
- friendly_name: Driveway buiten sensor
- command_on: >
- curl -X PUT -d '{"on":true}' "http://ip_address/api/sensors/27/config/"
- command_off: >
- curl -X PUT -d '{"on":false}' "http://ip_address/api/sensors/27/config/"
- command_state: curl http://ip_address/api/sensors/27/
- value_template: >
- {{value_json.config.on}}
- icon_template: >
- {% if value_json.config.on == true %} mdi:toggle-switch
- {% else %} mdi:toggle-switch-off
- {% endif %}
-```
-
-{% endraw %}
-
-### aREST device
-
-The example below is doing the same as the
-[aREST switch](/integrations/arest#switch).
-The command line tool [`curl`](https://curl.haxx.se/) is used to toggle a pin
-which is controllable through REST.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: command_line
- switches:
- arest_pin_four:
- command_on: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1"
- command_off: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/0"
- command_state: "/usr/bin/curl -X GET http://192.168.1.10/digital/4"
- value_template: '{{ value == "1" }}'
- friendly_name: Kitchen Lightswitch
-```
-
-{% endraw %}
-
-Given this example, in the UI one would see the `friendly_name` of
-"Kitchen Light". However, the `identifier` is `arest_pin_four`, making the
-`entity_id` `switch.arest_pin_four`, which is what one would use in
-[`automation`](/integrations/automation/) or in [API calls](/developers/).
-
-### Shutdown your local host
-
-This switch will shutdown your system that is hosting Home Assistant.
-
-
-This switch will shutdown your host immediately, there will be no confirmation.
-
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: command_line
- switches:
- home_assistant_system_shutdown:
- command_off: "/usr/sbin/poweroff"
-```
-
-### Control your VLC player
-
-This switch will control a local VLC media player
-([Source](https://community.home-assistant.io/t/vlc-player/106)).
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: command_line
- switches:
- vlc:
- command_on: "cvlc 1.mp3 vlc://quit &"
- command_off: "pkill vlc"
-```
-
-### Control Foscam Motion Sensor
-
-This switch will control the motion sensor of Foscam Webcams which Support CGI
-Commands ([Source](https://www.iltucci.com/blog/wp-content/uploads/2018/12/Foscam-IPCamera-CGI-User-Guide-V1.0.4.pdf)).
-This switch supports statecmd,
-which checks the current state of motion detection.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: command_line
- switches:
- foscam_motion:
- command_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"'
- command_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"'
- command_state: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=)"'
- value_template: '{{ value == "1" }}'
-```
-
-{% endraw %}
-
-- Replace admin and password with an "Admin" privileged Foscam user
-- Replace ipaddress with the local IP address of your Foscam
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 1bddf16005d..d1cf316b185 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -212,7 +212,7 @@ unique_id:
value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's state from the `state_topic`. To determine the switches's state result of this template will be compared to `state_on` and `state_off`."
required: false
- type: string
+ type: template
{% endconfiguration %}
diff --git a/source/_integrations/system_log.markdown b/source/_integrations/system_log.markdown
index a4e0d578c07..558c64c85ac 100644
--- a/source/_integrations/system_log.markdown
+++ b/source/_integrations/system_log.markdown
@@ -72,7 +72,7 @@ Traceback (most recent call last):
[...]
```
-The message ("Unable to find integration system_healt"), name (`homeassistant.loader`) and level (`ERROR`) can easily be extracted from the log. The exact timestamp and if there is a stack trace that's shown as well. Here is another error caused by the `google_map` integration with additional output present.
+The message ("Unable to find integration system_healt"), name (`homeassistant.loader`) and level (`ERROR`) can easily be extracted from the log. The exact timestamp and if there is a stack trace that's shown as well.
## Examples
diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown
index d5eae095c2e..d5ef7a003de 100644
--- a/source/_integrations/tag.mqtt.markdown
+++ b/source/_integrations/tag.mqtt.markdown
@@ -23,7 +23,7 @@ topic:
value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a tag ID."
required: false
- type: string
+ type: template
device:
description: "Information about the device this device trigger is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). At least one of identifiers or connections must be present to identify the device."
required: true
diff --git a/source/_integrations/tellduslive.markdown b/source/_integrations/tellduslive.markdown
index b6d980bda60..260d0c25b83 100644
--- a/source/_integrations/tellduslive.markdown
+++ b/source/_integrations/tellduslive.markdown
@@ -24,7 +24,13 @@ ha_platforms:
ha_integration_type: integration
---
-The `tellduslive` integration let you connect to [Telldus Live](https://live.telldus.com). It's cloud platform that connects to your Tellstick Net or Tellstick ZNet connected gear at home.
+The `tellduslive` integration let you connect to the [Telldus Live](https://live.telldus.com) API. It's cloud platform that connects to your Tellstick Net or Tellstick ZNet connected gear at home.
+
+
+
+Note that you need a [Telldus Premium](https://telldus.com/en/telldus-premium/) subscription to access the Cloud API (https://telldus.com/en/important-announcement-english/).
+
+
Local API supports only one device at this stage. Local API is only supported with the Znet Lite products, the older hardware (such as Tellstick Net) does not support local API.
diff --git a/source/_integrations/thethingsnetwork.markdown b/source/_integrations/thethingsnetwork.markdown
index 6a980dca027..8935f20a248 100644
--- a/source/_integrations/thethingsnetwork.markdown
+++ b/source/_integrations/thethingsnetwork.markdown
@@ -15,7 +15,7 @@ ha_integration_type: integration
---
- This integration only supports TTNv2.
+ This integration only supports TTNv2 that has been definitively switched off in 2022 (deprecated).
The `thethingsnetwork` integration allows one to interact with the [The Things Network](https://www.thethingsnetwork.org). This community-driven and open network supports [LoRaWAN](https://www.lora-alliance.org/) for long range (~5 to 15 km) communication with a low bandwidth (51 bytes/message). [Gateways](https://www.thethingsnetwork.org/docs/gateways/) transfers the received data from the sensors to the The Things Network.
diff --git a/source/_integrations/timer.markdown b/source/_integrations/timer.markdown
index dcec1331815..0510cc73331 100644
--- a/source/_integrations/timer.markdown
+++ b/source/_integrations/timer.markdown
@@ -23,7 +23,7 @@ However, automations using the `timer.finished` event **will not** trigger if th
## Configuration
-The preferred way to configure timer helpers is via the user interface at **Settings** -> **Devices & Services** -> **Helpers** and click the add button; next choose the **Timer** option.
+The preferred way to configure timer helpers is via the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}** and click the add button; next choose the {% my config_flow_start domain=timer title="Timer" %} option.
You can also click the following button to be redirected to the Helpers page of your Home Assistant instance.
diff --git a/source/_integrations/torque.markdown b/source/_integrations/torque.markdown
index 5015d4c64ff..0315b754782 100644
--- a/source/_integrations/torque.markdown
+++ b/source/_integrations/torque.markdown
@@ -29,7 +29,7 @@ Under the **Logging Preferences** header:
Under the **Realtime Web Upload** header:
- Check **Upload to web-server**.
-- Enter `https://HOST/api/torque` or `https://@/HOST:PORT/api/torque` as the **Web-server URL**, where `HOST` and `PORT` are your externally accessible Home Assistant HTTP host. To use a Bearer Token, this has to be [SSL/TSL](/docs/ecosystem/certificates/).
+- Enter `https://HOST/api/torque` or `https://@/HOST:PORT/api/torque` as the **Web-server URL**, where `HOST` and `PORT` are your externally accessible Home Assistant HTTP host. To use a Bearer Token, this has to be [SSL/TLS](/docs/ecosystem/certificates/).
- Enable **Send https: Bearer Token** (available since Torque Pro 1.12.46)
- Paste a Long-Lived Access Token from any Home Assistant user in **Set Bearer Token** field.
- Enter an email address in **User Email Address** (this can be any non empty string you like).
diff --git a/source/_integrations/traccar.markdown b/source/_integrations/traccar.markdown
index f93bb96cd3f..f09b7b78931 100644
--- a/source/_integrations/traccar.markdown
+++ b/source/_integrations/traccar.markdown
@@ -80,7 +80,7 @@ monitored_conditions:
required: false
type: list
event:
- description: "Traccar events to include in the scan and fire within Home Assistant. *NOTE* For more info regarding Traccar events please refer to Traccar's documentation: https://www.traccar.org/documentation/events/."
+ description: "Traccar events to include in the scan and fire within Home Assistant. *NOTE* For more info regarding Traccar events please refer to [Traccar's documentation](https://www.traccar.org/events/)."
required: false
type: list
keys:
@@ -163,7 +163,7 @@ device_tracker:
monitored_conditions: ['alarm', 'mycomputedattribute']
```
-The parameter `event` allows you to import events from the traccar platform (https://www.traccar.org/documentation/events/) and fire them in your Home Assistant. It accepts a list of events to be monitored and imported and each event must be listed in lowercase snakecase. The events will be fired with the same event name defined in the aforementioned list preceded by the prefix `traccar_`. For example if you need to import the Traccar events `deviceOverspeed` and `deviceFuelDrop` in Home Assistant, you need to fill the `event` parameter with:
+The parameter `event` allows you to import [events](https://www.traccar.org/events/) from the traccar platform and fire them in your Home Assistant. It accepts a list of events to be monitored and imported and each event must be listed in lowercase snakecase. The events will be fired with the same event name defined in the aforementioned list preceded by the prefix `traccar_`. For example if you need to import the Traccar events `deviceOverspeed` and `deviceFuelDrop` in Home Assistant, you need to fill the `event` parameter with:
```yaml
device_tracker:
diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown
index 22d05043ac6..4b98b40d446 100644
--- a/source/_integrations/unifiprotect.markdown
+++ b/source/_integrations/unifiprotect.markdown
@@ -50,15 +50,15 @@ The UniFi Protect integration adds support for retrieving Camera feeds and Senso
This Integration supports all UniFi OS Consoles that can run UniFi Protect. Currently, this includes:
-* Any UniFi Protect Network Video Recorder (**UNVR** or **UNVRPRO**)
-* Any UniFi "Dream" device (**UDMPRO**, **UDR**, or **UDMSE**), _except the base UniFi Dream Machine/UDM_
-* UniFi Cloud Key Gen2 Plus (**UCKP**) firmware version v2.0.24+
+* Any UniFi Protect Network Video Recorder (**[UNVR](https://store.ui.com/collections/unifi-protect-nvr/products/unvr)** or **[UNVRPRO](https://store.ui.com/collections/unifi-protect-nvr/products/unvr-pro)**)
+* Any UniFi "Dream" device (**[UDMPRO](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/udm-pro)**, **[UDR](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-router)**, or **[UDMSE](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-machine-se)**), _except the base UniFi Dream Machine/UDM_
+* UniFi Cloud Key Gen2 Plus (**[UCKP](https://store.ui.com/collections/unifi-protect-nvr/products/unifi-cloudkey-plus)**) firmware version v2.0.24+
-UCKP with Firmware v1.x **do NOT run UniFi OS**, you must upgrade to firmware `v2.0.24` or newer.
+UCKP with Firmware v1.x **do NOT run UniFi OS**, you must upgrade to firmware `[v2.0.24](https://community.ui.com/releases/UniFi-Cloud-Key-Firmware-2-0-24/b6684f1e-8542-4660-bc0b-74e0634448e8)` or newer.
### Software Support
-The absolute **minimal** software version is `v1.20.0` for UniFi Protect. If you have an older version, you will get errors trying to set up the integration. However, the general advice is the latest 2 minor versions of UniFi Protect and hardware supported by those are supported.
+The absolute **minimal** software version is `[v1.20.0](https://community.ui.com/releases/UniFi-Protect-Application-1-20-0/d43c0905-3fb4-456b-a7ca-73aa830cb011)` for UniFi Protect. If you have an older version, you will get errors trying to set up the integration. However, the general advice is the latest 2 minor versions of UniFi Protect and hardware supported by those are supported.
#### About UniFi Early Access
@@ -71,18 +71,18 @@ Using Early Access versions will likely cause your UniFi Protect integration to
#### Downgrading UniFi Protect
-In the event you accidentally upgrade to an Early Access version of UniFi Protect you can downgrade to a stable version by either [restoring a backup](https://help.ui.com/hc/en-us/articles/360008976393-UniFi-Backups-and-Migration) or by manually downgrading your UniFi Protect.
+In the event you accidentally upgrade to an Early Access version of UniFi Protect you can downgrade to a stable version by either [restoring a backup](https://help.ui.com/hc/articles/360008976393) or by manually downgrading your UniFi Protect.
##### Manually Downgrade
-Manually downgrading comes with its own risks and it is not recommended unless you do not have a backup available. Some Protect versions cannot be downgraded from (like `v2.0` to `v1.21`). To downgrade, you can access your [UniFi OS Console via SSH](https://help.ui.com/hc/en-us/articles/204909374#h_01F8G1NSFWE9GWXMT977VQEP8V) and then do the following:
+Manually downgrading comes with its own risks and it is not recommended unless you do not have a backup available. Some Protect versions cannot be downgraded from (like `v2.0` to `v1.21`). To downgrade, you can access your [UniFi OS Console via SSH](https://help.ui.com/hc/articles/204909374) and then do the following:
```bash
-# run this command first _only_ if you are on a 1.x firmware of the UDM Pro
-# it is not needed for the UDM SE, UNVR, etc.
+# Run this command first _only_ if you are on a 1.x firmware of the UDM Pro.
+# It is not needed for the UDM SE, UNVR, etc.
unifi-os shell
-# downgrade UniFi Protect
+# Downgrade UniFi Protect.
apt-get update
apt-get install --reinstall --allow-downgrades unifi-protect=2.0.0~beta.5 -y
```
@@ -91,7 +91,7 @@ You can replace `2.0.0~beta.5` with whatever version of UniFi Protect you want t
-If you want to downgrade to another Early Access version, you must have [Remote Access enabled](https://help.ui.com/hc/en-us/articles/115012240067-UniFi-How-to-enable-remote-access) and have the Early Access release channel enabled.
+If you want to downgrade to another Early Access version, you must have [Remote Access enabled](https://help.ui.com/hc/articles/115012240067) and have the Early Access release channel enabled.
@@ -108,13 +108,13 @@ use has.
2. In the upper right corner, click on _Add User_.
3. Fill out the fields for your user. Be sure the role you assign to the user grants them access to at least one or
more UniFi Protect devices.
-4. Click _Add_ in the bottom Right.
+4. Click _Add_ in the bottom right.

### Camera Streams
-The Integration uses the RTSP(S) Streams as the Live Feed source, so this needs to be enabled on each camera to ensure
+The integration uses the RTSP(S) Streams as the Live Feed source, so this needs to be enabled on each camera to ensure
you can stream your camera in Home Assistant. This may already be enabled by default, but it is recommended to just
check that this is done. To check and enable the feature:
@@ -145,8 +145,8 @@ and in many cases, get a read-only sensor instead of an editable switch/select/n
**Smart Detections**: The following cameras have Smart Detections:
-* All "AI" series cameras. This includes the AI 360 and the AI Bullet.
-* All "G4" series cameras. This includes the G4 Doorbell, G4 Bullet, G4 Pro and G4 Instant.
+* All "AI" series cameras. This includes the [AI 360](https://store.ui.com/collections/unifi-protect/products/unifi-protect-ai-360) and the [AI Bullet](https://store.ui.com/collections/unifi-protect/products/uvc-ai-bullet).
+* All "G4" series cameras. This includes the [G4 Doorbell](https://store.ui.com/collections/unifi-protect/products/uvc-g4-doorbell), [G4 Bullet](https://store.ui.com/collections/unifi-protect/products/uvc-g4-bullet), [G4 Pro](https://store.ui.com/collections/unifi-protect/products/uvc-g4-pro) and [G4 Instant](https://store.ui.com/collections/unifi-protect/products/camera-g4-instant).
G3 Series cameras do _not_ have Smart detections.
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index c6af67994ed..a141b9b6f62 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -72,7 +72,7 @@ availability_topic:
battery_level_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the battery level of the vacuum. This is required if `battery_level_topic` is set.
required: false
- type: string
+ type: template
battery_level_topic:
description: The MQTT topic subscribed to receive battery level values from the vacuum.
required: false
@@ -80,7 +80,7 @@ battery_level_topic:
charging_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the charging state of the vacuum. This is required if `charging_topic` is set.
required: false
- type: string
+ type: template
charging_topic:
description: The MQTT topic subscribed to receive charging state values from the vacuum.
required: false
@@ -88,7 +88,7 @@ charging_topic:
cleaning_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the cleaning state of the vacuum. This is required if `cleaning_topic` is set.
required: false
- type: string
+ type: template
cleaning_topic:
description: The MQTT topic subscribed to receive cleaning state values from the vacuum.
required: false
@@ -100,7 +100,7 @@ command_topic:
docked_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the docked state of the vacuum. This is required if `docked_topic` is set.
required: false
- type: string
+ type: template
docked_topic:
description: The MQTT topic subscribed to receive docked state values from the vacuum.
required: false
@@ -123,7 +123,7 @@ entity_category:
error_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define potential error messages emitted by the vacuum. This is required if `error_topic` is set.
required: false
- type: string
+ type: template
error_topic:
description: The MQTT topic subscribed to receive error messages from the vacuum.
required: false
@@ -135,7 +135,7 @@ fan_speed_list:
fan_speed_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the fan speed of the vacuum. This is required if `fan_speed_topic` is set.
required: false
- type: string
+ type: template
fan_speed_topic:
description: The MQTT topic subscribed to receive fan speed values from the vacuum.
required: false
diff --git a/source/_integrations/venstar.markdown b/source/_integrations/venstar.markdown
index 28a1935d284..d42f794c171 100644
--- a/source/_integrations/venstar.markdown
+++ b/source/_integrations/venstar.markdown
@@ -49,7 +49,29 @@ The following values are supported for the preset_mode state attribute:
Note - Please ensure that you update your thermostat to the latest firmware. Initially tested on firmware 5.10 and currently VH6.79.
-Local API mode needs to be enabled via the thermostat's *Menu > WiFi > Local API Options > Local API - ON*
+### Enabling Local API
+Local API mode needs to be enabled on the thermostat itself. It cannot be enabled using the Venstar mobile apps or Skyport cloud service. Exact steps vary across different [series](https://venstar.com/thermostats/) of thermostats:
+
+- [ColorTouch](https://venstar.com/thermostats/colortouch/)
+ - **Menu** > **WiFi** > **Local API Option** > **[Local API - ON](https://www.youtube.com/watch?v=kB_HcJ3kqCg&t=51s)**.
+
+- [EXPLORER](https://venstar.com/thermostats/explorer/) / [EXPLORER IAQ](https://venstar.com/thermostats/explorer-iaq/)
+ - Press **SETUP**.
+ - Press **MODE** repeatedly until you see [LOCAL API](https://www.youtube.com/watch?v=HRmWFwfQAhU&t=276s).
+ - Press **WARMER** to toggle "ON".
+ - Press **SETUP** to exit.
+
+- [EXPLORER Mini](https://venstar.com/thermostats/explorermini/)
+ - Press and hold **MODE** + **FAN** together for 5 seconds.
+ - Press **MODE** repeatedly until you see "API".
+ - Press **WARMER** to toggle "ON".
+ - Press **MODE** + **FAN** together to exit.
+
+If the local API is successfully enabled on the thermostat, you should see some basic API info when you navigate to its IP address in a web browser:
+
+```json
+{"api_ver":7,"type":"commercial","model":"VYG-4800","firmware":"2.22.19"}
+```
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/websocket_api.markdown b/source/_integrations/websocket_api.markdown
index b204001c40d..1a54d1faec5 100644
--- a/source/_integrations/websocket_api.markdown
+++ b/source/_integrations/websocket_api.markdown
@@ -13,7 +13,7 @@ ha_platforms:
ha_integration_type: system
---
-The `websocket_api` integration set up a WebSocket API and allows one to interact with a Home Assistant instance that is running headless. This integration depends on the [`http` component](/integrations/http/).
+The `websocket_api` integration set up a WebSocket API and allows one to interact with a Home Assistant instance that is running headless. This integration depends on the [`http` integration](/integrations/http/).
## Configuration
diff --git a/source/_integrations/xiaomi_tv.markdown b/source/_integrations/xiaomi_tv.markdown
index f99056084e0..54f5e2bd581 100644
--- a/source/_integrations/xiaomi_tv.markdown
+++ b/source/_integrations/xiaomi_tv.markdown
@@ -14,6 +14,7 @@ ha_integration_type: integration
---
The `xiaomi_tv` platform allows you to control a [Xiaomi TV](https://www.mi.com/global/mitv3s/65flat/).
+The Xiaomi TV integration only supports Xiaomi TVs running MIUI.
You need to make sure the TV is connected to the internet, and that your Home Assistant instance is on the same network.
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 55ded015f2a..dd30aaf1285 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -94,11 +94,11 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- Silicon Labs EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- [Home Assistant SkyConnect](/skyconnect/)
- [ITead SONOFF Zigbee 3.0 USB Dongle Plus Model "ZBDongle-E" (EFR32MG21 variant)](https://itead.cc/product/zigbee-3-0-usb-dongle/)
- - [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs-usb-adapter.html)/[POPP ZB-Stick](https://shop.zwave.eu/detail/index/sArticle/2496) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
+ - [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs-usb-adapter.html)/POPP ZB-Stick (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs-zigbee-shield.html) (Note! Not a must but recommend [upgrade the EmberZNet NCP application firmware](https://github.com/Elelabs/elelabs-zigbee-ezsp-utility))
- Texas Instruments based radios (via the [zigpy-znp](https://github.com/zigpy/zigpy-znp) library for zigpy)
- - [CC2652P/CC2652R/CC2652RB USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
- - [CC1352P/CC1352R USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
+ - [CC2652P/CC2652R/CC2652RB USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/guide/adapters/)
+ - [CC1352P/CC1352R USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/guide/adapters/)
- dresden elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy)
- [ConBee II (a.k.a. ConBee 2) USB adapter from dresden elektronik](https://phoscon.de/conbee2)
- [RaspBee II (a.k.a. RaspBee 2) Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee2)
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 62e4b075fd0..1555213f195 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -873,3 +873,16 @@ Z-Wave JS writes details to its logs. To access these logs go to the following.
**Settings** -> **Devices & Services** -> **Integrations(tab)** -> **Z-Wave (CONFIGURE)** -> **Logs(tab)**
You need to keep this browser tab open for logging to be active.
+
+## Z-Wave terminology
+
+For some of the concepts, you may come across different terminology in Z-Wave than in Home Assistant.
+The table below provides equivalents for some of those terms.
+
+| Z-Wave functionality | Home Assistant |
+| -------------------------------------- | ------------------------------------------------------------------------|
+| inclusion | add |
+| exclusion | remove |
+| barrier operator | cover |
+| window covering | cover |
+| multilevel switch | represented by different entity types: cover, fan, dimmer, etc. |
diff --git a/source/_posts/2020-02-19-community-highlights.markdown b/source/_posts/2020-02-19-community-highlights.markdown
index bd692f93ce3..f3ffe84844a 100644
--- a/source/_posts/2020-02-19-community-highlights.markdown
+++ b/source/_posts/2020-02-19-community-highlights.markdown
@@ -66,7 +66,7 @@ mysql -D homeassistant -e "SELECT entity_id, state, last_updated FROM states LIM
## Beta time!
-Today we are releasing the first beta of Home Assistant Core 0.106. It is packed with awesome features. For a sneak peek of what is coming, check the [beta release notes](https://rc.home-assistant.io/latest-release-notes/).
+Today we are releasing the first beta of Home Assistant Core 0.106. It is packed with awesome features. For a sneak peek of what is coming, check the [beta release notes](/blog/2020/02/26/release-106/).
I'm personally most excited about the extended safe mode. It will guarantee that the frontend will always load, no matter how broken your configuration is.
diff --git a/source/_posts/2020-03-15-community-highlights.markdown b/source/_posts/2020-03-15-community-highlights.markdown
index b3282669102..e57486289bd 100644
--- a/source/_posts/2020-03-15-community-highlights.markdown
+++ b/source/_posts/2020-03-15-community-highlights.markdown
@@ -34,7 +34,7 @@ setup has a total of 5 Home Assistant instances, controlling 7x marine aquariums
Those are some big views Kevin! I bet you will be happy with the new Lovelace
features that are coming in Home Assistant Core 0.107. It will help
you to trim down that a bit, into multiple Lovelace Dashboards (now in
-[beta, sneak peak?](https://rc.home-assistant.io/latest-release-notes/)).
+[beta, sneak peak?](/blog/2020/03/18/release-107/)).
[Click here to check out Kevin's post on our Facebook group.](https://www.facebook.com/groups/HomeAssistant/permalink/2597624533842234/)
diff --git a/source/_posts/2023-04-05-release-20234.markdown b/source/_posts/2023-04-05-release-20234.markdown
index 3474a42018b..8aefff9d92e 100644
--- a/source/_posts/2023-04-05-release-20234.markdown
+++ b/source/_posts/2023-04-05-release-20234.markdown
@@ -48,6 +48,8 @@ Happy Easter! 🐣 and enjoy the release!
- [Release 2023.4.2 - April 8](#release-202342---april-8)
- [Release 2023.4.3 - April 12](#release-202343---april-12)
- [Release 2023.4.4 - April 13](#release-202344---april-13)
+- [Release 2023.4.5 - April 17](#release-202345---april-17)
+- [Release 2023.4.6 - April 21](#release-202346---april-21)
- [Need help? Join the community!](#need-help-join-the-community)
- [Breaking Changes](#breaking-changes)
- [Farewell to the following](#farewell-to-the-following)
@@ -786,6 +788,152 @@ The following integrations are now available via the Home Assistant UI:
[homewizard docs]: /integrations/homewizard/
[lifx docs]: /integrations/lifx/
+## Release 2023.4.5 - April 17
+
+- Add SetSynchronizationPoint fallback to onvif ([@GrumpyMeow] - [#86400]) ([onvif docs])
+- Fix SharkIQ token expiration ([@funkybunch] - [#89357]) ([sharkiq docs])
+- Reolink prevent ONVIF push being lost due to ConnectionResetError ([@starkillerOG] - [#91070]) ([reolink docs])
+- Add missing mock in sharkiq tests ([@epenet] - [#91325]) ([sharkiq docs])
+- Tado set_water_heater_timer should use water_heater domain ([@rich-kettlewell] - [#91364]) ([tado docs])
+- Fix listener running in foreground for System Bridge integration ([@timmo001] - [#91391]) ([system_bridge docs])
+- Bump onvif-zeep-async to 1.2.5 ([@bdraco] - [#91399]) ([onvif docs])
+- Fix attribute reporting config failures in ZHA ([@puddly] - [#91403]) ([zha docs])
+- Save Thread dataset store when changing preferred dataset ([@emontnemery] - [#91411]) ([thread docs])
+- Bump env_canada to v0.5.33 ([@michaeldavie] - [#91468]) ([environment_canada docs])
+- Fix creating onvif pull point subscriptions when InitialTerminationTime is required ([@bdraco] - [#91470]) ([onvif docs]) (dependency)
+- Bump onvif-zeep-async to 1.2.11 ([@bdraco] - [#91472]) ([onvif docs]) (dependency)
+- Handle a few more transient onvif errors ([@bdraco] - [#91473]) ([onvif docs])
+- Reolink ONVIF move read to primary callback ([@starkillerOG] - [#91478]) ([reolink docs])
+- Fix onvif failing to reload ([@bdraco] - [#91482]) ([onvif docs])
+- Resolve issue with switchbot blind tilt devices getting stuck in opening/closing state ([@BTMorton] - [#91495]) ([switchbot docs]) (dependency)
+- Fix state mapping in fibaro climate ([@rappenze] - [#91505]) ([fibaro docs])
+- Bump unifiprotect to 4.8.1 ([@AngellusMortis] - [#91522]) ([unifiprotect docs]) (dependency)
+
+[#86400]: https://github.com/home-assistant/core/pull/86400
+[#89357]: https://github.com/home-assistant/core/pull/89357
+[#90855]: https://github.com/home-assistant/core/pull/90855
+[#90956]: https://github.com/home-assistant/core/pull/90956
+[#91070]: https://github.com/home-assistant/core/pull/91070
+[#91111]: https://github.com/home-assistant/core/pull/91111
+[#91316]: https://github.com/home-assistant/core/pull/91316
+[#91325]: https://github.com/home-assistant/core/pull/91325
+[#91356]: https://github.com/home-assistant/core/pull/91356
+[#91364]: https://github.com/home-assistant/core/pull/91364
+[#91391]: https://github.com/home-assistant/core/pull/91391
+[#91399]: https://github.com/home-assistant/core/pull/91399
+[#91403]: https://github.com/home-assistant/core/pull/91403
+[#91411]: https://github.com/home-assistant/core/pull/91411
+[#91468]: https://github.com/home-assistant/core/pull/91468
+[#91470]: https://github.com/home-assistant/core/pull/91470
+[#91472]: https://github.com/home-assistant/core/pull/91472
+[#91473]: https://github.com/home-assistant/core/pull/91473
+[#91478]: https://github.com/home-assistant/core/pull/91478
+[#91482]: https://github.com/home-assistant/core/pull/91482
+[#91495]: https://github.com/home-assistant/core/pull/91495
+[#91505]: https://github.com/home-assistant/core/pull/91505
+[#91522]: https://github.com/home-assistant/core/pull/91522
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@BTMorton]: https://github.com/BTMorton
+[@GrumpyMeow]: https://github.com/GrumpyMeow
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@funkybunch]: https://github.com/funkybunch
+[@michaeldavie]: https://github.com/michaeldavie
+[@puddly]: https://github.com/puddly
+[@rappenze]: https://github.com/rappenze
+[@rich-kettlewell]: https://github.com/rich-kettlewell
+[@starkillerOG]: https://github.com/starkillerOG
+[@timmo001]: https://github.com/timmo001
+[actiontec docs]: /integrations/actiontec/
+[advantage_air docs]: /integrations/advantage_air/
+[airly docs]: /integrations/airly/
+[environment_canada docs]: /integrations/environment_canada/
+[fibaro docs]: /integrations/fibaro/
+[frontend docs]: /integrations/frontend/
+[homewizard docs]: /integrations/homewizard/
+[lifx docs]: /integrations/lifx/
+[onvif docs]: /integrations/onvif/
+[reolink docs]: /integrations/reolink/
+[sharkiq docs]: /integrations/sharkiq/
+[switchbot docs]: /integrations/switchbot/
+[system_bridge docs]: /integrations/system_bridge/
+[tado docs]: /integrations/tado/
+[thread docs]: /integrations/thread/
+[unifiprotect docs]: /integrations/unifiprotect/
+[zha docs]: /integrations/zha/
+
+## Release 2023.4.6 - April 21
+
+- Add a guard against selecting all entities in `state_changes_during_period` ([@bdraco] - [#91585]) ([recorder docs])
+- Fix tasks with no due date from not triggering `on` calendar state. ([@boralyl] - [#91196]) ([todoist docs])
+- Fix Insteon thermostat issue ([@teharris1] - [#91568]) ([insteon docs])
+- Handle UnsupportedError in HomeWizard ([@DCSBL] - [#91608]) ([homewizard docs])
+- Bump renault-api to 0.1.13 ([@epenet] - [#91609]) ([renault docs])
+- Handle long format context UUIDs during migration ([@bdraco] - [#91657]) ([recorder docs])
+- Bump aioshelly to 5.3.2 ([@thecode] - [#91679]) ([shelly docs])
+- Fallback to generating a new ULID on migraiton if context is missing or invalid ([@bdraco] - [#91704]) ([recorder docs])
+- Bump python-songpal dependency ([@rytilahti] - [#91708]) ([songpal docs])
+- Do not wait for mqtt at startup mqtt_statestream ([@jbouwh] - [#91721]) ([mqtt_statestream docs])
+- Bump pylitterbot to 2023.4.0 ([@natekspencer] - [#91759]) ([litterrobot docs])
+- Bump pysml to 0.0.10 ([@StephanU] - [#91773]) ([edl21 docs])
+- Relax the constraint that events must have a consistent timezone for start/end ([@allenporter] - [#91788]) ([google docs]) ([calendar docs])
+- Disallow uploading files to bypass the media dirs ([@balloob] - [#91817]) ([media_source docs])
+
+[#90855]: https://github.com/home-assistant/core/pull/90855
+[#90956]: https://github.com/home-assistant/core/pull/90956
+[#91111]: https://github.com/home-assistant/core/pull/91111
+[#91196]: https://github.com/home-assistant/core/pull/91196
+[#91316]: https://github.com/home-assistant/core/pull/91316
+[#91356]: https://github.com/home-assistant/core/pull/91356
+[#91544]: https://github.com/home-assistant/core/pull/91544
+[#91568]: https://github.com/home-assistant/core/pull/91568
+[#91585]: https://github.com/home-assistant/core/pull/91585
+[#91608]: https://github.com/home-assistant/core/pull/91608
+[#91609]: https://github.com/home-assistant/core/pull/91609
+[#91657]: https://github.com/home-assistant/core/pull/91657
+[#91679]: https://github.com/home-assistant/core/pull/91679
+[#91704]: https://github.com/home-assistant/core/pull/91704
+[#91708]: https://github.com/home-assistant/core/pull/91708
+[#91721]: https://github.com/home-assistant/core/pull/91721
+[#91759]: https://github.com/home-assistant/core/pull/91759
+[#91773]: https://github.com/home-assistant/core/pull/91773
+[#91788]: https://github.com/home-assistant/core/pull/91788
+[#91817]: https://github.com/home-assistant/core/pull/91817
+[@DCSBL]: https://github.com/DCSBL
+[@StephanU]: https://github.com/StephanU
+[@allenporter]: https://github.com/allenporter
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@boralyl]: https://github.com/boralyl
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@natekspencer]: https://github.com/natekspencer
+[@rytilahti]: https://github.com/rytilahti
+[@teharris1]: https://github.com/teharris1
+[@thecode]: https://github.com/thecode
+[actiontec docs]: /integrations/actiontec/
+[advantage_air docs]: /integrations/advantage_air/
+[airly docs]: /integrations/airly/
+[calendar docs]: /integrations/calendar/
+[edl21 docs]: /integrations/edl21/
+[frontend docs]: /integrations/frontend/
+[google docs]: /integrations/google/
+[homewizard docs]: /integrations/homewizard/
+[insteon docs]: /integrations/insteon/
+[lifx docs]: /integrations/lifx/
+[litterrobot docs]: /integrations/litterrobot/
+[media_source docs]: /integrations/media_source/
+[mqtt_statestream docs]: /integrations/mqtt_statestream/
+[recorder docs]: /integrations/recorder/
+[renault docs]: /integrations/renault/
+[shelly docs]: /integrations/shelly/
+[songpal docs]: /integrations/songpal/
+[todoist docs]: /integrations/todoist/
+
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
@@ -923,9 +1071,11 @@ mappings configured in the **service**.
{% details "Home Connect" %}
-Not really a breaking change, but as of now, only program entities are
-created for the programs your device supports. You might need to manually remove
-old/existing entities that are no longer provided.
+In order to obtain an up-to-date list of compatible programs for your appliances, it will be necessary to reconfigure the integration.
+
+Please note that due to limitations on the Home Connect side, it is important to have your appliances **Turned on** during the reconfiguration process.
+
+This action is a one-time requirement.
([@stickpin] - [#88801]) ([documentation](/integrations/home_connect))
diff --git a/source/_posts/2023-04-18-home-assistant-os-release-10.markdown b/source/_posts/2023-04-18-home-assistant-os-release-10.markdown
new file mode 100644
index 00000000000..1f8cdc8d09f
--- /dev/null
+++ b/source/_posts/2023-04-18-home-assistant-os-release-10.markdown
@@ -0,0 +1,111 @@
+---
+layout: post
+title: "Home Assistant OS 10: Better memory management and new board support"
+description: "Home Assistant OS 10 released with better memory management and Hardkernel ODROID-M1 board support!"
+date: 2023-04-18 00:00:00
+date_formatted: "April 18, 2023"
+author: Stefan Agner
+comments: true
+categories:
+ - Announcements
+og_image: /images/blog/2023-04-18-os10/social.png
+---
+
+
+
+
+
+
+**Highlights**:
+
+- Support for Hardkernel ODROID-M1
+- Improved data disk feature:
+ - Improved reliability
+ - Move from one data disk to a new data disk is now supported
+- Improved memory management to improve overall device performance, especially in low memory situations
+- Updated software packages: Linux, Docker, BlueZ, NetworkManager
+
+For existing installations, no manual intervention is needed! You can safely
+update without reading these rather technical release notes.
+
+## Table of contents
+
+- [Table of contents](#table-of-contents)
+- [New board support: Hardkernel ODROID-M1](#new-board-support-hardkernel-odroid-m1)
+- [Improved data disk feature](#improved-data-disk-feature)
+- [Advanced memory management](#advanced-memory-management)
+- [Updated software packages](#updated-software-packages)
+
+## New board support: Hardkernel ODROID-M1
+
+Home Assistant OS 10 supports the Hardkernel ODROID-M1 single board computer!
+Most notably, the ODROID-M1 supports NVMe SSD storage natively, which makes it
+another great choice to run Home Assistant on. With its quad-core CPU with up
+to 2 GHz and up to 8 GB of memory it is suitable even for demanding Home
+Assistant installations.
+
+Currently, Home Assistant can be booted off an SD-card or an eMMC. Note however
+that a new boot firmware (Petitboot) is required to boot from eMMC (see
+the [board-specific documentation](https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/hardkernel/odroid-m1.md)). NVMe SSD boot is currently not supported
+by the boot firmware. However, an NVMe SSD can be used through the data disk
+feature.
+
+Buy ODROID-M1 at [Ameridroid](https://ameridroid.com/products/odroid-m1?ref=eeb6nfw07e) or directly at [Hardkernel](https://www.hardkernel.com/shop/odroid-m1-with-4gbyte-ram/)
+
+

+
+## Improved data disk feature
+
+The data disk feature allows extending storage by adding an external disk.
+When using the data disk feature, all commonly read and written data is moved
+to that storage, just Home Assistant OS itself remains on the existing storage
+(for example, SD-card or eMMC). Home Assistant OS is a read-only operating system — the
+OS partitions are only written to when updating the operating system. This makes
+sure that there is minimal wear on the existing storage.
+
+In this OS release, together with the latest version of the Supervisor, the
+data disk feature gets more user-friendly: The data disk choice now lists the model of available data disks. Disk will now be reliably detected and available as the new data disk in certain edge cases were they previously weren't.
+
+It is also possible to move from one data disk to another:
+Simply connect another disk, and go to the **Move data disk** dialog again. On
+reboot, the data will be moved and the old data disk can be detached. You can find the move data disk feature under **Settings** > **System** > **Storage** in
+the top right overflow menu.
+
+

+
+## Advanced memory management
+
+With Home Assistant OS 10 low memory, devices will generally perform better.
+Firstly, we moved from zram to zswap, which allows us to use the storage as an
+actual swap space. We’ve tuned the memory management to minimize the number of
+writes to storage (to prevent unnecessary wear on SD-cards and other flash
+memory-based storage).
+
+We’ve also improved reliability and responsiveness in low-memory situations:
+Home Assistant OS uses a new memory management mechanism named Multi-Gen LRU
+along with thrashing prevention. This makes Home Assistant OS recover quickly
+from a low-memory situation and remain responsive.
+
+In general, we recommend using a board with at least 1 GB of memory and make
+sure to stay well below 80% memory utilization. You can monitor the overall
+memory utilization under **Settings** > **System** > **Hardware**.
+
+## Updated software packages
+
+Home Assistant OS is built using the latest release of Buildroot 2023.02. It
+comes with the latest Linux kernel with long-term support (6.1). This means
+updated drivers and better device support. It uses the latest version of
+Docker 23.0.3, our container engine powering the Supervisor and our add-ons.
+The latest version of the Bluetooth package BlueZ 5.66 comes with various bug
+fixes for improved communication with Bluetooth devices. Network Manager
+1.40.16 has proven to work more reliably with third party Thread border routers,
+specifically with Apple border routers. We also improved the IPv6 Neighbor
+Discovery support on Home Assistant OS specifically for Thread: Home Assistant
+OS will now quickly discover when border routers disappear from the network and
+use alternative border routers, if available.
+
+We hope you enjoy Home Assistant OS 10.0! If you have any questions or feedback,
+please let us know.
+
+_Some product links are affiliate links and we earn a small commission when products are bought._
diff --git a/source/_redirects b/source/_redirects
index 34b28af854c..9e7e5b5c2bc 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -1,5 +1,10 @@
+---
+layout: null
+---
+
# These redirects are handled by Netlify
#
+{% assign recent_release_post = site.categories['Core'].first %}
# General use redirects
/join-chat https://discord.gg/home-assistant
@@ -12,6 +17,9 @@
/issues https://github.com/home-assistant/core/issues
/community https://community.home-assistant.io/
+# Link to latest release note
+/latest-release-notes/ {{ recent_release_post.url }}{{ site.patch_version_notes }} 302!
+
# Matter workshop June 2022
/skyconnect-interest https://docs.google.com/forms/d/e/1FAIpQLScEjHSBJszUZfgO3MIDO51IHr3Oeohcs8BLpRIjY1liJ58IpA/viewform?usp=sf_link
@@ -156,6 +164,10 @@
/integrations/light.group /integrations/group
/integrations/media_player.group /integrations/group
/integrations/notify.group /integrations/group#notify-groups
+/integrations/cover.command_line /integrations/command_line#Cover
+/integrations/notify.command_line /integrations/command_line#Notify
+/integrations/sensor.command_line /integrations/command_line#Sensor
+/integrations/switch.command_line /integrations/command_line#Switch
/components/air_pollutants.* /integrations/:splat
/components/air_quality.* /integrations/:splat
diff --git a/source/blue/index.html b/source/blue/index.html
index 3042895b314..7925a686254 100644
--- a/source/blue/index.html
+++ b/source/blue/index.html
@@ -34,6 +34,10 @@ frontpage_image: /images/frontpage/blue-frontpage.jpg
The limited edition Home Assistant Blue bundle is hardware that is affordable
and fast, packed in a custom-designed and gorgeous case, and powered by the most powerful home
automation software on the planet: Home Assistant.
+
+
Discontinued! The edition of the Blue was — limited. We are out of stock, with no plans to relaunch this edition.
+
Sorry you missed it. The new kid on the block is Home Assistant Yellow.
+
You know what else is blue, pretty, and has our logo on it? Home Assistant SkyConnect.