` try changing this to the legacy `command_and_search`."
required: false
type: string
{% endconfiguration %}
diff --git a/source/_integrations/huawei_lte.markdown b/source/_integrations/huawei_lte.markdown
index 97650508c103..26e625f01471 100644
--- a/source/_integrations/huawei_lte.markdown
+++ b/source/_integrations/huawei_lte.markdown
@@ -102,14 +102,7 @@ Resume suspended integration.
## Tested devices
-Devices we know to be working with this integration based on the [documentation of used libraries](https://github.com/Salamek/huawei-lte-api/#huawei-lte-api) and reports by users:
+It is the intention and highly likely that this integration works with all devices
+[reported working with the underlying huawei-lte-api library](https://github.com/Salamek/huawei-lte-api#tested-on).
-- Huawei B310s-22
-- Huawei B315s-936
-- Huawei B525s-23a
-- Huawei E5186s-22a
-- Huawei B618
-- Huawei B529s-23a
-- Huawei B535s
-
-This is not a complete list. The integration can probably connect to other Huawei LTE devices running similar firmware.
+It will not work on ones noted as not working in that list.
diff --git a/source/_integrations/humidifier.mqtt.markdown b/source/_integrations/humidifier.mqtt.markdown
index ad043a839014..7e228d764e9f 100644
--- a/source/_integrations/humidifier.mqtt.markdown
+++ b/source/_integrations/humidifier.mqtt.markdown
@@ -277,7 +277,7 @@ retain:
type: boolean
default: true
state_topic:
- description: The MQTT topic subscribed to receive state updates. A "None" payload resets to an `unknown` state. An empty payload is ignored.
+ description: The MQTT topic subscribed to receive state updates. A "None" payload resets to an `unknown` state. An empty payload is ignored. Valid state payloads are `OFF` and `ON`. Custom `OFF` and `ON` values can be set with the `payload_off` and `payload_on` config options.
required: false
type: string
state_value_template:
diff --git a/source/_integrations/imap.markdown b/source/_integrations/imap.markdown
index c1403b4e91d1..eb34b77664f8 100644
--- a/source/_integrations/imap.markdown
+++ b/source/_integrations/imap.markdown
@@ -145,7 +145,7 @@ Increasing the default maximum message size (2048 bytes) could have a negative i
```yaml
template:
- - triggers:
+ - trigger:
- trigger: event
event_type: "imap_content"
id: "custom_event"
@@ -229,7 +229,7 @@ The following example shows the usage of the IMAP email content sensor to scan t
```yaml
template:
- - triggers:
+ - trigger:
- trigger: event
event_type: "imap_content"
id: "custom_event"
@@ -267,7 +267,7 @@ Below is the template sensor which extracts the information from the body of the
```yaml
template:
- - triggers:
+ - trigger:
- trigger: event
event_type: "imap_content"
id: "custom_event"
@@ -316,7 +316,7 @@ The example below will only set the state to the subject of the email of templat
```yaml
template:
- - triggers:
+ - trigger:
- trigger: event
event_type: "imap_content"
id: "custom_event"
diff --git a/source/_integrations/lamarzocco.markdown b/source/_integrations/lamarzocco.markdown
index 279883f2e40f..dbd69c6456a0 100644
--- a/source/_integrations/lamarzocco.markdown
+++ b/source/_integrations/lamarzocco.markdown
@@ -3,6 +3,11 @@ title: La Marzocco
description: Instructions on how to integrate your La Marzocco coffee machine with Home Assistant.
ha_release: 2024.2
ha_category:
+ - Binary sensor
+ - Calendar
+ - Number
+ - Select
+ - Sensor
- Switch
- Update
ha_iot_class: Cloud Polling
@@ -24,12 +29,15 @@ ha_codeowners:
ha_integration_type: device
---
-This integration interacts with [La Marzocco coffee machines](https://lamarzocco.com/it/en/) through calls to the LaMarzocco cloud API. Optionally, local API calls, which include a WebSocket connection for (near) real-time updates and a Bluetooth connection, can be utilized for local connections.
-
-To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first. Currently, only login with username & password is supported. If you are currently using a social login, you need to create a new LaMarzocco account and transfer your machine to it to be able to use this integration.
+This integration interacts with [La Marzocco](https://lamarzocco.com/it/en/) coffee machines through calls to the La Marzocco cloud API. Optionally, local API calls, which include a WebSocket connection for (near) real-time updates and a Bluetooth connection, can be utilized for local connections.
If your machine is in Bluetooth range to your Home Assistant host and the [Bluetooth](/integrations/bluetooth) integration is fully loaded, the machine will be discovered automatically.
+## Prerequisites
+
+- To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first.
+- Only login with username & password is supported. If you are currently using a social login, you need to create a new La Marzocco account and transfer your machine to it to be able to use this integration.
+
{% include integrations/config_flow.md %}
@@ -48,6 +56,7 @@ Host:
type: boolean
{% endconfiguration_basic %}
+# Available platforms & entities
## Buttons
@@ -88,7 +97,7 @@ Host:
| Sensor name | Description | Available for machines | Remarks |
|-------------|-------------| ---------------------- | ------- |
-| Current coffee temperature | Current temperature of the coffee boiler | all | - |
+| Current coffee temperature | Current temperature of the coffee boiler | all | When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. |
| Current steam temperature| Current temperature of the steam boiler | Linea Micra, GS3 AV, GS3 MP | - |
| Total coffees made | Counter for total coffees made| all | - |
| Total flushes made | Counter for total flushes done | all | - |
@@ -107,3 +116,73 @@ Host:
|-------------|-------------| ------------------------| ---------------------- |
| Prebrew/-infusion mode | Whether to use prebrew, preinfusion, or neither | Disabled, Prebrew, Preinfusion | Linea Micra, Linea Mini, GS3 AV |
| Steam level | The level your steam boiler should run at | 1,2,3 | Linea Micra |
+
+## Supported devices
+
+Currently, only devices from the **"Home"** range are supported:
+
+- Linea Mini
+- Linea Mini R
+- Linea Micra
+- GS3 AV
+- GS3 MP
+
+## Possible use-cases
+
+- Control your machine through voice, allowing you to change boiler temperatures quickly without opening the app.
+- Control your smart coffee scales (tare/timer start) when a brew starts.
+- Turn on lights next to the machine while a brew is running.
+
+## Automations
+
+Get started with these automation examples.
+
+### Turn steamboiler on when machine is turned on
+
+I often drink milk beverages in the morning and espresso in the afternoon, but forget to re-enable the steamboiler again, so this automation ensures that the steam boiler is always turned on, when the machine is turned on.
+
+{% details "Example YAML configuration" %}
+
+{% raw %}
+
+```yaml
+alias: Turn steamboiler on when machine is turned on
+description: Ensure the steamboiler is on, when the machine gets turned on
+triggers:
+ - trigger: state
+ entity_id:
+ - switch.mr000000
+ from: "off"
+ to: "on"
+conditions:
+ - condition: state
+ entity_id: switch.mr000000_steam_boiler
+ state: "off"
+actions:
+ - action: switch.turn_on
+ target:
+ entity_id: switch.mr000000_steam_boiler
+ data: {}
+mode: single
+
+```
+{% endraw %}
+{% enddetails %}
+
+## Known Limitations
+
+- Only La Marzocco native app accounts are supported, social logins (Google, Apple & WeChat) are not supported
+- Currently it is only possible to view the schedules configured in the La Marzocco Home app, but not to edit the schedules from Home Assistant. You can, of course, build Home Assistant native automations to reflect the same functionality in Home Assistant.
+
+## Troubleshooting
+
+{% details "Problem: Connection to machine is not possible" %}
+
+Check the La Marzocco Home app to see if you can connect to your machine there. If not, remove the machine and add it again (follow the instructions in the La Marzocco App).
+{% enddetails %}
+
+{% details "Real time updates are not available" %}
+
+Check the La Marzocco Home app to see if your machine is connected to Wi-Fi. Ensure Home Assistant can reach the machine. Ensure you configured the host option in the integration options.
+{% enddetails %}
+
diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown
index e9179af08c9b..fdc64843bd44 100644
--- a/source/_integrations/light.mqtt.markdown
+++ b/source/_integrations/light.mqtt.markdown
@@ -363,11 +363,11 @@ schema:
type: string
default: default
state_topic:
- description: The MQTT topic subscribed to receive state updates. A "None" payload resets to an `unknown` state. An empty payload is ignored.
+ description: "The MQTT topic subscribed to receive state updates. A \"None\" payload resets to an `unknown` state. An empty payload is ignored. By default, valid state payloads are `OFF` and `ON`. The accepted payloads can be overridden with the `payload_off` and `payload_on` config options."
required: false
type: string
state_value_template:
- description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the state value. The template should return the `payload_on` and `payload_off` values, so if your light uses `power on` to turn on, your `state_value_template` string should return `power on` when the switch is on. For example, if the message is just `on`, your `state_value_template` should be `power {{ value }}`. When your `payload_on = 27`, `payload_off = 'off'`, then this template might be `'off' if value_json.my_custom_brightness_field <= 0 else 27`."
+ description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the state value. The template should return the `payload_on` and `payload_off` values, so if your light uses `power on` to turn on, your `state_value_template` string should return `power on` when the switch is on. For example, if the message is just `on`, your `state_value_template` should be `power {{ value }}`. When your `payload_on = 27` and `payload_off = 'off'`, then this template might be `'off' if value_json.my_custom_brightness_field <= 0 else 27`."
required: false
type: template
unique_id:
@@ -708,7 +708,7 @@ schema:
type: string
default: default
state_topic:
- description: The MQTT topic subscribed to receive state updates. A "None" payload resets to an `unknown` state. An empty payload is ignored.
+ description: 'The MQTT topic subscribed to receive state updates in a JSON-format. The JSON payload may contain the elements: `"state"`: `"ON"` the light is on, `"OFF"` the light is off, `null` the state is `unknown`; `"color_mode"`: one of the `supported_color_modes`; `"color"`: A dict with the color attributes*; `"brightness"`: The brightness; `"color_temp"`: The color temperature; `"effect"`: The effect of the light.'
required: false
type: string
supported_color_modes:
@@ -726,6 +726,32 @@ white_scale:
default: 255
{% endconfiguration %}
+*The `color` attribute dict in the JSON state payload should contain the following keys based on the `color_mode`:
+
+- `hs`:
+ - `h`: The hue value
+ - `s`: The saturation value
+- `xy`:
+ - `x`: X color value
+ - `y`: Y color value
+- `rgb`:
+ - `r`: Red color value
+ - `g`: Green color value
+ - `b`: Blue color value
+- `rgbw`:
+ - `r`: Red color value
+ - `g`: Green color value
+ - `b`: Blue color value
+ - `w`: White value
+- `rgbww`:
+ - `r`: Red color value
+ - `g`: Green color value
+ - `b`: Blue color value
+ - `c`: Cool white value
+ - `w`: Warm white value
+
+More details about the different colors, color modes and range values [can be found here](https://www.home-assistant.io/integrations/light/).
+
{% important %}
Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics.
{% endimportant %}
@@ -934,7 +960,7 @@ command_off_template:
required: true
type: template
command_on_template:
- description: "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) for *on* state changes. Available variables: `state`, `brightness`, `color_temp`, `red`, `green`, `blue`, `flash`, `transition` and `effect`. Values `red`, `green`, `blue`, `brightness` are provided as integers from range 0-255. Value of `color_temp` is provided as integer representing mired units."
+ description: "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) for *on* state changes. Available variables: `state`, `brightness`, `color_temp`, `red`, `green`, `blue`, `hue`, `sat`, `flash`, `transition` and `effect`. Values `red`, `green`, `blue`, `brightness` are provided as integers from range 0-255. Value of `hue` is provided as float from range 0-360. Value of `sat` is provided as float from range 0-100. Value of `color_temp` is provided as integer representing mired units."
required: true
type: template
command_topic:
diff --git a/source/_integrations/light.rflink.markdown b/source/_integrations/light.rflink.markdown
deleted file mode 100644
index f73430a268be..000000000000
--- a/source/_integrations/light.rflink.markdown
+++ /dev/null
@@ -1,171 +0,0 @@
----
-title: "RFLink Light"
-description: "Instructions on how to integrate RFLink lights into Home Assistant."
-ha_category:
- - Light
-ha_iot_class: Assumed State
-ha_release: 0.38
-ha_domain: rflink
----
-
-The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
-
-First, you have to set up your [RFLink hub](/integrations/rflink/).
-
-After configuring the RFLink hub, lights will be automatically discovered and added.
-
-RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
-
-Once the ID of a light is known, it can be used to configure the light in HA, for example to add it to a different group or configure a nice name.
-
-Configuring devices as a light:
-
-```yaml
-# Example configuration.yaml entry
-light:
- - platform: rflink
- devices:
- NewKaku_02a48800_0: {}
- newkaku_0000c6c2_1: {}
- Ansluta_ce30_0: {}
- Maclean_0d82_01: {}
-```
-
-{% configuration %}
-device_defaults:
- description: The defaults for the devices.
- required: false
- type: map
- keys:
- fire_event:
- description: Set default `fire_event` for RFLink switch devices (see below).
- required: false
- default: False
- type: boolean
- signal_repetitions:
- description: Set default `signal_repetitions` for RFLink switch devices (see below).
- required: false
- default: 1
- type: integer
-automatic_add:
- description: Automatically add new/unconfigured devices to Home Assistant if detected.
- required: false
- default: true
- type: boolean
-devices:
- description: A list of lights.
- required: false
- type: list
- keys:
- rflink_ids:
- description: RFLink ID of the device
- required: true
- type: map
- keys:
- name:
- description: Name for the device.
- required: false
- default: RFLink ID
- type: string
- type:
- description: "Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See [Light Types](/integrations/light.rflink/#light-types) below."
- required: false
- default: switchable
- type: string
- aliases:
- description: Alternative RFLink ID's this device is known by.
- required: false
- type: [list, string]
- group_aliases:
- description: "`aliases` which only respond to group commands."
- required: false
- type: [list, string]
- no_group_aliases:
- description: "`aliases` which do not respond to group commands."
- required: false
- type: [list, string]
- fire_event:
- description: Fire a `button_pressed` event if this device is turned on or off.
- required: false
- default: false
- type: boolean
- signal_repetitions:
- description: Repeat every RFLink command this number of times.
- required: false
- default: 1
- type: integer
- group:
- description: Allow light to respond to group commands (ALLON/ALLOFF).
- required: false
- default: true
- type: boolean
-{% endconfiguration %}
-
-### Light state
-
-Initially the state of a light is unknown. When the light is turned on or off (via frontend or remote) the state is known and will be shown in the frontend.
-
-Sometimes a light is controlled by multiple remotes, each remote has its own code programmed in the light. To allow tracking of the state when switched via other remotes add the corresponding remote codes as aliases:
-
-```yaml
-# Example configuration.yaml entry
-light:
- - platform: rflink
- devices:
- newkaku_0000c6c2_1:
- aliases:
- - newkaku_000000001_2
- - kaku_000001_a
-```
-
-Any on/off command from any alias ID updates the current state of the light. However when sending a command through the frontend only the primary ID is used.
-
-### Light types
-
-Light devices can come in different forms. Some only switch on and off, other support dimming. Dimmable devices might not always respond nicely to repeated `on` command as they turn into a pulsating state until `on` is pressed again (for example KlikAanKlikUit). The RFLink integration support three types of lights to make things work in every situation:
-
-- *Hybrid*: This type sends a `dim` followed by an an `on` command; and `off` commands. This will make dimmable devices turn on at the requested dim level and on/off devices on. One caveat is this type is not compatible with signal repetition as multiple `on` signals will cause dimmers to go into disco mode.
-- *Switchable*: Device type that sends only `on` and `off` commands. It work for both on/off and dimmable type switches. However dimmables might have issues with signal repetition (see above).
-- *Dimmable*: Sends only `dim` and `off` commands. This does not work on on/off type devices as they don't understand the `dim` command. For dimmers this does not cause issues with signal repetitions.
-- *Toggle*: Device type that sends only `on` commands to turn on or off the device. Some switches like for example Livolo light switches use the same 'on' command to switch on and switch off the lights. If the light is on and 'on' gets sent, the light will turn off and if the light is off and 'on' gets sent, the light will turn on. If the device has an unknown state, it will assume it is off by default.
-
-By default new lights are assigned the `switchable` type. Protocol supporting dimming are assigned the `hybrid` type. Currently only `newkaku` protocol is detected as dimmable. Please refer to Device Support to get your dimmers supported.
-
-### Hiding/ignoring lights
-
-Lights are added automatically when the RFLink gateway intercepts a wireless command in the ether. To prevent cluttering the frontend use any of these methods:
-
-- Disable automatically adding of unconfigured new sensors (set `automatic_add` to `false`).
-- Hide unwanted devices using [customizations](/getting-started/customizing-devices/)
-- [Ignore devices on a platform level](/integrations/rflink/#ignoring-devices)
-
-### Device support
-
-See [device support](/integrations/rflink/#device-support)
-
-### Additional configuration examples
-
-Multiple lights with `signal_repetitions` and custom names
-
-```yaml
-# Example configuration.yaml entry
-light:
- - platform: rflink
- device_defaults:
- fire_event: true
- signal_repetitions: 2
- automatic_add: true
- devices:
- NewKaku_02a48800_0:
- name: Kitchen
- type: hybrid
- newkaku_0000c6c2_1:
- name: Living room
- aliases:
- - newkaku_000000001_2
- - kaku_000001_a
- Ansluta_ce30_0:
- name: Kitchen Under Counter Lights
- Maclean_0d82_01:
- name: Bedroom Lamp
-```
diff --git a/source/_integrations/light.xiaomi_aqara.markdown b/source/_integrations/light.xiaomi_aqara.markdown
deleted file mode 100644
index 4989d4c6cf06..000000000000
--- a/source/_integrations/light.xiaomi_aqara.markdown
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "Xiaomi Light"
-description: "Instructions on how to setup the Xiaomi light within Home Assistant."
-ha_category:
- - Light
-ha_release: "0.50"
-ha_iot_class: Local Push
-ha_domain: xiaomi_aqara
----
-
-
-The `xiaomi aqara` light platform allows you to control the internal light of the Xiaomi gateway. The integration will be loaded automatically and provides a device called `light.gateway_light_28ffffffffff`.
-
-The requirement is that you have setup [Xiaomi aqara](/integrations/xiaomi_aqara/).
-
diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown
index 40149c2e01e1..52749e335b8f 100644
--- a/source/_integrations/mastodon.markdown
+++ b/source/_integrations/mastodon.markdown
@@ -28,7 +28,7 @@ If you want to grant only required accesses, uncheck all checkboxes then check o
## Sensors
-The integration will create sensors for the Mastodon account showing total followers, following, and posts.
+The integration will create sensors for the Mastodon account showing total followers, following, and posts. Sensors are updated once an hour.
## Notifications
diff --git a/source/_integrations/mealie.markdown b/source/_integrations/mealie.markdown
index 4ecf532504f7..dd9810f0eb02 100644
--- a/source/_integrations/mealie.markdown
+++ b/source/_integrations/mealie.markdown
@@ -36,7 +36,7 @@ You create your API token on your Mealie installation:
## Available calendars
-The integration will create a calendar for every type of meal plan:
+The integration will create a calendar for every type of meal plan, which are updated once an hour:
- Breakfast
- Lunch
@@ -45,11 +45,12 @@ The integration will create a calendar for every type of meal plan:
## Shopping Lists
-The integration will create a to-do list for every Mealie shopping list.
+The integration will create a to-do list for every Mealie shopping list, which are updated every 5 minutes.
## Sensors
-The integration provides the following sensors for the statistics:
+The integration provides the following sensors for the statistics, which are updated every 15 minutes:
+
- number of recipes
- categories (such as beverage, dessert, Italian, seafood)
- tags (such as alcohol)
diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown
index 71486e19b5e0..3538aabbbb10 100644
--- a/source/_integrations/mqtt.markdown
+++ b/source/_integrations/mqtt.markdown
@@ -215,7 +215,7 @@ MQTT Birth and Last Will messages can be customized or disabled from the UI. To
## Testing your setup
-The `mosquitto` broker package ships command line tools (often as `*-clients` package) to send and receive MQTT messages. For sending test messages to a broker running on `localhost`, to can use [`mosquitto_pub`](https://mosquitto.org/man/mosquitto_pub-1.html), check the example below:
+The `mosquitto` broker package ships command line tools (often as `*-clients` package) to send and receive MQTT messages. For sending test messages to a broker running on `localhost`, you can use [`mosquitto_pub`](https://mosquitto.org/man/mosquitto_pub-1.html), check the example below:
```bash
mosquitto_pub -h 127.0.0.1 -t homeassistant/switch/1/on -m "Switch is ON"
diff --git a/source/_integrations/nibe_heatpump.markdown b/source/_integrations/nibe_heatpump.markdown
index 78adaee39c85..57bb0023744f 100644
--- a/source/_integrations/nibe_heatpump.markdown
+++ b/source/_integrations/nibe_heatpump.markdown
@@ -36,6 +36,7 @@ Supported devices:
- F730
- S735
- F750
+- S1255
- SMO40
- SMOS40
- VVM225
diff --git a/source/_integrations/persistent_notification.markdown b/source/_integrations/persistent_notification.markdown
index dda66e1a033f..27846c1f37f1 100644
--- a/source/_integrations/persistent_notification.markdown
+++ b/source/_integrations/persistent_notification.markdown
@@ -49,9 +49,9 @@ The `persistent_notification.create` action takes in `message`, `title`, and `no
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `message` | no | Body of the notification. Accepts [templates](/docs/configuration/templating/).
-| `title` | yes | Title of the notification. Accepts [templates](/docs/configuration/templating/).
-| `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID.
+| `message` | no | Body of the notification. |
+| `title` | yes | Title of the notification. |
+| `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID. |
Here is how an [action](/docs/automation/action) of your [automation setup](/getting-started/automation/) with static content could look like.
diff --git a/source/_integrations/renault.markdown b/source/_integrations/renault.markdown
index 138f4b0d56a3..a403dfc30446 100644
--- a/source/_integrations/renault.markdown
+++ b/source/_integrations/renault.markdown
@@ -38,6 +38,8 @@ This integration provides the following platforms:
All vehicles linked to the account should then get added as devices, with sensors added as linked entity.
+In some situations, some of the features may require a subscription such as the *Pack EV Remote Control* and/or the *Pack Smart Navigation* subscription.
+
## Actions
### Action `renault.ac_start`
diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown
index 22f0842d6101..f84dee5ad9e7 100644
--- a/source/_integrations/rflink.markdown
+++ b/source/_integrations/rflink.markdown
@@ -22,12 +22,12 @@ related:
The `rflink` {% term integration %} supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink Gateway is an Arduino Mega firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
-The 433 MHz spectrum is used by many manufacturers mostly using their own protocol/standard and includes devices like: light switches, blinds, weather stations, alarms and various other sensors.
+The 433 MHz spectrum is used by many manufacturers. Mostly using their own protocol/standard, they use this spectrum to communicate with devices such as light switches, blinds, weather stations, alarms, and various other sensors.
-RFLink Gateway supports a number of RF frequencies, using a wide range of low-cost hardware. [Their website](https://www.rflink.nl) provides details for various RF transmitters, receivers and transceiver modules for 433MHz, 868MHz and 2.4 GHz.
+The RFLink Gateway supports a number of RF frequencies, using a wide range of low-cost hardware. [Their website](https://www.rflink.nl) provides details for various RF transmitters, receivers, and transceiver modules for 433MHz, 868MHz, and 2.4 GHz.
{% note %}
-Versions later than R44 add support for IKEA Ansluta, Philips Living Colors Gen1 and MySensors devices.
+Versions later than R44 add support for IKEA Ansluta, Philips Living Colors Gen1, and MySensors devices.
{% endnote %}
A complete list of devices supported by RFLink can be found [here](https://www.rflink.nl/devlist.php).
@@ -62,7 +62,7 @@ wait_for_ack:
default: true
type: boolean
ignore_devices:
- description: List of device id's to ignore. Supports wildcards (`*`, `?`).
+ description: List of device IDs to ignore. Supports wildcards (`*`, `?`).
required: false
type: [list, string]
reconnect_interval:
@@ -94,6 +94,7 @@ rflink:
TCP mode allows you to connect to an RFLink device over a TCP/IP network. This is useful if placing the RFLink device next to the HA server is not optimal or desired (eg: bad reception).
The following command can be used to expose the USB/serial interface over TCP on a different host (Linux). The arguments are separated by spaces, further info on all arguments can be found for example [on the Debian manpages](https://manpages.debian.org/stretch/socat/socat.1.en.html).
+
- `/dev/ttyACM0,b57600,rawer` specifies the device location, a `b57600` 57600 baud rate, and `rawer` causes socat to ignore control sequences sent via the port (for example, it makes socat pass all information 'rawest form', rather than picking up control characters such as control-C which would close socat).
- `TCP-LISTEN:1234,reuseaddr,range=192.168.0.0/16` listens on IPV4 on the specified port (1234, change as suits your needs), the details behind the `reuseaddr` option [are fairly complex](https://stackoverflow.com/a/3233022/1049701) but it allows faster reconnects from the client (Home Assistant) in case of connection drops. An important security option is `range=192.168.0.0/16`, which specifies that socat should only accept connections from a certain range of IP addresses - the /16 subnet mask specifies a range from 192.168.0.0 to 192.168.255.255. Change this as required for your LAN network.
@@ -138,7 +139,7 @@ sensor:
[RFLink Switches](/integrations/switch.rflink/) and [RFLink Binary Sensors](/integrations/binary_sensor.rflink/) cannot be added automatically.
-The RFLink integration does not know the difference between a binary sensor, a switch and a light. Therefore all switchable devices are automatically added as light by default. However, once the ID of a switch is known, it can be used to configure it as a switch or a binary sensor type in Home Assistant, for example, to add it to a different group or configure a nice name.
+The RFLink integration does not know the difference between a binary sensor, a switch and a light. Therefore, all switchable devices are automatically added as light by default. However, once the ID of a switch is known, it can be used to configure it as a switch or a binary sensor type in Home Assistant, for example, to add it to a different group or configure a nice name.
### Ignoring devices
@@ -178,7 +179,6 @@ cover:
This configuration uses `0a0a0a` to control the inverted shutter (send UP to close and Down to open) and listen commands sent by `0f1f2f` remote control.
-
### Device support
Even though a lot of devices are supported by RFLink, not all have been tested/implemented. If you have a device supported by RFLink but not by this integration please consider testing and adding support yourself.
@@ -191,7 +191,7 @@ If you find a device is recognized differently, with different protocols or the
- The`rflink` Python module is an asyncio transport/protocol which is setup to fire a callback for every (valid/supported) packet received by the RFLink gateway.
- This integration uses this callback to distribute 'rflink packet events' over [Home Assistant's event bus](/docs/configuration/events/) which can be subscribed to by entities/platform implementations.
-- The platform implementation takes care of creating new devices (if enabled) for unseen incoming packet ID's.
+- The platform implementation takes care of creating new devices (if enabled) for unseen incoming packet IDs.
- Device entities take care of matching to the packet ID, interpreting and performing actions based on the packet contents. Common entity logic is maintained in this main component.
### Debug Logging
@@ -219,3 +219,731 @@ This will give you output looking like this:
17-03-07 20:12:05 DEBUG (MainThread) [rflink.protocol] got event: {'version': '1.1', 'firmware': 'RFLink Gateway', 'revision': '45', 'hardware': 'Nodo RadioFrequencyLink', 'id': 'rflink'}
17-03-07 20:12:05 DEBUG (MainThread) [homeassistant.components.rflink] event of type unknown: {'version': '1.1', 'firmware': 'RFLink Gateway', 'revision': '45', 'hardware': 'Nodo RadioFrequencyLink', 'id': 'rflink'}
```
+
+## Binary sensor
+
+The RFLink integration does not know the difference between a `binary_sensor`, a `switch`, and a `light`. Therefore, all switchable devices are automatically added as `light` by default.
+
+RFLink binary_sensor/switch/light IDs are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
+
+Once the ID of a binary sensor is known, it can be used to configure it as a binary sensor type in Home Assistant, for example, to hide it or configure a nice name.
+
+Configuring a device as a binary sensor:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: rflink
+ devices:
+ pt2262_00174754_0: {}
+```
+
+{% configuration %}
+devices:
+ description: A list of binary sensors.
+ required: false
+ type: list
+ keys:
+ rflink_ids:
+ description: RFLink ID of the device
+ required: true
+ type: map
+ keys:
+ name:
+ description: Name of the device.
+ required: false
+ default: RFLink ID
+ type: string
+ aliases:
+ description: Alternative RFLink IDs this device is known by.
+ required: false
+ type: list
+ device_class:
+ description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
+ required: false
+ type: string
+ off_delay:
+ description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'.
+ required: false
+ type: integer
+ force_update:
+ description: Sends update events even if the value has not changed. Useful for sensors that only sends `On`.
+ required: false
+ type: boolean
+ default: false
+{% endconfiguration %}
+
+### Sensor state
+
+Initially, the state of a binary sensor is unknown. When a sensor update is received, the state is known and will be shown in the frontend.
+
+### Device support
+
+See [device support](/integrations/rflink/#device-support)
+
+### Additional configuration examples
+
+Multiple sensors with custom name and device class and set off_delay
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: rflink
+ devices:
+ pt2262_00174754_0:
+ name: PIR Entrance
+ device_class: motion
+ off_delay: 5
+ pt2262_00174758_0:
+ name: PIR Living Room
+ device_class: motion
+ off_delay: 5
+```
+
+## Cover
+
+After configuring the RFLink hub, covers will be automatically discovered and added. Except the Somfy RTS devices.
+
+### Setting up a Somfy RTS device
+
+You have to add the Somfy RTS manually with the supplied RFlinkLoader (Windows only).
+
+Press the Learn button on the original Somfy remote enter the following code within 3 seconds. Your blinds will go up and down shortly:
+
+```text
+10;RTS;02FFFF;0412;3;PAIR;
+```
+
+Your blinds will go up and down again. This means your RFLink is now paired with your RTS motor.
+To check this enter the following code again and see if there is a record.
+
+```text
+10;RTSSHOW;
+```
+
+```text
+RTS Record: 0 Address: FFFFFF RC: FFFF
+RTS Record: 1 Address: FFFFFF RC: FFFF
+RTS Record: 2 Address: FFFFFF RC: FFFF
+RTS Record: 3 Address: 02FFFF RC: 0018
+RTS Record: 4 Address: FFFFFF RC: FFFF
+RTS Record: 5 Address: FFFFFF RC: FFFF
+RTS Record: 6 Address: FFFFFF RC: FFFF
+RTS Record: 7 Address: FFFFFF RC: FFFF
+RTS Record: 8 Address: FFFFFF RC: FFFF
+RTS Record: 9 Address: FFFFFF RC: FFFF
+RTS Record: 10 Address: FFFFFF RC: FFFF
+RTS Record: 11 Address: FFFFFF RC: FFFF
+RTS Record: 12 Address: FFFFFF RC: FFFF
+RTS Record: 13 Address: FFFFFF RC: FFFF
+RTS Record: 14 Address: FFFFFF RC: FFFF
+RTS Record: 15 Address: FFFFFF RC: FFFF
+```
+
+After configuring the RFLink Somfy RTS you have to add the cover to the {% term "`configuration.yaml`" %} file like any other RFlink device.
+
+RFLink cover IDs are composed of: protocol, id, and gateway. For example: `RTS_0100F2_0`.
+
+Once the ID of a cover is known, it can be used to configure the cover in Home Assistant, for example, to add it to a different group or set a nice name.
+
+Configuring devices as a cover:
+
+```yaml
+# Example configuration.yaml entry
+cover:
+ - platform: rflink
+ devices:
+ RTS_0100F2_0: {}
+ bofumotor_455201_0f: {}
+```
+
+{% configuration %}
+device_defaults:
+ description: The defaults for the devices.
+ required: false
+ type: map
+ keys:
+ fire_event:
+ description: Set default `fire_event` for RFLink cover devices.
+ required: false
+ default: false
+ type: boolean
+ signal_repetitions:
+ description: Set default `signal_repetitions` for RFLink cover devices.
+ required: false
+ default: 1
+ type: integer
+devices:
+ description: A list of covers.
+ required: false
+ type: list
+ keys:
+ rflink_ids:
+ description: RFLink ID of the device
+ required: true
+ type: map
+ keys:
+ name:
+ description: Name of the device.
+ required: false
+ default: RFLink ID
+ type: string
+ aliases:
+ description: Alternative RFLink IDs this device is known by.
+ required: false
+ type: [list, string]
+ fire_event:
+ description: Fire a `button_pressed` event if this device is turned on or off.
+ required: false
+ default: False
+ type: boolean
+ signal_repetitions:
+ description: The number of times every RFLink command should repeat.
+ required: false
+ type: integer
+ group:
+ description: Allow light to respond to group commands (ALLON/ALLOFF).
+ required: false
+ default: true
+ type: boolean
+ group_aliases:
+ description: The `aliases` which only respond to group commands.
+ required: false
+ type: [list, string]
+ no_group_aliases:
+ description: The `aliases` which do not respond to group commands.
+ required: false
+ type: [list, string]
+ type:
+ description: The option to invert (`inverted`) on/off commands sent to the RFLink device or not (`standard`).
+ required: false
+ type: string
+{% endconfiguration %}
+
+### Setting up a KAKU ASUN-650 device
+
+In RFLink, the ON and DOWN command are used to close the cover and the OFF and UP command are used to open the cover. The KAKU (COCO) ASUN-650 works the other way around, it uses the ON command to open the cover and the OFF command to close the cover.
+
+The RFLink cover device has a property named `type` that takes 2 values:
+
+- `standard`: Do not invert the on/off commands sent to the RFLink device.
+- `inverted`: Invert the on/off commands sent to the RFLink device.
+
+The following configuration example shows how to use the `type` property:
+
+```yaml
+# Example configuration.yaml entry that shows how to
+# use the type property.
+cover:
+ - platform: rflink
+ devices:
+ newkaku_xxxxxxxx_x:
+ name: kaku_inverted_by_type
+ type: inverted
+ newkaku_xxxxxxxx_y:
+ name: kaku_not_inverted_by_type
+ type: standard
+ newkaku_xxxxxxxx_z:
+ name: kaku_inverted_by_default
+ nonkaku_yyyyyyyy_x:
+ name: non_kaku_inverted_by_type
+ type: inverted
+ nonkaku_yyyyyyyy_y:
+ name: non_kaku_not_inverted_by_type
+ type: standard
+ nonkaku_yyyyyyyy_z:
+ name: non_kaku_not_inverted_by_default
+```
+
+The configuration above shows that the `type` property may be omitted. When the ID starts with `newkaku`, the integration will make sure that the on and off commands are inverted. When the ID does not start with `newkaku`, the on and off commands are not inverted.
+
+### Setting up a non-RTS cover
+
+Configure `automatic_add` for the light domain (yes, the light domain)
+```yaml
+# Example configuration.yaml entry
+light:
+ - platform: rflink
+ automatic_add: true
+```
+
+When you press the remote buttons, a new light will show up in {% my entities title="the list of entities" %}.
+
+Also you can enable rflink logs and look for the device_id, for example: `dooya_v4_654321_0f` or `brelmotor_3b35c7_47`.
+
+```yaml
+# Example configuration.yaml entry
+logger:
+ logs:
+ rflink: debug
+ homeassistant.components.rflink: debug
+```
+
+Once the `device_id` is known, the light domain configuration can be removed and configure the device as a cover:
+
+```yaml
+# Example configuration.yaml entry
+cover:
+ - platform: rflink
+ devices:
+ dooya_v4_654321_0f:
+ name: "Room blinds"
+```
+
+### Device support
+
+See [device support](/integrations/rflink/#device-support).
+
+## Additional configuration examples
+
+Multiple covers with custom names and aliases
+
+```yaml
+# Example configuration.yaml entry
+cover:
+ - platform: rflink
+ devices:
+ RTS_0A8720_0:
+ name: enanos
+ aliases:
+ - rts_31e53f_01
+ - rts_32e53f_01
+ RTS_30E542_0:
+ name: comedor
+ aliases:
+ - rts_33e53f_01
+ - rts_fa872e_01
+ RTS_33E542_0:
+ name: dormitorio
+ aliases:
+ - rts_30e53f_01
+ - rts_32e53f_01
+ RTS_32E542_0:
+ name: habitaciones
+ fire_event: true
+```
+
+## Lights
+
+After configuring the RFLink hub, lights will be automatically discovered and added.
+
+RFLink binary_sensor/switch/light IDs are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
+
+Once the ID of a light is known, it can be used to configure the light in HA, for example to add it to a different group or configure a nice name.
+
+Configuring devices as a light:
+
+```yaml
+# Example configuration.yaml entry
+light:
+ - platform: rflink
+ devices:
+ NewKaku_02a48800_0: {}
+ newkaku_0000c6c2_1: {}
+ Ansluta_ce30_0: {}
+ Maclean_0d82_01: {}
+```
+
+{% configuration %}
+device_defaults:
+ description: The defaults for the devices.
+ required: false
+ type: map
+ keys:
+ fire_event:
+ description: Set default `fire_event` for RFLink switch devices (see below).
+ required: false
+ default: False
+ type: boolean
+ signal_repetitions:
+ description: Set default `signal_repetitions` for RFLink switch devices (see below).
+ required: false
+ default: 1
+ type: integer
+automatic_add:
+ description: Automatically add new/unconfigured devices to Home Assistant if detected.
+ required: false
+ default: true
+ type: boolean
+devices:
+ description: A list of lights.
+ required: false
+ type: list
+ keys:
+ rflink_ids:
+ description: RFLink ID of the device
+ required: true
+ type: map
+ keys:
+ name:
+ description: Name of the device.
+ required: false
+ default: RFLink ID
+ type: string
+ type:
+ description: "Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See [Light Types](/integrations/light.rflink/#light-types) below."
+ required: false
+ default: switchable
+ type: string
+ aliases:
+ description: Alternative RFLink IDs this device is known by.
+ required: false
+ type: [list, string]
+ group_aliases:
+ description: "`aliases` which only respond to group commands."
+ required: false
+ type: [list, string]
+ no_group_aliases:
+ description: "`aliases` which do not respond to group commands."
+ required: false
+ type: [list, string]
+ fire_event:
+ description: Fire a `button_pressed` event when this device is turned on or off.
+ required: false
+ default: false
+ type: boolean
+ signal_repetitions:
+ description: Repeat every RFLink command this number of times.
+ required: false
+ default: 1
+ type: integer
+ group:
+ description: Allow light to respond to group commands (ALLON/ALLOFF).
+ required: false
+ default: true
+ type: boolean
+{% endconfiguration %}
+
+### Light state
+
+Initially the state of a light is unknown. When the light is turned on or off (via frontend or remote) the state is known and will be shown in the frontend.
+
+Sometimes a light is controlled by multiple remotes, each remote has its own code programmed in the light. To allow tracking of the state when switched via other remotes add the corresponding remote codes as aliases:
+
+```yaml
+# Example configuration.yaml entry
+light:
+ - platform: rflink
+ devices:
+ newkaku_0000c6c2_1:
+ aliases:
+ - newkaku_000000001_2
+ - kaku_000001_a
+```
+
+Any on/off command from any alias ID updates the current state of the light. However when sending a command through the frontend only the primary ID is used.
+
+### Light types
+
+Light devices can come in different forms. Some only switch on and off, other support dimming. Dimmable devices might not always respond nicely to repeated `on` command as they turn into a pulsating state until `on` is pressed again (for example KlikAanKlikUit). The RFLink integration support three types of lights to make things work in every situation:
+
+- *Hybrid*: This type sends a `dim` followed by an `on` command; and `off` commands. This will make dimmable devices turn on at the requested dim level and on/off devices on. One caveat is this type is not compatible with signal repetition as multiple `on` signals will cause dimmers to go into disco mode.
+- *Switchable*: Device type that sends only `on` and `off` commands. It works for both on/off and dimmable type switches. However, dimmable devices might have issues with signal repetition (see above).
+- *Dimmable*: Sends only `dim` and `off` commands. This does not work on on/off type devices as they don't understand the `dim` command. For dimmers this does not cause issues with signal repetitions.
+- *Toggle*: Device type that sends only `on` commands to turn on or off the device. Some switches like for example Livolo light switches use the same 'on' command to switch on and switch off the lights. If the light is on and 'on' gets sent, the light will turn off and if the light is off and 'on' gets sent, the light will turn on. If the device has an unknown state, it will assume it is off by default.
+
+By default new lights are assigned the `switchable` type. Protocol supporting dimming are assigned the `hybrid` type. Currently only `newkaku` protocol is detected as dimmable. Please refer to Device Support to get your dimmers supported.
+
+### Hiding/ignoring lights
+
+Lights are added automatically when the RFLink gateway intercepts a wireless command in the ether. To prevent cluttering the frontend use any of these methods:
+
+- Disable automatically adding of unconfigured new sensors (set `automatic_add` to `false`).
+- Hide unwanted devices using [customizations](/getting-started/customizing-devices/)
+- [Ignore devices on a platform level](/integrations/rflink/#ignoring-devices)
+
+### Device support
+
+See [device support](/integrations/rflink/#device-support)
+
+### Additional configuration examples
+
+Multiple lights with `signal_repetitions` and custom names
+
+```yaml
+# Example configuration.yaml entry
+light:
+ - platform: rflink
+ device_defaults:
+ fire_event: true
+ signal_repetitions: 2
+ automatic_add: true
+ devices:
+ NewKaku_02a48800_0:
+ name: Kitchen
+ type: hybrid
+ newkaku_0000c6c2_1:
+ name: Living room
+ aliases:
+ - newkaku_000000001_2
+ - kaku_000001_a
+ Ansluta_ce30_0:
+ name: Kitchen Under Counter Lights
+ Maclean_0d82_01:
+ name: Bedroom Lamp
+```
+
+## Sensors
+
+After configuring the RFLink hub, sensors will be automatically discovered and added.
+
+RFLink sensor IDs are composed of: protocol, ID and type (optional). For example: `alectov1_0334_temp`. Some sensors emit multiple types of data. Each will be created as its own.
+
+Once the ID of a sensor is known, it can be used to configure the sensor in Home Assistant, for example to add it to a different group or configure a nice name.
+
+Configuring a device as a sensor:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: rflink
+ devices:
+ alectov1_0334_temp: {}
+```
+
+{% configuration %}
+automatic_add:
+ description: Automatically add new/unconfigured devices to Home Assistant if detected.
+ required: false
+ default: true
+ type: boolean
+devices:
+ description: A list of sensors.
+ required: false
+ type: list
+ keys:
+ rflink_ids:
+ description: RFLink ID of the device
+ required: true
+ type: map
+ keys:
+ name:
+ description: Name of the device.
+ required: false
+ default: RFLink ID
+ type: string
+ sensor_type:
+ description: Override automatically detected type of sensor. For list of [values](/integrations/sensor.rflink/#sensors-types) see below.
+ required: true
+ type: string
+ unit_of_measurement:
+ description: Override automatically detected unit of sensor.
+ required: false
+ type: string
+ aliases:
+ description: "Alternative RFLink IDs this device is known by."
+ required: false
+ type: [list, string]
+{% endconfiguration %}
+
+### Sensor types
+
+Sensor type values:
+
+- average_windspeed
+- barometric_pressure
+- battery
+- co2_air_quality
+- command
+- current_phase_1
+- current_phase_2
+- current_phase_3
+- distance
+- doorbell_melody
+- firmware
+- hardware
+- humidity
+- humidity_status
+- kilowatt
+- light_intensity
+- meter_value
+- noise_level
+- rain_rate
+- revision
+- temperature
+- timestamp
+- total_rain
+- uv_intensity
+- version
+- voltage
+- watt
+- weather_forecast
+- windchill
+- winddirection
+- windgusts
+- windspeed
+- windtemp
+
+### Hiding/ignoring sensors
+
+Sensors are added automatically when the RFLink gateway intercepts a wireless command in the ether. To prevent cluttering the frontend use any of these methods:
+
+- Disable automatically adding of unconfigured new sensors (set `automatic_add` to `false`).
+- [Ignore devices on a platform level](/integrations/rflink/#ignoring-devices)
+
+### Device support
+
+See [device support](/integrations/rflink/#device-support)
+
+### Additional configuration examples
+
+Multiple sensors with `automatic_add` disabled and `aliases`
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: rflink
+ automatic_add: false
+ devices:
+ oregontemp_0d93_temp:
+ sensor_type: temperature
+ oregontemp_0d93_bat:
+ sensor_type: battery
+ tunex_c001_temp:
+ sensor_type: temperature
+ aliases:
+ - xiron_4001_temp
+ tunex_c001_hum:
+ sensor_type: humidity
+ aliases:
+ - xiron_4001_hum
+ tunex_c001_bat:
+ sensor_type: battery
+ aliases:
+ - xiron_4001_bat
+```
+
+## Switch
+
+The RFLink integration does not know the difference between a `switch`, a `binary_sensor`, and a `light`. Therefore, all switchable devices are automatically added as `light` by default.
+
+RFLink binary_sensor/switch/light IDs are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
+
+Once the ID of a switch is known, it can be used to configure it as a switch type in HA and, for example, to add it to a different group or configure a nice name.
+
+Configuring devices as switch :
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: rflink
+ devices:
+ newkaku_0000c6c2_1: {}
+ conrad_00785c_0a: {}
+```
+
+{% configuration %}
+device_defaults:
+ description: The defaults for the devices.
+ required: false
+ type: map
+ keys:
+ fire_event:
+ description: Set default `fire_event` for RFLink switch devices (see below).
+ required: false
+ default: False
+ type: boolean
+ signal_repetitions:
+ description: Set default `signal_repetitions` for RFLink switch devices (see below).
+ required: false
+ default: 1
+ type: integer
+devices:
+ description: A list of switches.
+ required: false
+ type: list
+ keys:
+ rflink_ids:
+ description: RFLink ID of the device
+ required: true
+ type: map
+ keys:
+ name:
+ description: Name of the device.
+ required: false
+ default: RFLink ID
+ type: string
+ aliases:
+ description: Alternative RFLink IDs this device is known by.
+ required: false
+ type: [list, string]
+ group_aliases:
+ description: "`aliases` which only respond to group commands."
+ required: false
+ type: [list, string]
+ no_group_aliases:
+ description: "`aliases` which do not respond to group commands."
+ required: false
+ type: [list, string]
+ fire_event:
+ description: Fire a `button_pressed` event if this device is turned on or off.
+ required: false
+ default: false
+ type: boolean
+ signal_repetitions:
+ description: Set default `signal_repetitions` for RFLink switch devices (see below).
+ required: false
+ default: 1
+ type: integer
+ group:
+ description: Allow switch to respond to group commands (ALLON/ALLOFF).
+ required: false
+ default: true
+ type: boolean
+ aliases:
+ description: Alternative RFLink IDs this device is known by.
+ required: false
+ type: [list, string]
+ group_aliases:
+ description: "`aliases` which only respond to group commands."
+ required: false
+ type: [list, string]
+ no_group_aliases:
+ description: "`aliases` which do not respond to group commands."
+ required: false
+ type: [list, string]
+{% endconfiguration %}
+
+### Switch state
+
+Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend or wireless remote) the state is known and will be shown in the frontend.
+
+Sometimes a switch is controlled by multiple wireless remotes. Each remote has its own code programmed in the switch. To allow tracking of the state when switched via other remotes, add the corresponding remote codes as aliases:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: rflink
+ devices:
+ newkaku_0000c6c2_1:
+ name: Ceiling fan
+ aliases:
+ - newkaku_000000001_2
+ - kaku_000001_a
+```
+
+Any on/off command from any alias ID updates the current state of the switch. However, when sending a command through the frontend only the primary ID is used.
+
+### Device support
+
+See [device support](/integrations/rflink/#device-support)
+
+#### Additional configuration examples
+
+Multiple switches with signal repetitions and custom names
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: rflink
+ device_defaults:
+ fire_event: true
+ signal_repetitions: 2
+ devices:
+ newkaku_0000c6c2_1:
+ name: Ceiling fan
+ conrad_00785c_0a:
+ name: Motion sensor kitchen
+```
+
+
diff --git a/source/_integrations/ring.markdown b/source/_integrations/ring.markdown
index 208e2b198148..93be02d8b428 100644
--- a/source/_integrations/ring.markdown
+++ b/source/_integrations/ring.markdown
@@ -41,7 +41,9 @@ There is currently support for the following device types within Home Assistant:
- [Button](#button)
- [Camera](#camera)
- [Saving the videos captured by your Ring Door Bell](#saving-the-videos-captured-by-your-ring-door-bell)
+- [Event](#event)
- [Sensor](#sensor)
+- [Siren](#siren)
- [Switch](#switch)
- [Light](#light)
- [Number](#number)
@@ -159,9 +161,17 @@ Once you have enabled the [Ring integration](/integrations/ring), you can start
The volume sensors are being replaced with the number entity which allows setting the volume. You should migrate any automations using the volume sensors to the number entity by release 2025.4.0.
+## Siren
+
+- Adds a siren entity for every camera that supports a siren. Note the siren will only turn on for 30 seconds before automatically turning off.
+- Adds a siren entity for chimes to play the test sound.
+
## Switch
-Once you have enabled the [Ring integration](/integrations/ring), you can start using the switch platform. This will add a switch for every camera that supports a siren. Note the siren will only turn on for 30 seconds before automatically turning off.
+Once you have enabled the [Ring integration](/integrations/ring), you can start using the switch platform.
+
+- Motion detection - Switches motion detection on and off for cameras.
+- In-home chime - Switches on and off a mechanical or digital chime connected to a ring doorbell.
## Light
diff --git a/source/_integrations/sensor.rflink.markdown b/source/_integrations/sensor.rflink.markdown
deleted file mode 100644
index f35003e244d6..000000000000
--- a/source/_integrations/sensor.rflink.markdown
+++ /dev/null
@@ -1,143 +0,0 @@
----
-title: "RFLink Sensor"
-description: "Instructions on how to integrate RFLink sensors into Home Assistant."
-ha_category:
- - Sensor
-ha_iot_class: Local Push
-ha_release: 0.38
-ha_domain: rflink
----
-
-The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
-
-## Configuration
-
-First, you have to set up your [RFLink hub](/integrations/rflink/).
-
-After configuring the RFLink hub, sensors will be automatically discovered and added.
-
-RFLink sensor ID's are composed of: protocol, id and type (optional). For example: `alectov1_0334_temp`. Some sensors emit multiple types of data. Each will be created as its own.
-
-Once the ID of a sensor is known, it can be used to configure the sensor in Home Assistant, for example to add it to a different group or configure a nice name.
-
-Configuring a device as a sensor:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: rflink
- devices:
- alectov1_0334_temp: {}
-```
-
-{% configuration %}
-automatic_add:
- description: Automatically add new/unconfigured devices to Home Assistant if detected.
- required: false
- default: true
- type: boolean
-devices:
- description: A list of sensors.
- required: false
- type: list
- keys:
- rflink_ids:
- description: RFLink ID of the device
- required: true
- type: map
- keys:
- name:
- description: Name for the device.
- required: false
- default: RFLink ID
- type: string
- sensor_type:
- description: Override automatically detected type of sensor. For list of [values](/integrations/sensor.rflink/#sensors-types) see below.
- required: true
- type: string
- unit_of_measurement:
- description: Override automatically detected unit of sensor.
- required: false
- type: string
- aliases:
- description: "Alternative RFLink ID's this device is known by."
- required: false
- type: [list, string]
-{% endconfiguration %}
-
-## Sensor types
-
-Sensor type values:
-
-- average_windspeed
-- barometric_pressure
-- battery
-- co2_air_quality
-- command
-- current_phase_1
-- current_phase_2
-- current_phase_3
-- distance
-- doorbell_melody
-- firmware
-- hardware
-- humidity
-- humidity_status
-- kilowatt
-- light_intensity
-- meter_value
-- noise_level
-- rain_rate
-- revision
-- temperature
-- timestamp
-- total_rain
-- uv_intensity
-- version
-- voltage
-- watt
-- weather_forecast
-- windchill
-- winddirection
-- windgusts
-- windspeed
-- windtemp
-
-## Hiding/ignoring sensors
-
-Sensors are added automatically when the RFLink gateway intercepts a wireless command in the ether. To prevent cluttering the frontend use any of these methods:
-
-- Disable automatically adding of unconfigured new sensors (set `automatic_add` to `false`).
-- [Ignore devices on a platform level](/integrations/rflink/#ignoring-devices)
-
-## Device support
-
-See [device support](/integrations/rflink/#device-support)
-
-## Additional configuration examples
-
-Multiple sensors with `automatic_add` disabled and `aliases`
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: rflink
- automatic_add: false
- devices:
- oregontemp_0d93_temp:
- sensor_type: temperature
- oregontemp_0d93_bat:
- sensor_type: battery
- tunex_c001_temp:
- sensor_type: temperature
- aliases:
- - xiron_4001_temp
- tunex_c001_hum:
- sensor_type: humidity
- aliases:
- - xiron_4001_hum
- tunex_c001_bat:
- sensor_type: battery
- aliases:
- - xiron_4001_bat
-```
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index c3619c78b2db..b413675da0b3 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -203,14 +203,14 @@ state_off:
description: The payload that represents the `off` state. Used when value that represents `off` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `off`.
required: false
type: string
- default: "`payload_off` if defined, else OFF"
+ default: "`payload_off` if defined, else `OFF`"
state_on:
description: The payload that represents the `on` state. Used when value that represents `on` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `on`.
required: false
type: string
- default: "`payload_on` if defined, else ON"
+ default: "`payload_on` if defined, else `ON`"
state_topic:
- description: The MQTT topic subscribed to receive state updates. A "None" payload resets to an `unknown` state. An empty payload is ignored.
+ description: The MQTT topic subscribed to receive state updates. A "None" payload resets to an `unknown` state. An empty payload is ignored.By default, valid state payloads are `OFF` and `ON`. The accepted payloads can be overridden with the `payload_off` and `payload_on` config options.
required: false
type: string
unique_id:
@@ -260,7 +260,7 @@ For a check, you can use the command line tools `mosquitto_pub` shipped with `mo
mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1/available -m "online"
```
-We can simulate the switch being turned on by publishing the "ON" command message:
+We can simulate the switch being turned on by publishing the `ON` command message:
```bash
mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1/set -m "ON"
diff --git a/source/_integrations/switch.rflink.markdown b/source/_integrations/switch.rflink.markdown
deleted file mode 100644
index 3494cf7af1c0..000000000000
--- a/source/_integrations/switch.rflink.markdown
+++ /dev/null
@@ -1,144 +0,0 @@
----
-title: "RFLink Switch"
-description: "Instructions on how to integrate RFLink switches into Home Assistant."
-ha_category:
- - Switch
-ha_iot_class: Assumed State
-ha_release: 0.38
-ha_domain: rflink
----
-
-The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
-
-First, you have to set up your [RFLink hub](/integrations/rflink/).
-
-The RFLink integration does not know the difference between a `switch`, a `binary_sensor` and a `light`. Therefore all switchable devices are automatically added as `light` by default.
-
-RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
-
-Once the ID of a switch is known, it can be used to configure it as a switch type in HA and, for example, to add it to a different group or configure a nice name.
-
-Configuring devices as switch :
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: rflink
- devices:
- newkaku_0000c6c2_1: {}
- conrad_00785c_0a: {}
-```
-
-{% configuration %}
-device_defaults:
- description: The defaults for the devices.
- required: false
- type: map
- keys:
- fire_event:
- description: Set default `fire_event` for RFLink switch devices (see below).
- required: false
- default: False
- type: boolean
- signal_repetitions:
- description: Set default `signal_repetitions` for RFLink switch devices (see below).
- required: false
- default: 1
- type: integer
-devices:
- description: A list of switches.
- required: false
- type: list
- keys:
- rflink_ids:
- description: RFLink ID of the device
- required: true
- type: map
- keys:
- name:
- description: Name for the device.
- required: false
- default: RFLink ID
- type: string
- aliases:
- description: Alternative RFLink ID's this device is known by.
- required: false
- type: [list, string]
- group_aliases:
- description: "`aliases` which only respond to group commands."
- required: false
- type: [list, string]
- no_group_aliases:
- description: "`aliases` which do not respond to group commands."
- required: false
- type: [list, string]
- fire_event:
- description: Fire a `button_pressed` event if this device is turned on or off.
- required: false
- default: false
- type: boolean
- signal_repetitions:
- description: Set default `signal_repetitions` for RFLink switch devices (see below).
- required: false
- default: 1
- type: integer
- group:
- description: Allow switch to respond to group commands (ALLON/ALLOFF).
- required: false
- default: true
- type: boolean
- aliases:
- description: Alternative RFLink ID's this device is known by.
- required: false
- type: [list, string]
- group_aliases:
- description: "`aliases` which only respond to group commands."
- required: false
- type: [list, string]
- no_group_aliases:
- description: "`aliases` which do not respond to group commands."
- required: false
- type: [list, string]
-{% endconfiguration %}
-
-## Switch state
-
-Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend or wireless remote) the state is known and will be shown in the frontend.
-
-Sometimes a switch is controlled by multiple wireless remotes, each remote has its own code programmed in the switch. To allow tracking of the state when switched via other remotes add the corresponding remote codes as aliases:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: rflink
- devices:
- newkaku_0000c6c2_1:
- name: Ceiling fan
- aliases:
- - newkaku_000000001_2
- - kaku_000001_a
-```
-
-Any on/off command from any alias ID updates the current state of the switch. However, when sending a command through the frontend only the primary ID is used.
-
-## Device support
-
-See [device support](/integrations/rflink/#device-support)
-
-### Additional configuration examples
-
-Multiple switches with signal repetitions and custom names
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: rflink
- device_defaults:
- fire_event: true
- signal_repetitions: 2
- devices:
- newkaku_0000c6c2_1:
- name: Ceiling fan
- conrad_00785c_0a:
- name: Motion sensor kitchen
-```
diff --git a/source/_integrations/switch.xiaomi_aqara.markdown b/source/_integrations/switch.xiaomi_aqara.markdown
deleted file mode 100644
index 06789827df83..000000000000
--- a/source/_integrations/switch.xiaomi_aqara.markdown
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Xiaomi Switch"
-description: "Instructions on how to set up the Xiaomi switch within Home Assistant."
-ha_category:
- - Switch
-ha_release: "0.50"
-ha_iot_class: Local Push
-ha_domain: xiaomi_aqara
----
-
-The `xiaomi_aqara` switch platform allows you to get data from your [Xiaomi aqara](https://www.mi.com/en/) switches.
-
-The requirement is that you have set up [Xiaomi aqara](/integrations/xiaomi_aqara/).
diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown
index 63ea25a6954f..b1ed8db4076c 100644
--- a/source/_integrations/systemmonitor.markdown
+++ b/source/_integrations/systemmonitor.markdown
@@ -23,7 +23,13 @@ memory usage, CPU usage, and running processes.
## Sensors
-**All entities are disabled by default, you need to enable the entities that you wish to use.**
+{% note %}
+
+All entities are disabled by default, you need to enable the entities that you wish to use.
+
+All sensors are also marked as diagnostic and won't be automatically added to automatic dashboards.
+
+{% endnote %}
### Disks
@@ -63,7 +69,11 @@ The `process` binary sensor needs to be configured by the config entry options.
## Disk usage
-**Note:** The disk usage sensors do not support monitoring folder/directory sizes. Instead, it is only concerned with "disks" (more specifically mount points on Linux).
+{% note %}
+
+The disk usage sensors do not support monitoring folder/directory sizes. Instead, it is only concerned with "disks" (more specifically mount points on Linux).
+
+{% endnote %}
```bash
$ df -H
diff --git a/source/_integrations/tedee.markdown b/source/_integrations/tedee.markdown
index 31d5afd42536..4664e4292207 100644
--- a/source/_integrations/tedee.markdown
+++ b/source/_integrations/tedee.markdown
@@ -23,13 +23,13 @@ ha_quality_scale: platinum
This integration interacts with your [Tedee](https://tedee.com) locks by communicating with the Tedee bridge through HTTP. The integration will communicate with your lock locally.
-## Pre-requisites
+## Prerequisites
- You will need the bridge to add your locks using this integration.
- You need to have the local API enabled.
- The bridge firmware needs to be at least version `2.2.18086` for push updates to work without errors.
-If you do not own the bridge, you can still add your locks to Home Assistant through the [HomeKit device integration](/integrations/homekit_controller/). Communication will happen over Bluetooth in that case, and features will be limited.
+If you do not own the bridge, you can still add your locks to Home Assistant through the [HomeKit device integration](/integrations/homekit_controller/) (only for PRO model). Communication will happen over Bluetooth in that case, and features will be limited.
{% note %}
The integration will try to configure callbacks to receive near-real-time push updates from your bridge about your lock state changes. For this to work properly, the bridge must be able to reach your Home Assistant instance. It will prefer the configured `internal_url`, so ensure this address is reachable from your bridge on your network.
@@ -48,10 +48,74 @@ Local Access Token:
type: string
{% endconfiguration_basic %}
+## Supported devices
+
+This integration supports
+
+- Tedee PRO
+- Tedee GO
+
## Binary sensors
-We have three binary sensors: One that indicates whether the battery is currently charging, one indicating if the pull spring is enabled, and one indicating whether the lock is in a "semi-locked" position, meaning the lock has been turned manually and between its normal end positions.
+- **Charging**: indicates whether the battery is currently charging.
+- **Pullspring enabled**: indicates whether the pull spring setting is enabled.
+- **Semi locked**: indicates whether the lock is in a "semi-locked" position. "Semi-locked" means the lock has been turned manually and is between its normal end positions. The lock itself will be unavailable in this position.
+- **Lock uncalibrated** (disabled by default): Shows when the lock is in an "uncalibrated state".
## Sensors
-The integration currently offers two sensors: A battery sensor, indicating the charge of your lock, and a "pull spring duration" sensor, indicating how long (in seconds) your latch will stay pulled after a pull operation (if supported).
+The integration currently offers two sensors: A **battery** sensor, indicating the charge of your lock, and a **"pull spring duration"** sensor, indicating how long (in seconds) your latch will stay pulled after a pull operation (if supported).
+
+## Possible use-cases
+
+- Auto lock/unlock the door based on presence
+- Control your lock from smart home panels
+- Get alerts when battery is low
+
+## Automations
+
+Get started quickly with these automation examples.
+
+### Automatically lock the door when the last person leaves home
+
+{% details "Example YAML configuration" %}
+
+{% raw %}
+
+```yaml
+alias: Lock door when last person leaves
+description: Lock the door when last person leaves the home
+mode: single
+triggers:
+ - trigger: state
+ entity_id:
+ - zone.home
+ to: "0"
+conditions: []
+actions:
+ - action: lock.lock
+ metadata: {}
+ data: {}
+ target:
+ entity_id: lock.lock_a1b2
+```
+
+{% endraw %} {% enddetails %}
+
+## Known Limitations
+
+This integration only supports functionality that is available locally. This means that the following elements are not supported:
+
+- Activity logs
+- Updates
+- Key pads
+
+## Troubleshooting
+
+{% details "Lock state is not updated in real-time" %}
+Make sure your bridge can reach your Home Assistant instance. This means that if you use separate VLANs, you need to configure your Firewall appropriately. Additionally, if you have configured an SSL-enabled endpoint for your Internal URL ({% my network title="Settings > System > Network" %}> Home Assistant URL), try setting it back to the IP address of your instance (or a non-HTTPS URL), as HTTPS sometimes leads to problems with the push updates.
+{% enddetails %}
+
+{% details "Authentication failures when trying to use the integration" %}
+The token that is used to talk to your lock is time limited. Sometimes there were issues when the clock of the Home Assistant host was slightly out of sync, so try to sync your host's clock.
+{% enddetails %}
diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown
index 84cbf0d32c54..84e987f2f070 100644
--- a/source/_integrations/unifiprotect.markdown
+++ b/source/_integrations/unifiprotect.markdown
@@ -260,10 +260,15 @@ The {% term integrations %} provides two proxy views to proxy media content from
These URLs work great when trying to send notifications. Home Assistant will automatically sign the URLs and make them safe for external consumption if used in an {% term automation %} or [notify action](/integrations/notify/).
-| View URL | Description |
-| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `/api/unifiprotect/thumbnail/{nvr_id}/{event_id}` | Proxies a JPEG event thumbnail from UniFi Protect. |
-| `/api/unifiprotect/video/{nvr_id}/{camera_id}/{start}/{end}` | Proxies a MP4 video clip from UniFi Protect for a specific camera. Start and end must be in [ISO 8601 format](https://www.iso.org/iso-8601-date-and-time-format.html). |
+Two URLs for proxy API endpoints:
+
+`/api/unifiprotect/thumbnail/{nvr_id}/{event_id}:`
+
+- Proxies a JPEG event thumbnail from UniFi Protect.
+
+`/api/unifiprotect/video/{nvr_id}/{camera_id}/{start}/{end}`:
+
+- Proxies a MP4 video clip from UniFi Protect for a specific camera. Start and end must be in [ISO 8601 format](https://www.iso.org/iso-8601-date-and-time-format.html).
`nvr_id` can either be the UniFi Protect ID of your NVR or the config entry ID for your UniFi Protect {% term integrations %}. `camera_id` can either be the UniFi Protect ID of your camera or an entity ID of any {% term entity %} provided by the UniFi Protect {% term integrations %} that can be reversed to a UniFi Protect camera (i.e., an entity ID of a detected object sensor).
diff --git a/source/_integrations/xiaomi.markdown b/source/_integrations/xiaomi.markdown
index bdaa7eb0e543..a015dfffa382 100644
--- a/source/_integrations/xiaomi.markdown
+++ b/source/_integrations/xiaomi.markdown
@@ -1,8 +1,9 @@
---
title: Xiaomi
-description: Instructions on how to integrate a video feed (via FFmpeg) as a camera within Home Assistant.
+description: Instructions on how to integrate a video feed (via FFmpeg) as a camera as well as a router within Home Assistant.
ha_category:
- Camera
+ - Presence detection
ha_release: 0.72
ha_iot_class: Local Polling
ha_domain: xiaomi
@@ -10,22 +11,31 @@ ha_platforms:
- camera
- device_tracker
ha_integration_type: integration
+related:
+ - docs: /docs/configuration/
+ title: configuration.yaml file
---
-The `Xiaomi` camera platform allows you to utilize Xiaomi Cameras within Home Assistant.
+This section shows you how to integrate a [Xiaomi router](http://miwifi.com) or a Xiaomi camera into Home Assistant.
-To successfully implement this platform, the Home Assistant host should be capable of multiple simultaneous reads. For every concurrent Home Assistant user, a connection will be made to the camera every 10 seconds. This should normally not be a problem.
+## Camera
-## Preparing the device
+The **Xiaomi** camera integration allows you to utilize Xiaomi cameras within Home Assistant.
-In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device. Instructions for doing so can be found for each models.
+### Prerequisites
-- [Yi 720p](https://github.com/fritz-smh/yi-hack)
-- [Yi Home 17CN / 27US / 47US / 1080p Home / Dome / 1080p Dome](https://github.com/shadow-1/yi-hack-v3)
-- [Recent Yi 1080p Home / 1080p Dome](https://github.com/roleoroleo/yi-hack-MStar)
-- [Xiaofang 1080p Camera](https://github.com/samtap/fang-hacks)
+- To successfully implement this integration, the Home Assistant host should be capable of multiple simultaneous reads.
+ - For every concurrent Home Assistant user, a connection will be made to the camera every 10 seconds. This should normally not be a problem.
-Once installed, please ensure that you have enabled FTP.
+#### Preparing the device
+
+1. In order to integrate the camera with Home Assistant, it is necessary to install a custom firmware on the device.
+ - To install the firmware, follow the steps in the model-specific documentation:
+ - [Yi 720p](https://github.com/fritz-smh/yi-hack)
+ - [Yi Home 17CN / 27US / 47US / 1080p Home / Dome / 1080p Dome](https://github.com/shadow-1/yi-hack-v3)
+ - [Recent Yi 1080p Home / 1080p Dome](https://github.com/roleoroleo/yi-hack-MStar)
+ - [Xiaofang 1080p Camera](https://github.com/samtap/fang-hacks)
+2. Once installed, make sure you have enabled FTP.
{% warning %}
Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files.
@@ -43,9 +53,9 @@ The live stream writing by the camera is not a supported format when Home Assist
If you enabled RTSP server, you can connect to your camera via other Home Assistant camera platforms. However, this RTSP server disables the ability to use the supremely-useful Mi Home app. In order to maintain both Home Assistant compatibility _and_ the native app, this platform retrieves videos via FTP.
{% endtip %}
-## Configuring the platform
+### Configuration
-To enable the platform, add the following lines to your`configuration.yaml` file:
+To enable the camera, add the following lines to your {% term "`configuration.yaml`" %} file:
```yaml
camera:
@@ -93,7 +103,7 @@ ffmpeg_arguments:
The default for `path:` will not work with all cameras. It may be needed that you add that key with the exact path for your device.
{% endimportant %}
-## Image quality
+### Image quality
Any option supported by [`ffmpeg` camera](/integrations/camera.ffmpeg/) can be utilized via the `ffmpeg_arguments` configuration parameter.
@@ -109,7 +119,8 @@ camera:
path: /home/camera/feed
ffmpeg_arguments: "-vf scale=800:450"
```
-## Hostname template
+
+### Hostname template
The hostname/IP address can be provided either a value or from the existing {% term entity %} attributes.
@@ -122,3 +133,44 @@ camera:
password: 1234
path: /tmp/sd/record
```
+
+## Router
+
+The **Xiaomi** router integration offers presence detection by looking at connected devices to a [Xiaomi](http://miwifi.com) router.
+
+### Configuration
+
+To use an Xiaomi router in your installation, add the following to your {% term "`configuration.yaml`" %} file:
+
+```yaml
+# Example configuration.yaml entry
+device_tracker:
+ - platform: xiaomi
+ host: YOUR_ROUTER_IP
+ password: YOUR_ADMIN_PASSWORD
+```
+
+{% configuration %}
+host:
+ description: "The IP address of your router, e.g., `192.168.0.1`."
+ required: true
+ type: string
+username:
+ description: The admin username.
+ required: false
+ default: admin
+ type: string
+password:
+ description: The password for the admin account.
+ required: true
+ type: string
+{% endconfiguration %}
+
+See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked.
+
+### Compatibility test
+
+To ensure that your router is compatible, navigate to `http://YOUR_ROUTER_IP/api/misystem/devicelist`.
+You should see a listing of the device currently connected to your router.
+
+However, some users report that even when the previous URL does not work, they have been able to integrate their Mi Router 3 in Home Assistant. E.g., some users with the Mi Router 3 and firmware version 2.10.46 Stable have integrated their routers successfully and an alternative URL to test integration with is `http://YOUR_ROUTER_IP/cgi-bin/luci/api/misystem/devicelist`. Navigating to this page should show the `{"code":401,"msg":"Invalid token"}` message.
diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown
index 74ee9f7ac0be..22ee825b4a84 100644
--- a/source/_integrations/xiaomi_aqara.markdown
+++ b/source/_integrations/xiaomi_aqara.markdown
@@ -23,7 +23,12 @@ ha_integration_type: integration
The **Xiaomi Gateway (Aqara)** {% term integration %} allows you to integrate [Xiaomi](https://www.mi.com/en/) Aqara-compatible devices into Home Assistant.
-Please note, there are two versions of the hub: v1 and v2. v1 can be used with Home Assistant without any problems, however, v2 might be less straight forward when it comes to enabling the local API, and might even require you to open up your device in order to do so. Xiaomi has suggested this is in the pipeline.
+{% note %}
+There are two versions of the hub: v1 and v2.
+
+- v1 can be used with Home Assistant without any problems.
+- v2 might be less straightforward when it comes to enabling the local API. It might even require you to open up your device to do so. Xiaomi has suggested this is in the pipeline. If you have a Hub 2 and are experiencing issues, check out the [troubleshooting](#troubleshooting) section.
+{% endnote %}
## Supported devices
@@ -88,6 +93,26 @@ name:
The Xiaomi Gateway (Aqara) integration supports the following entities.
+### Covers
+
+The cover entity allows you to control connected Aquara covers. You can do the following:
+
+- Open the cover.
+- Close the cover.
+- Stop the cover motion.
+- Move the cover to a specific position.
+- See the current position of the cover.
+
+### Lights
+
+The light entity allows you to control the internal light of the Xiaomi gateway. The entity is called `light.gateway_light_28ffffffffff`. You can do the following:
+
+- Turn the light on and off.
+- Set the brightness.
+- Set the color using HS or RGB color coding.
+
+The requirement is that you have setup [Xiaomi aqara](/integrations/xiaomi_aqara/).
+
### Locks
An Aqara lock cannot be controlled by Home Assistant. However, the lock entity allows you to view the following data:
@@ -96,6 +121,487 @@ An Aqara lock cannot be controlled by Home Assistant. However, the lock entity a
- If someone tries to unlock the device but fails more than 3 times, the `verified_wrong_times` attribute will be incremented. The counter resets on a successful unlock.
+### Binary sensors
+
+The binary sensor entities allow you to get data from your [Xiaomi](https://www.mi.com/en/) binary sensors.
+
+#### Type of binary sensors supported
+
+List of supported binary sensors, including the following properties (if available): name, model no., Zigbee entity, states, and, event, event, key, and event values.
+
+- **Motion Sensor (1st gen)**
+ - Model no.: RTCGQ01LM
+ - Zigbee entity: motion
+ - States: on, off
+ - Event: `xiaomi_aqara.motion`
+
+- **Motion Sensor (2nd gen)**
+ - Model no.: RTCGQ11LM
+ - Zigbee entity: sensor_motion.aq2
+ - States: on, off
+ - Event: `xiaomi_aqara.motion`
+
+- **Xiaomi Door and Window Sensor (1st gen)**
+ - Model no.: MCCGQ01LM
+ - Zigbee entity: magnet
+ - States: on, off
+
+- **Aqara Door and Window Sensor (2nd gen)**
+ - Model no.: MCCGQ11LM
+ - Zigbee entity: sensor_magnet.aq2
+ - States: on, off
+
+- **Smoke Detector**
+ - Model no.: JTYJ-GD-01LM/BW
+ - Zigbee entity: smoke
+ - States: on, off
+
+- **Gas Leak Detector**
+ - Model no.: JTQJ-BF-01LM/BW
+ - Zigbee entity: natgas
+ - States: on, off
+
+- **Water Leak Sensor**
+ - Model no.: SJCGQ11LM
+ - Zigbee entity: sensor_wleak.aq1
+ - States: on, off
+
+- **Button (1st gen)**
+ - Model no.: WXKG01LM
+ - Zigbee entity: switch
+ - States: on (through long_click_press), off
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `long_click_press`, `hold`, `single`, `double`
+
+- **Button (2nd gen)**
+ - Model no.: WXKG11LM
+ - Zigbee entity: sensor_switch.aq2, remote.b1acn01
+ - States: on (through long_click_press), off
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `single`, `double`, `long_click_press`, `hold`
+
+- **Button (2nd gen, model b)**
+ - Model no.: WXKG12LM
+ - Zigbee entity: sensor_switch.aq3
+ - States: off (always)
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `single`, `double`, `long_click_press`, `shake`
+
+- **Aqara Wireless Switch (Single)**
+ - Model no.: WXKG03LM
+ - Zigbee entity: 86sw1
+ - States: off (always)
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `single`
+
+- **Aqara Wireless Switch (Double)**
+ - Model no.: WXKG02LM
+ - Zigbee entity: 86sw2
+ - States: off (always)
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `single`, `both`
+
+- **Aqara Wireless Switch (Single) (2nd gen)**
+ - Model no.: WXKG03LM
+ - Zigbee entity: remote.b186acn01
+ - States: off (always)
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `single`, `double`, `long`
+
+- **Aqara Wireless Switch (Double) (2nd gen)**
+ - Model no.: WXKG02LM
+ - Zigbee entity: remote.b286acn01
+ - States: off (always)
+ - Event: `xiaomi_aqara.click`
+ - Event key: `click_type`
+ - Event values: `single`, `double`, `long`, `both`, `double_both`, `long_both`
+
+- **Cube**
+ - Model no.: MFKZQ01LM
+ - Zigbee entity: cube
+ - States: off (always)
+ - Event: `xiaomi_aqara.cube_action`
+ - Event key: `action_type`, `action_value` (rotate)
+ - Event values: `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value)
+
+- **Vibration Sensor**
+ - Model no.: DJT11LM
+ - Zigbee entity: vibration
+ - States: off (always)
+ - Event: `xiaomi_aqara.movement`
+ - Event key: `movement_type`
+ - Event values: `vibrate`, `tilt`, `free_fall`
+
+#### Automation examples for binary sensors
+
+##### Motion
+
+```yaml
+- alias: "If there is motion and it's dark turn on the gateway light"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.motion_sensor_158d000xxxxxc2
+ from: "off"
+ to: "on"
+ conditions:
+ - condition: numeric_state
+ entity_id: sensor.illumination_34ce00xxxx11
+ below: 300
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_34ce00xxxx11
+ data:
+ brightness: 5
+ - action: automation.turn_on
+ target:
+ entity_id: automation.MOTION_OFF
+- alias: "If there no motion for 5 minutes turn off the gateway light"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.motion_sensor_158d000xxxxxc2
+ from: "on"
+ to: "off"
+ for:
+ minutes: 5
+ actions:
+ - action: light.turn_off
+ target:
+ entity_id: light.gateway_light_34ce00xxxx11
+ - action: automation.turn_off
+ target:
+ entity_id: automation.Motion_off
+```
+
+##### Door and/or indow binary sensors
+
+```yaml
+- alias: "If the window is open turn off the radiator"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2
+ from: "off"
+ to: "on"
+ actions:
+ - action: climate.set_operation_mode
+ target:
+ entity_id: climate.livingroom
+ data:
+ operation_mode: "Off"
+- alias: "If the window is closed for 5 minutes turn on the radiator again"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2
+ from: "on"
+ to: "off"
+ for:
+ minutes: 5
+ actions:
+ - action: climate.set_operation_mode
+ target:
+ entity_id: climate.livingroom
+ data:
+ operation_mode: "Smart schedule"
+- alias: "Notify if door is opened when away"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.door_window_sensor_15xxxxxxc9xx6b
+ from: "off"
+ to: "on"
+ conditions:
+ - condition: state
+ entity_id: group.family
+ state: "not_home"
+ actions:
+ - action: notify.notify_person
+ data:
+ message: "The door has been opened"
+```
+
+#### Smoke
+
+```yaml
+- alias: "Send notification on fire alarm"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.smoke_sensor_158d0001574899
+ from: "off"
+ to: "on"
+ actions:
+ - action: notify.html5
+ data:
+ title: "Fire alarm!"
+ message: "Fire/Smoke detected!"
+ - action: xiaomi_aqara.play_ringtone
+ data:
+ gw_mac: xxxxxxxxxxxx
+ ringtone_id: 2
+ ringtone_vol: 100
+```
+
+#### Gas
+
+{% raw %}
+
+```yaml
+- alias: "Send notification on gas alarm"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx
+ from: "off"
+ to: "on"
+ actions:
+ - action: notify.html5
+ data:
+ title: "Gas alarm!"
+ message: "Gas with a density of {{ state_attr('binary_sensor.natgas_sensor_158dxxxxxxxxxx', 'density') }} detected."
+```
+
+{% endraw %}
+
+#### Xiaomi Wireless Button
+
+There are 3 versions of the Xiaomi Wireless button:
+
+- For the round shaped button, the available events are `single`, `double`, `hold`, `long_click_press` and `long_click_release`.
+- Aqara branded buttons are square shaped. Model WXKG11LM only supports `single`, `double`, `long_click_press`and `hold` events. WXKG12LM supports `single`, `double`, `long_click_press` and `shake` events.
+
+For the Aqara versions, the delay between two clicks to generate a double-click must be larger than with the round button. Clicking too quickly generates a single-click event.
+
+```yaml
+- alias: "Toggle dining light on single press"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.switch_158d000xxxxxc2
+ click_type: single
+ actions:
+ - action: switch.toggle
+ target:
+ entity_id: switch.wall_switch_left_158d000xxxxx01
+- alias: "Toggle couch light on double click"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.switch_158d000xxxxxc2
+ click_type: double
+ actions:
+ - action: switch.toggle
+ target:
+ entity_id: switch.wall_switch_right_158d000xxxxx01
+- alias: "Let a dog bark on long press"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.switch_158d000xxxxxc2
+ click_type: long_click_press
+ actions:
+ - action: xiaomi_aqara.play_ringtone
+ data:
+ gw_mac: xxxxxxxxxxxx
+ ringtone_id: 8
+ ringtone_vol: 8
+```
+
+##### Xiaomi Cube
+
+Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall` and `rotate`. The integration stores the last action as the attribute `last_action`.
+
+```yaml
+- alias: "Cube event flip90"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.cube_action
+ event_data:
+ entity_id: binary_sensor.cube_15xxxxxxxxxxxx
+ action_type: flip90
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_28xxxxxxxxxx
+ data:
+ color_name: "springgreen"
+- alias: "Cube event flip180"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.cube_action
+ event_data:
+ entity_id: binary_sensor.cube_15xxxxxxxxxxxx
+ action_type: flip180
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_28xxxxxxxxxx
+ data:
+ color_name: "darkviolet"
+- alias: "Cube event move"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.cube_action
+ event_data:
+ entity_id: binary_sensor.cube_15xxxxxxxxxxxx
+ action_type: move
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_28xxxxxxxxxx
+ data:
+ color_name: "gold"
+- alias: "Cube event tap_twice"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.cube_action
+ event_data:
+ entity_id: binary_sensor.cube_15xxxxxxxxxxxx
+ action_type: tap_twice
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_28xxxxxxxxxx
+ data:
+ color_name: "deepskyblue"
+- alias: "Cube event shake_air"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.cube_action
+ event_data:
+ entity_id: binary_sensor.cube_15xxxxxxxxxxxx
+ action_type: shake_air
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_28xxxxxxxxxx
+ data:
+ color_name: "blue"
+```
+
+##### Aqara Wireless Switch
+
+The Aqara Wireless Switch is available as single-key and double-key version. Each key behaves like the Wireless Button limited to the click event `single`. The double key version adds a third device called `binary_sensor.wall_switch_both_158xxxxxxxxx12` which reports a click event called `both` if both keys are pressed.
+
+{% raw %}
+
+```yaml
+- alias: "Decrease brightness of the gateway light"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.wall_switch_left_158xxxxxxxxx12
+ click_type: single
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_34xxxxxxxx13
+ data:
+ brightness: >-
+ {% if state_attr('light.gateway_light_34xxxxxxxx13', 'brightness') %}
+ {% if state_attr('light.gateway_light_34xxxxxxxx13', 'brightness') - 60 >= 10 %}
+ {{state_attr('light.gateway_light_34xxxxxxxx13', 'brightness') - 60}}
+ {% else %}
+ {{state_attr('light.gateway_light_34xxxxxxxx13', 'brightness')}}
+ {% endif %}
+ {% else %}
+ 10
+ {% endif %}
+
+- alias: "Increase brightness of the gateway light"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.wall_switch_right_158xxxxxxxxx12
+ click_type: single
+ actions:
+ - action: light.turn_on
+ target:
+ entity_id: light.gateway_light_34xxxxxxxx13
+ data:
+ brightness: >-
+ {% if state_attr('light.gateway_light_34xxxxxxxx13', 'brightness') %}
+ {% if state_attr('light.gateway_light_34xxxxxxxx13', 'brightness') + 60 <= 255 %}
+ {{state_attr('light.gateway_light_34xxxxxxxx13', 'brightness') + 60}}
+ {% else %}
+ {{state_attr('light.gateway_light_34xxxxxxxx13', 'brightness')}}
+ {% endif %}
+ {% else %}
+ 10
+ {% endif %}
+
+- alias: "Turn off the gateway light"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.wall_switch_both_158xxxxxxxxx12
+ click_type: both
+ actions:
+ - action: light.turn_off
+ target:
+ entity_id: light.gateway_light_34xxxxxxxx13
+```
+
+{% endraw %}
+
+#### Vibration sensor
+
+This automation toggles the living room lamp on vibration/tilt.
+
+```yaml
+- alias: "Turn on Living Room Lamp on vibration"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.movement
+ event_data:
+ entity_id: binary_sensor.vibration_xxxx000000
+ movement_type: vibrate
+ actions:
+ - action: light.toggle
+ target:
+ entity_id: light.living_room_lamp
+- alias: "Turn on Living Room Lamp on tilt"
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.movement
+ event_data:
+ entity_id: binary_sensor.vibration_xxxx000000
+ movement_type: tilt
+ actions:
+ - action: light.toggle
+ target:
+ entity_id: light.living_room_lamp
+```
+
+### Sensors
+
+The sensor entity allows you to read data from your [Xiaomi](https://www.mi.com/en/) sensors.
+
+The following sensor types are supported:
+
+- Battery level (in percentage)
+- Bed activity / vibration (in micrometers)
+- Coordination
+- Humidity (in percentage)
+- Illumination (in lux)
+- Power consumed (in kWh)
+- Power load (in Watt)
+- Pressure (in hPa)
+- Temperature (depends on UI settings, Celsius or Fahrenheit)
+- Tilt angle
+
+## Switches
+
+The switch entity allows you to get data from your [Xiaomi aqara](https://www.mi.com/en/) switches and to switch between states.
+
## Actions
The gateway provides the following actions:
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index 52e4dd3963cc..c35ff5c3768d 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -82,17 +82,44 @@ The most common problems are:
The `xiaomi_miio` gateway {% term integration %} allows you to control the gateway and its connected subdevices.
-### Supported Xiaomi gateway models:
-
-| Gateway name | Zigbee id | model | supported |
-| ------------------ | ------------------- | ------------------------ | ------------------------------ |
-| Chinese version | lumi.gateway.v3 | DGNWG02LM | yes |
-| European version | lumi.gateway.mieu01 | ZHWG11LM-763 / DGNWQ05LM | yes (cloud credentials needed) |
-| Aqara hub | lumi.gateway.aqhm01 | ZHWG11LM | yes |
-| Mijia Zigbee 3.0 | lumi.gateway.mgl03 | ZNDMWG03LM | yes |
-| Aqara AC Companion | lumi.acpartner.v1 | KTBL01LM | untested |
-| Mi AC Companion | lumi.acpartner.v2 | KTBL02LM | untested |
-| Aqara AC Companion | lumi.acpartner.v3 | KTBL11LM | yes |
+### Supported Xiaomi gateway models
+
+The following list shows the Gateway name, the model number, the Zigbee ID, and whether the model is supported or not in Home Assistant.
+
+- **Chinese version**
+ - Model: DGNWG02LM
+ - Zigbee ID: lumi.gateway.v3
+ - Supported: Yes
+
+- **European version**
+ - Model: ZHWG11LM-763 / DGNWQ05LM
+ - Zigbee ID: lumi.gateway.mieu01
+ - Supported: Yes (cloud credentials needed)
+
+- **Aqara hub**
+ - Model: ZHWG11LM
+ - Zigbee ID: lumi.gateway.aqhm01
+ - Supported: Yes
+
+- **Mijia Zigbee 3.0**
+ - Model: ZNDMWG03LM
+ - Zigbee ID: lumi.gateway.mgl03
+ - Supported: Yes
+
+- **Aqara AC Companion**
+ - Model: KTBL01LM
+ - Zigbee ID: lumi.acpartner.v1
+ - Supported: Untested
+
+- **Mi AC Companion**
+ - Model: KTBL02LM
+ - Zigbee ID: lumi.acpartner.v2
+ - Supported: Untested
+
+- **Aqara AC Companion**
+ - Model: KTBL11LM
+ - Zigbee ID: lumi.acpartner.v3
+ - Supported: Yes
Some gateways (lumi.gateway.mieu01) do not support getting the connected subdevices locally. For those gateways, cloud credentials can be specified during the config flow and the "Use cloud to get connected subdevices" can be enabled in the options flow (after setting up the {% term integration %}, click Configuration in the sidebar, then click Integrations and then click Options on the already set up Xiaomi Miio Gateway {% term integration %}). The connected subdevices will then be retrieved from the Xiaomi Miio cloud (internet), control and status updates of those subdevices will then further take place over local network connection. A re-authentication flow may be triggered when no cloud credentials are provided yet and are needed for that particular gateway model.
@@ -111,65 +138,107 @@ Not yet implemented features (but possible):
These subdevices are fully implemented in HomeAssistant:
-| Subdevice name | Zigbee id | model | features |
-| -------------------------------- | --------------------- | ---------- | ------------------------------------------------ |
-| Weather sensor | lumi.sensor_ht | WSDCGQ01LM | readout `temperature` and `humidity` |
-| Weather sensor | lumi.weather.v1 | WSDCGQ11LM | readout `temperature`, `humidity` and `pressure` |
-| Wall switch single | lumi.ctrl_ln1 | QBKG11LM | load_power, status, turn_on, turn_off, toggle |
-| Wall switch single | lumi.ctrl_ln1.aq1 | QBKG11LM | load_power, status, turn_on, turn_off, toggle |
-| Wall switch no neutral | lumi.ctrl_neutral1.v1 | QBKG04LM | status, turn_on, turn_off, toggle |
-| Wall switch double | lumi.ctrl_ln2 | QBKG12LM | load_power, status, turn_on, turn_off, toggle |
-| Wall switch double | lumi.ctrl_ln2.aq1 | QBKG12LM | load_power, status, turn_on, turn_off, toggle |
-| Wall switch double no neutral | lumi.ctrl_neutral2 | QBKG03LM | status, turn_on, turn_off, toggle |
-| D1 wall switch triple | lumi.switch.n3acn3 | QBKG26LM | load_power, status, turn_on, turn_off, toggle |
-| D1 wall switch triple no neutral | lumi.switch.l3acn3 | QBKG25LM | load_power, status, turn_on, turn_off, toggle |
-| Wall outlet | lumi.ctrl_86plug.v1 | QBCZ11LM | status, turn_on, turn_off, toggle |
-| Wall outlet | lumi.ctrl_86plug.aq1 | QBCZ11LM | load_power, status, turn_on, turn_off, toggle |
-| Plug | lumi.plug | ZNCZ02LM | load_power, status, turn_on, turn_off, toggle |
-| Relay | lumi.relay.c2acn01 | LLKZMK11LM | load_power, status, turn_on, turn_off, toggle |
-| Smart bulb E27 | lumi.light.aqcn02 | ZNLDP12LM | on/off, brightness, color temperature |
-| IKEA smart bulb E27 white | ikea.light.led1545g12 | LED1545G12 | on/off, brightness, color temperature |
-| IKEA smart bulb E27 white | ikea.light.led1546g12 | LED1546G12 | on/off, brightness, color temperature |
-| IKEA smart bulb E12 white | ikea.light.led1536g5 | LED1536G5 | on/off, brightness, color temperature |
-| IKEA smart bulb GU10 white | ikea.light.led1537r6 | LED1537R6 | on/off, brightness, color temperature |
-| IKEA smart bulb E27 white | ikea.light.led1623g12 | LED1623G12 | on/off, brightness, color temperature |
-| IKEA smart bulb GU10 white | ikea.light.led1650r5 | LED1650R5 | on/off, brightness, color temperature |
-| IKEA smart bulb E12 white | ikea.light.led1649c5 | LED1649C5 | on/off, brightness, color temperature |
+- **Weather sensor (WSDCGQ01LM)**
+ - Zigbee ID: `lumi.sensor_ht`
+ - Features: readout `temperature` and `humidity`
+- **Weather sensor (WSDCGQ11LM)**
+ - Zigbee ID: `lumi.weather.v1`
+ - Features: readout `temperature`, `humidity` and `pressure`
+- **Wall switch single (QBKG11LM)**
+ - Zigbee ID: `lumi.ctrl_ln1`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Wall switch single (QBKG11LM)**
+ - Zigbee ID: `lumi.ctrl_ln1.aq1`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Wall switch no neutral (QBKG04LM)**
+ - Zigbee ID: `lumi.ctrl_neutral1.v1`
+ - Features: status, turn_on, turn_off, toggle
+- **Wall switch double (QBKG12LM)**
+ - Zigbee ID: `lumi.ctrl_ln2`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Wall switch double (QBKG12LM)**
+ - Zigbee ID: `lumi.ctrl_ln2.aq1`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Wall switch double no neutral (QBKG03LM)**
+ - Zigbee ID: `lumi.ctrl_neutral2`
+ - Features: status, turn_on, turn_off, toggle
+- **D1 wall switch triple (QBKG26LM)**
+ - Zigbee ID: `lumi.switch.n3acn3`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **D1 wall switch triple no neutral (QBKG25LM)**
+ - Zigbee ID: `lumi.switch.l3acn3`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Wall outlet (QBCZ11LM)**
+ - Zigbee ID: `lumi.ctrl_86plug.v1`
+ - Features: status, turn_on, turn_off, toggle
+- **Wall outlet (QBCZ11LM)**
+ - Zigbee ID: `lumi.ctrl_86plug.aq1`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Plug (ZNCZ02LM)**
+ - Zigbee ID: `lumi.plug`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Relay (LLKZMK11LM)**
+ - Zigbee ID: `lumi.relay.c2acn01`
+ - Features: load_power, status, turn_on, turn_off, toggle
+- **Smart bulb E27 (ZNLDP12LM)**
+ - Zigbee ID: `lumi.light.aqcn02`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb E27 white (LED1545G12)**
+ - Zigbee ID: `ikea.light.led1545g12`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb E27 white (LED1546G12)**
+ - Zigbee ID: `ikea.light.led1546g12`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb E12 white (LED1536G5)**
+ - Zigbee ID: `ikea.light.led1536g5`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb GU10 white (LED1537R6)**
+ - Zigbee ID: `ikea.light.led1537r6`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb E27 white (LED1623G12)**
+ - Zigbee ID: `ikea.light.led1623g12`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb GU10 white (LED1650R5)**
+ - Zigbee ID: `ikea.light.led1650r5`
+ - Features: on/off, brightness, color temperature
+- **IKEA smart bulb E12 white (LED1649C5)**
+ - Zigbee ID: `ikea.light.led1649c5`
+ - Features: on/off, brightness, color temperature
### Recognized subdevices (not yet implemented)
These subdevices are recognized by the python-miio code but are still being worked on (not yet implemented).
-| Subdevice name | Zigbee id | model |
-| ------------------------------ | ----------------------- | --------------- |
-| Button | lumi.sensor_switch | WXKG01LM |
-| Button | lumi.sensor_switch.aq2 | WXKG11LM 2015 |
-| Button | lumi.sensor_switch.aq3 | WXKG12LM |
-| Button | lumi.remote.b1acn01 | WXKG11LM 2018 |
-| Cube | lumi.sensor_cube.v1 | MFKZQ01LM |
-| Cube | lumi.sensor_cube.aqgl01 | MFKZQ01LM |
-| Motion sensor | lumi.sensor_motion | RTCGQ01LM |
-| Motion sensor | lumi.sensor_motion.aq2 | RTCGQ11LM |
-| Door sensor | lumi.sensor_magnet | MCCGQ01LM |
-| Door sensor | lumi.sensor_magnet.aq2 | MCCGQ11LM |
-| Vibration sensor | lumi.vibration.aq1 | DJT11LM |
-| Honeywell smoke detector | lumi.sensor_smoke | JTYJ-GD-01LM/BW |
-| Honeywell natural gas detector | lumi.sensor_natgas | JTQJ-BF-01LM/BW |
-| Water leak sensor | lumi.sensor_wleak.aq1 | SJCGQ11LM |
-| Remote switch single | lumi.sensor_86sw1.v1 | WXKG03LM 2016 |
-| Remote switch single | lumi.remote.b186acn01 | WXKG03LM 2018 |
-| D1 remote switch single | lumi.remote.b186acn02 | WXKG06LM |
-| Remote switch double | lumi.sensor_86sw2.v1 | WXKG02LM 2016 |
-| Remote switch double | lumi.remote.b286acn01 | WXKG02LM 2018 |
-| D1 remote switch double | lumi.remote.b286acn02 | WXKG07LM |
-| Curtain | lumi.curtain | ZNCLDJ11LM |
-| Curtain | lumi.curtain.aq2 | ZNGZDJ11LM |
-| Curtain B1 | lumi.curtain.hagl04 | ZNCLDJ12LM |
-| Door lock S1 | lumi.lock.aq1 | ZNMS11LM |
-| Door lock S2 | lumi.lock.acn02 | ZNMS12LM |
-| Door lock S2 pro | lumi.lock.acn03 | ZNMS13LM |
-| Vima cylinder lock | lumi.lock.v1 | A6121 |
-| Thermostat S2 | lumi.airrtc.tcpecn02 | KTWKQ03ES |
+The list shows the device name, the model number, and the Zigbee ID.
+
+- **Button** (WXKG01LM): `lumi.sensor_switch`
+- **Button** (WXKG11LM 2015): `lumi.sensor_switch.aq2`
+- **Button** (WXKG12LM): `lumi.sensor_switch.aq3`
+- **Button** (WXKG11LM 2018): `lumi.remote.b1acn01`
+- **Cube** (MFKZQ01LM): `lumi.sensor_cube.v1`
+- **Cube** (MFKZQ01LM): `lumi.sensor_cube.aqgl01`
+- **Motion sensor** (RTCGQ01LM): `lumi.sensor_motion`
+- **Motion sensor** (RTCGQ11LM): `lumi.sensor_motion.aq2`
+- **Door sensor** (MCCGQ01LM): `lumi.sensor_magnet`
+- **Door sensor** (MCCGQ11LM): `lumi.sensor_magnet.aq2`
+- **Vibration sensor** (DJT11LM): `lumi.vibration.aq1`
+- **Honeywell smoke detector** (JTYJ-GD-01LM/BW): `lumi.sensor_smoke`
+- **Honeywell natural gas detector** (JTQJ-BF-01LM/BW): `lumi.sensor_natgas`
+- **Water leak sensor** (SJCGQ11LM): `lumi.sensor_wleak.aq1`
+- **Remote switch single** (WXKG03LM 2016): `lumi.sensor_86sw1.v1`
+- **Remote switch single** (WXKG03LM 2018): `lumi.remote.b186acn01`
+- **D1 remote switch single** (WXKG06LM): `lumi.remote.b186acn02`
+- **Remote switch double** (WXKG02LM 2016): `lumi.sensor_86sw2.v1`
+- **Remote switch double** (WXKG02LM 2018): `lumi.remote.b286acn01`
+- **D1 remote switch double** (WXKG07LM): `lumi.remote.b286acn02`
+- **Curtain** (ZNCLDJ11LM): `lumi.curtain`
+- **Curtain** (ZNGZDJ11LM): `lumi.curtain.aq2`
+- **Curtain B1** (ZNCLDJ12LM): `lumi.curtain.hagl04`
+- **Door lock S1** (ZNMS11LM): `lumi.lock.aq1`
+- **Door lock S2** (ZNMS12LM): `lumi.lock.acn02`
+- **Door lock S2 pro** (ZNMS13LM): `lumi.lock.acn03`
+- **Vima cylinder lock** (A6121): `lumi.lock.v1`
+- **Thermostat S2** (KTWKQ03ES): `lumi.airrtc.tcpecn02`
## Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)
@@ -203,57 +272,53 @@ The Air Purifiers, Air Humidifiers and Standing Fans use multiple platforms to a
Supported devices:
-| Name | Model | Model no. |
-| ---------------------- | ----------------------- | ------------ |
-| Air Purifier | zhimi.airpurifier.v1 | |
-| Air Purifier 2 | zhimi.airpurifier.v2 | FJY4006CN |
-| Air Purifier V3 | zhimi.airpurifier.v3 | |
-| Air Purifier V5 | zhimi.airpurifier.v5 | |
-| Air Purifier Pro | zhimi.airpurifier.v6 | |
-| Air Purifier Pro V7 | zhimi.airpurifier.v7 | |
-| Air Purifier 2 (mini) | zhimi.airpurifier.m1 | |
-| Air Purifier (mini) | zhimi.airpurifier.m2 | |
-| Air Purifier MA1 | zhimi.airpurifier.ma1 | |
-| Air Purifier MA2 | zhimi.airpurifier.ma2 | |
-| Air Purifier 2S | zhimi.airpurifier.mc1 | |
-| Air Purifier Super | zhimi.airpurifier.sa1 | |
-| Air Purifier Super 2 | zhimi.airpurifier.sa2 | |
-| Air Purifier 3 (2019) | zhimi.airpurifier.ma4 | AC-M6-SC |
-| Air Purifier 3H (2019) | zhimi.airpurifier.mb3 | |
-| Air Purifier Pro H | zhimi.airpurifier.va1 | |
-| Air Purifier Pro H EU | zhimi.airpurifier.vb2 | |
-| Air Purifier 3C | zhimi.airpurifier.mb4 | |
-| Air Purifier 3C | zhimi.airp.mb4a | |
-| Air Purifier ZA1 | zhimi.airpurifier.za1 | |
-| Air Purifier 4 | zhimi.airp.mb5 | AC-M16-SC |
-| Air Purifier 4 PRO | zhimi.airp.vb4 | AC-M15-SC |
-| Air Fresh A1 | dmaker.airfresh.a1 | MJXFJ-150-A1 |
-| Air Fresh VA2 | zhimi.airfresh.va2 | |
-| Air Fresh VA4 | zhimi.airfresh.va4 | |
-| Air Fresh T2017 | dmaker.airfresh.t2017 | MJXFJ-300-G1 |
-| Air Humidifier | zhimi.humidifier.v1 | |
-| Air Humidifier CA1 | zhimi.humidifier.ca1 | |
-| Air Humidifier CA4 | zhimi.humidifier.ca4 | |
-| Air Humidifier CB1 | zhimi.humidifier.cb1 | |
-| Air Humidifier JSQ | deerma.humidifier.jsq | |
-| Air Humidifier JSQ1 | deerma.humidifier.jsq1 | |
-| Air Humidifier MJJSQ | deerma.humidifier.mjjsq | |
-| Standing Fan 1X | dmaker.fan.p5 | |
-| Inverter Pedestal Fan | zhimi.fan.za1 | |
-| Standing Fan 2 | zhimi.fan.za3 | |
-| Standing Fan 2S | zhimi.fan.za4 | |
-| Standing Fan | zhimi.fan.sa1 | |
-| DC Pedestal Fan | zhimi.fan.v2 | |
-| DC Pedestal Fan | zhimi.fan.v3 | |
-| Standing Fan 1C | dmaker.fan.1c | |
-| Tower Fan | dmaker.fan.p9 | |
-| Standing Fan 2 | dmaker.fan.p10 | |
-| Standing Fan Pro | dmaker.fan.p11 | |
-| Standing Fan 3 | zhimi.fan.za5 | |
-
-### Features
-
-### Air Purifier 2 (zhimi.airpurifier.v2)
+The list includes device name, model number (if available), and model.
+
+- **Air Purifier**: `zhimi.airpurifier.v1`
+- **Air Purifier 2** (FJY4006CN): `zhimi.airpurifier.v2`
+- **Air Purifier V3**: `zhimi.airpurifier.v3`
+- **Air Purifier V5**: `zhimi.airpurifier.v5`
+- **Air Purifier Pro**: `zhimi.airpurifier.v6`
+- **Air Purifier Pro V7**: `zhimi.airpurifier.v7`
+- **Air Purifier 2 (mini)**: `zhimi.airpurifier.m1`
+- **Air Purifier (mini)**: `zhimi.airpurifier.m2`
+- **Air Purifier MA1**: `zhimi.airpurifier.ma1`
+- **Air Purifier MA2**: `zhimi.airpurifier.ma2`
+- **Air Purifier 2S**: `zhimi.airpurifier.mc1`
+- **Air Purifier Super**: `zhimi.airpurifier.sa1`
+- **Air Purifier Super 2**: `zhimi.airpurifier.sa2`
+- **Air Purifier 3 (2019) (AC-M6-SC)**: `zhimi.airpurifier.ma4`
+- **Air Purifier 3H (2019)**: `zhimi.airpurifier.mb3`
+- **Air Purifier Pro H**: `zhimi.airpurifier.va1`
+- **Air Purifier Pro H EU**: `zhimi.airpurifier.vb2`
+- **Air Purifier 3C**: `zhimi.airpurifier.mb4`
+- **Air Purifier 3C**: `zhimi.airp.mb4a`
+- **Air Purifier ZA1**: `zhimi.airpurifier.za1`
+- **Air Purifier 4 (AC-M16-SC)**: `zhimi.airp.mb5`
+- **Air Purifier 4 PRO (AC-M15-SC)**: `zhimi.airp.vb4`
+- **Air Fresh A1 (MJXFJ-150-A1)**: `dmaker.airfresh.a1`
+- **Air Fresh VA2**: `zhimi.airfresh.va2`
+- **Air Fresh VA4**: `zhimi.airfresh.va4`
+- **Air Fresh T2017 (MJXFJ-300-G1)**: `dmaker.airfresh.t2017`
+- **Air Humidifier**: `zhimi.humidifier.v1`
+- **Air Humidifier CA1**: `zhimi.humidifier.ca1`
+- **Air Humidifier CA4**: `zhimi.humidifier.ca4`
+- **Air Humidifier CB1**: `zhimi.humidifier.cb1`
+- **Air Humidifier JSQ**: `deerma.humidifier.jsq`
+- **Air Humidifier JSQ1**: `deerma.humidifier.jsq1`
+- **Air Humidifier MJJSQ**: `deerma.humidifier.mjjsq`
+- **Standing Fan 1X**: `dmaker.fan.p5`
+- **Inverter Pedestal Fan**: `zhimi.fan.za1`
+- **Standing Fan 2**: `zhimi.fan.za3`
+- **Standing Fan 2S**: `zhimi.fan.za4`
+- **Standing Fan**: `zhimi.fan.sa1`
+- **DC Pedestal Fan**: `zhimi.fan.v2`
+- **DC Pedestal Fan**: `zhimi.fan.v3`
+- **Standing Fan 1C**: `dmaker.fan.1c`
+- **Tower Fan**: `dmaker.fan.p9`
+- **Standing Fan 2**: `dmaker.fan.p10`
+- **Standing Fan Pro**: `dmaker.fan.p11`
+- **Standing Fan 3**: `zhimi.fan.za5`
- Power (on, off)
- Operation modes (Auto, Silent, Favorite, Idle)
@@ -275,16 +340,14 @@ Supported devices:
- Sensor entities
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining life of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Purify Volume | The volume of purified air in qubic meter | False |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+- **Filter Lifetime Remaining**: The remaining life of the filter. Enabled by default.
+- **Filter Use**: Filter usage time in hours. Enabled by default.
+- **Humidity**: The current humidity measured. Enabled by default.
+- **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+- **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+- **Purify Volume**: The volume of purified air in cubic meter. Disabled by default.
+- **Temperature**: The current temperature measured. Enabled by default.
+- **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -315,19 +378,16 @@ Supported devices:
| Volume | Set the volume |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| --------------------- | ------------------------------------------------------------- | ------------------ |
-| Filter Life Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Illuminance | The current illuminance measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Purify Volume | The volume of purified air in qubic meter | False |
-| Second Motor Speed | The current second motor speed measured in rpm | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+ - **Filter Life Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Illuminance**: The current illuminance measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Purify Volume**: The volume of purified air in cubic meter. Disabled by default.
+ - **Second Motor Speed**: The current second motor speed measured in rpm. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -353,18 +413,15 @@ Supported devices:
| Volume | Set the volume |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Illuminance | The current illuminance measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Second Motor Speed | The current second motor speed measured in rpm | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Illuminance**: The current illuminance measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Second Motor Speed**: The current second motor speed measured in rpm. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -396,17 +453,14 @@ Supported devices:
| Favorite Level | Set the favorite level |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | --------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Temperature | The current temperature measured | True |
-| Illuminance | The current illuminance meassured on top of the device 0-200lux | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Illuminance**: The current illuminance measured on top of the device (0-200 lux). Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -432,16 +486,13 @@ Supported devices:
| Favorite Level | Set the favorite level |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -452,7 +503,7 @@ Supported devices:
| Learn Mode | Turn on/off the learn mode |
| LED | Turn on/off the LED |
-### Air Purifier 3/3H (2019) (zhimi.airpurifier.ma4/zhimi.airpurifier.mb3)
+### Air Purifier 3/3H (2019) (zhimi.airpurifier.ma4, zhimi.airpurifier.mb3)
This model uses newer MiOT communication protocol.
@@ -474,17 +525,14 @@ This model uses newer MiOT communication protocol.
| LED Brightness | Controls the brightness of the LEDs (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Purify Volume | The volume of purified air in qubic meter | False |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Purify Volume**: The volume of purified air in cubic meter. Disabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -493,7 +541,7 @@ This model uses newer MiOT communication protocol.
| Buzzer | Turn on/off the buzzer |
| Child Lock | Turn on/off the child lock |
-### Air Purifier Pro H/Pro H EU (zhimi.airpurifier.va1/zhimi.airpurifier.vb2)
+### Air Purifier Pro H, Pro H EU (zhimi.airpurifier.va1, zhimi.airpurifier.vb2)
- Power (on, off)
- Operation modes (Auto, Silent, Favorite, Fan)
@@ -513,17 +561,14 @@ This model uses newer MiOT communication protocol.
| LED Brightness | Controls the brightness of the LEDs (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Purify Volume | The volume of purified air in qubic meter | False |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Purify Volume**: The volume of purified air in cubic meter. Disabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -532,7 +577,7 @@ This model uses newer MiOT communication protocol.
| Buzzer | Turn on/off the buzzer |
| Child Lock | Turn on/off the child lock |
-### Air Purifier 3C (zhimi.airpurifier.mb4/zhimi.airp.mb4a)
+### Air Purifier 3C (zhimi.airpurifier.mb4, zhimi.airp.mb4a)
- Power (on, off)
- Operation modes (Auto, Silent, Favorite)
@@ -544,13 +589,10 @@ This model uses newer MiOT communication protocol.
| LED Brightness | Set the LED brightness |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
- Switch entities
@@ -570,16 +612,13 @@ This model uses newer MiOT communication protocol.
| Favorite Level | Set the favorite level |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | -------------------------------------------------------------- | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Humidity | The current humidity measured | True |
-| Temperature | The current temperature measured | True |
-| TVOC | The current concentration of Total Organic Volatile Components | True |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **TVOC**: The current concentration of Total Organic Volatile Components. Enabled by default.
- Switch entities
@@ -604,18 +643,16 @@ This model uses newer MiOT communication protocol.
- `extra_features`
- `use_time`
- `button_pressed`
-- Sensor entities
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Illuminance | The current illuminance measured | True |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| Second Motor Speed | The current second motor speed measured in rpm | True |
-| Purify Volume | The volume of purified air in qubic meter | False |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+- Sensor entities
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Illuminance**: The current illuminance measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Purify Volume**: The volume of purified air in cubic meter. Disabled by default.
+ - **Second Motor Speed**: The current second motor speed measured in rpm. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -625,7 +662,7 @@ This model uses newer MiOT communication protocol.
| Child Lock | Turn on/off the child lock |
| LED | Turn on/off the LED |
-### Air Purifier 4/4 PRO (zhimi.airp.mb5/zhimi.airp.vb4)
+### Air Purifier 4/4 PRO (zhimi.airp.mb5, zhimi.airp.vb4)
These models use newer MiOT communication protocol.
@@ -646,18 +683,15 @@ These models use newer MiOT communication protocol.
| LED Brightness | Controls the brightness of the Display (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------ | ------------------ |
-| Filter Lifetime Remaining | The remaining lifetime of the filter in % | True |
-| Filter Time Left | The remaining lifetime of the filter in days | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| Motor Speed | The current motor speed measured in rpm | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| PM10 | The current particulate matter 10 measured(4 PRO only) | True |
-| Purify Volume | The volume of purified air in qubic meter | False |
-| Temperature | The current temperature measured | True |
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter in %. Enabled by default.
+ - **Filter Time Left**: The remaining lifetime of the filter in days. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Motor Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **PM10**: The current particulate matter 10 measured (4 PRO only). Enabled by default.
+ - **Purify Volume**: The volume of purified air in cubic meter. Disabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
- Switch entities
@@ -711,17 +745,14 @@ These models use newer MiOT communication protocol.
- Attributes (fan platform)
- `use_time`
- `extra_features`
-- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------------------- | ------------------------------------------------------------- | ------------------ |
-| Carbon Dioxide | The current carbon dioxide measured in ppm | True |
-| Filter Lifetime Remaining | The remaining lifetime of the filter | True |
-| Filter Use | Filter usage time in hours | True |
-| Humidity | The current humidity measured | True |
-| PM2.5 | The current particulate matter 2.5 measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+- Sensor entities|
+ - **Carbon Dioxide**: The current carbon dioxide measured in ppm. Enabled by default.
+ - **Filter Lifetime Remaining**: The remaining lifetime of the filter. Enabled by default.
+ - **Filter Use**: Filter usage time in hours. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **PM2.5**: The current particulate matter 2.5 measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Select entities
@@ -776,38 +807,26 @@ These models use newer MiOT communication protocol.
- Power (on, off)
- Operation modes (Auto, Sleep, Favorite)
- Binary sensor entities
-
-| Binary sensor | Description |
-| --------------------- | -------------------------------------- |
-| Auxiliary Heat Status | Indicates if the heater is actually on |
+ - **Auxiliary Heat Status**: Indicates if the heater is actually on
- Button entities
-
-| Button | Description |
-| ------------------ | ---------------------------------------------------- |
-| Reset Dust Filter | Resets filter lifetime and usage of the dust filter |
-| Reset Upper Filter | Resets filter lifetime and usage of the upper filter |
+ - **Reset Dust Filter**: Resets filter lifetime and usage of the dust filter
+ - **Reset Upper Filter**: Resets filter lifetime and usage of the upper filter
- Select entities
-
-| Select | Description |
-| -------------------- | -------------------------------------------------------------- |
-| Auxiliary Heat Level | Controls the level of the heater (Low, Medium, High) |
-| Display Orientation | Controls the orientation of the display (Forward, Left, Right) |
+ - **Auxiliary Heat Level**: Controls the level of the heater (Low, Medium, High)
+ - **Display Orientation**: Controls the orientation of the display (Forward, Left, Right)
- Sensor entities
-
-| Sensor | Description |
-| ------------------------------------ | -------------------------------------------------- |
-| Carbon Dioxide | The current carbon dioxide in ppm |
-| Dust filter lifetime remaining | The remaining lifetime of the dust filter |
-| Dust filter lifetime remaining days | The remaining lifetime of the dust filter in days |
-| Upper filter lifetime remaining | The remaining lifetime of the upper filter |
-| Upper filter lifetime remaining days | The remaining lifetime of the upper filter in days |
-| PM2.5 | The current particulate matter 2.5 |
-| Temperature | The current outside temperature |
-| Control Speed | The current motor speed in rpm |
-| Favorite Speed | The favorite motor speed in rpm |
+ - **Carbon Dioxide**: The current carbon dioxide in ppm
+ - **Dust filter lifetime remaining**: The remaining lifetime of the dust filter
+ - **Dust filter lifetime remaining days**: The remaining lifetime of the dust filter in days
+ - **Upper filter lifetime remaining**: The remaining lifetime of the upper filter
+ - **Upper filter lifetime remaining days**: The remaining lifetime of the upper filter in days
+ - **PM2.5**: The current particulate matter 2.5
+ - **Temperature**: The current outside temperature
+ - **Control Speed**: The current motor speed in rpm
+ - **Favorite Speed**: The favorite motor speed in rpm
- Switch entities
@@ -846,13 +865,10 @@ These models use newer MiOT communication protocol.
| LED Brightness | Controls the brightness of the LEDs (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ----------- | ------------------------------------------------------------- | ------------------ |
-| Humidity | The current humidity measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
-| Water Level | The current water level percentage measured | True |
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
+ - **Water Level**: The current water level percentage measured. Enabled by default.
- Switch entities
@@ -889,13 +905,10 @@ These models use newer MiOT communication protocol.
| LED Brightness | Controls the brightness of the LEDs (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ----------- | ------------------------------------------------------------- | ------------------ |
-| Humidity | The current humidity measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
-| Water Level | The current water level percentage measured | True |
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
+ - **Water Level**: The current water level percentage measured. Enabled by default.
- Switch entities
@@ -939,14 +952,11 @@ These models use newer MiOT communication protocol.
| LED Brightness | Controls the brightness of the LEDs (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ------------ | ------------------------------------------------------------- | ------------------ |
-| Actual Speed | The current motor speed measured in rpm | True |
-| Humidity | The current humidity measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
-| Water Level | The current water level percentage measured | True |
+ - **Actual Speed**: The current motor speed measured in rpm. Enabled by default.
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
+ - **Water Level**: The current water level percentage measured. Enabled by default.
- Switch entities
@@ -989,13 +999,10 @@ Clean mode and Motor speed can only be set when the device is turned on.
| LED Brightness | Controls the brightness of the LEDs (bright, dim, off) |
- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ----------- | ------------------------------------------------------------- | ------------------ |
-| Humidity | The current humidity measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
-| Water Level | The current water level percentage measured | True |
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
+ - **Water Level**: The current water level percentage measured. Enabled by default.
- Switch entities
@@ -1005,7 +1012,7 @@ Clean mode and Motor speed can only be set when the device is turned on.
| Child Lock | Turn on/off the child lock |
| Dry Mode | Turn on/off the dry mode |
-### Air Humidifier JSQ/JSQ1/MJJSQ (deerma.humidifier.jsq/deerma.humidifier.jsq1/deerma.humidifier.mjjsq)
+### Air Humidifier JSQ/JSQ1/MJJSQ (deerma.humidifier.jsq, deerma.humidifier.jsq1, deerma.humidifier.mjjsq)
- On, Off
- Operation modes (low, medium, high, humidity)
@@ -1027,13 +1034,10 @@ Clean mode and Motor speed can only be set when the device is turned on.
| Water Tank | Indicates whether the water tank is connected or not |
| Water Tank Empty | Indicates whether the water tank is empty or not |
-- Sensor entities
-
-| Sensor | Description | Enabled by default |
-| ----------- | ------------------------------------------------------------- | ------------------ |
-| Humidity | The current humidity measured | True |
-| Temperature | The current temperature measured | True |
-| Use Time | The accumulative number of seconds the device has been in use | False |
+- Sensor entities|
+ - **Humidity**: The current humidity measured. Enabled by default.
+ - **Temperature**: The current temperature measured. Enabled by default.
+ - **Use Time**: The accumulative number of seconds the device has been in use. Disabled by default.
- Switch entities
@@ -1139,7 +1143,7 @@ Clean mode and Motor speed can only be set when the device is turned on.
| Child Lock | Turn on/off the Child Lock |
| LED | Turn on/off the LED |
-### Tower Fan/Standing Fan 2/Standing Fan Pro (dmaker.fan.p9/dmaker.fan.p10/dmaker.fan.p11)
+### Tower Fan/Standing Fan 2/Standing Fan Pro (dmaker.fan.p9, dmaker.fan.p10, dmaker.fan.p11)
- Power (on, off)
- Operation modes (Normal, Nature)
@@ -1486,11 +1490,17 @@ In addition to all of the actions provided by the `vacuum` {% term integration %
Start the cleaning operation in the areas selected for the number of repeats indicated.
-| Data attribute | Optional | Description |
-| ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `entity_id` | no | Only act on a specific robot |
-| `zone` | no | List of zones. Each zone is an array of four integer values. These values represent two sets of x- and y-axis coordinates that describe the beginning and ending points of a square or rectangle cleaning zone. For example, `[[23510,25311,25110,26361]]` creates a box that starts in one corner at the 23510, 25311 (x- and y-axis) coordinates and then is expanded diagonally to the 25110, 26361 coordinates to create a rectangular cleaning zone. |
-| `repeats` | no | Number of cleaning repeats for each zone between 1 and 3. |
+- **Data attribute**: `entity_id`
+ - **Description**: Only act on a specific robot.
+ - **Optional**: No.
+
+- **Data attribute**: `zone`
+ - **Description**: List of zones. Each zone is an array of four integer values. These values represent two sets of x- and y-axis coordinates that describe the beginning and ending points of a square or rectangle cleaning zone. For example, `[[23510,25311,25110,26361]]` creates a box that starts in one corner at the 23510, 25311 (x- and y-axis) coordinates and then is expanded diagonally to the 25110, 26361 coordinates to create a rectangular cleaning zone.
+ - **Optional**: No.
+
+- **Data attribute**: `repeats`
+ - **Description**: Number of cleaning repeats for each zone between 1 and 3.
+ - **Optional**: No.
Example of `xiaomi_miio.vacuum_clean_zone` use:
@@ -1565,10 +1575,12 @@ automation:
Clean the specified segment/room. A room is identified by a number. Instructions on how to find the valid room numbers and determine what rooms they map to, read the section [Retrieving room numbers](#retrieving-room-numbers).
-| Data attribute | Optional | Description |
-| ---------------------- | -------- | ----------------------------------------------------- |
-| `entity_id` | no | Only act on a specific robot |
-| `segments` | no | List of segment numbers or one single segment number. |
+- **Data attribute**: `entity_id`
+ - **Description**: Only act on a specific robot.
+ - **Optional**: No.
+- **Data attribute**: `segments`
+ - **Description**: List of segment numbers or one single segment number.
+ - **Optional**: No.
Example of `xiaomi_miio.vacuum_clean_segment` use:
@@ -1624,11 +1636,15 @@ automation:
Go the specified coordinates.
-| Data attribute | Optional | Description |
-| ---------------------- | -------- | ----------------------------------------------------------------------- |
-| `entity_id` | no | Only act on a specific robot |
-| `x_coord` | no | X-coordinate, integer value. The dock is located at x-coordinate 25500. |
-| `y_coord` | no | Y-coordinate, integer value. The dock is located at y-coordinate 25500. |
+- **Data attribute**: `entity_id`
+ - **Description**: Only act on a specific robot.
+ - **Optional**: No.
+- **Data attribute**: `x_coord`
+ - **Description**: X-coordinate, integer value. The dock is located at x-coordinate 25500.
+ - **Optional**: No.
+- **Data attribute**: `y_coord`
+ - **Description**: Y-coordinate, integer value. The dock is located at y-coordinate 25500.
+ - **Optional**: No.
Note: If your vacuum is in motion and does not respond to the `xiaomi_miio.vacuum_goto` command, call the `vacuum.pause` or `vacuum.stop` action first.
@@ -1648,27 +1664,23 @@ Exit the remote control mode of the robot.
| ---------------------- | -------- | ---------------------------- |
| `entity_id` | no | Only act on a specific robot |
-### Action `xiaomi_miio.vacuum_remote_control_move`
+### Action `xiaomi_miio.vacuuNm_remote_control_move`
Remote control the robot. Please ensure you first set it in remote control mode with `remote_control_start`.
-| Data attribute | Optional | Description |
-| ---------------------- | -------- | --------------------------------------------------------- |
-| `entity_id` | no | Only act on a specific robot |
-| `velocity` | no | Speed: between -0.29 and 0.29 |
-| `rotation` | no | Rotation: between -179 degrees and 179 degrees |
-| `duration` | no | The number of milliseconds that the robot should move for |
+- `entity_id`: Only act on a specific robot. Not optional.
+- `velocity`: Speed: between -0.29 and 0.29. Not optional.
+- `rotation`: Rotation: between -179 degrees and 179 degrees. Not optional.
+- `duration`: The number of milliseconds that the robot should move for. Not optional.
### Action `xiaomi_miio.vacuum_remote_control_move_step`
Enter remote control mode, make one move, stop, and exit remote control mode.
-| Data attribute | Optional | Description |
-| ---------------------- | -------- | --------------------------------------------------------- |
-| `entity_id` | no | Only act on a specific robot |
-| `velocity` | no | Speed: between -0.29 and 0.29 |
-| `rotation` | no | Rotation: between -179 degrees and 179 degrees |
-| `duration` | no | The number of milliseconds that the robot should move for |
+- **entity_id**: Only act on a specific robot. Not optional.
+- **velocity**: Speed: between -0.29 and 0.29. Not optional.
+- **rotation**: Rotation: between -179 degrees and 179 degrees. Not optional.
+- **duration**: The number of milliseconds that the robot should move for. Not optional.
### Buttons
diff --git a/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown b/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown
index 5a611cd0fe9d..c8cd612a9f77 100644
--- a/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown
+++ b/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown
@@ -11,9 +11,9 @@ og_image: /images/blog/2024-10-zbt1-issue/art.jpg
---
-We've found an issue in Home Assistant Connect ZBT-1 that has affected a small number of customers, which appears to be the result of a faulty part incorporated in the most recent batch of ZBT-1 devices. We want to make sure everyone can get a replacement ZBT-1 and ensure they are covered far into the future.
+We've found an issue in Home Assistant Connect ZBT-1 that has affected a small number of customers, which appears to be the result of a faulty part incorporated in the first production run of ZBT-1 devices. We want to make sure everyone can get a replacement ZBT-1 and ensure they are covered far into the future.
-Though Home Assistant SkyConnect is identical to the ZBT-1 under the hood, it is not affected. The design is not what's at fault, but instead, a defective voltage regulator that was used in this specific batch that is causing the issue. When a ZBT-1 is inserted into certain USB-A ports, the voltage regulator can fail, fully bricking the device. We used high-quality manufacturing and quality control in this and previous batches. We are undertaking an investigation to find out how this could happen and most importantly, to avoid a repeat of anything remotely similar in the future.
+Though Home Assistant SkyConnect is identical to the ZBT-1 under the hood, it is not affected. The design is not what's at fault, but instead, a defective voltage regulator that was used in this specific production run that is causing the issue. When a ZBT-1 is inserted into certain USB-A ports, the voltage regulator can fail, fully bricking the device. We used high-quality manufacturing and quality control in this and previous production runs. We are undertaking an investigation to find out how this could happen and most importantly, to avoid a repeat of anything remotely similar in the future.
We're sorry for any inconvenience this may cause you. Below are details on our investigation, how devices are affected, and the replacement program.
- [Background](#background)
@@ -33,7 +33,10 @@ When we opened them, we found a dead voltage regulator. The mark in the outer ca
We replaced the voltage regulator on the devices we tested, and the devices sprang back to life. We found our culprit, but why was it failing? As mentioned, the SkyConnect internal design and the manufacturing were effectively identical to the ZBT-1, and we received no reports of any such failures in the literally tens of thousands of them in the wild. In manufacturing runs there is always a little variance, and in this run, something went wrong with the voltage regulator that was sourced - again, we're looking into this.
-It took us a couple of weeks to replicate the problem with our own units. We went down some wrong paths, but eventually found it was triggered only by certain devices, specifically certain desktop PCs (internally, we have only found one desktop that causes this failure). We have not observed the failure occur when the device has only been connected to a Home Assistant Green, Raspberry Pi, or even a Mac. If you have plugged your ZBT-1 into a different device, specifically a desktop PC, and it is not recognized by that system, inspect it for this deformation pictured above. Obviously, we want you to be able to use the device with any hardware, and even if only a small number of devices from this batch have reported issues, it is still unacceptable to us.
+
+SkyConnect (left) and ZBT-1 (right) branded devices, SkyConnect are unaffected by this issue.
+
+It took us a couple of weeks to replicate the problem with our own units. We went down some wrong paths, but eventually found it was triggered only by certain devices, specifically certain desktop PCs (internally, we have only found one desktop that causes this failure). We have not observed the failure occur when the device has only been connected to a Home Assistant Green, Raspberry Pi, or even a Mac. If you have plugged your ZBT-1 into a different device, specifically a desktop PC, and it is not recognized by that system, inspect it for this deformation pictured above. Obviously, we want you to be able to use the device with any hardware, and even if only a small number of devices from this production run have reported issues, it is still unacceptable to us.
## Pausing sales
@@ -47,6 +50,10 @@ If you have purchased Home Assistant Connect ZBT-1, we are working on a replacem
It is a core value of ours to do things as sustainably as possible, and that's why we've provided such a long coverage period. We want to give owners with working ZBT-1s, who do not expect to use the device in a different system for the foreseeable future, the ability to keep it operating with peace of mind.
+{% note %}
+All ZBT-1 branded devices produced, as of October 2024, are believed to have this fault. You can tell if your device is a ZBT-1 by checking the white label on the back for “ZBT-1”. There is no need to test if your device is affected by this fault.
+{% endnote %}
+
If it's working, keep it plugged into the device it's working with, and don't worry about a replacement until you need it. If you need or want a replacement, please contact the seller where you purchased your device, and they will arrange the return process and replacement. Replacement devices are expected by early November, and we will be prioritizing people with non-functioning devices.
## Conclusion
diff --git a/source/_posts/2024-10-02-release-202410.markdown b/source/_posts/2024-10-02-release-202410.markdown
index 3222a7f8fd85..08eed388d92f 100644
--- a/source/_posts/2024-10-02-release-202410.markdown
+++ b/source/_posts/2024-10-02-release-202410.markdown
@@ -54,6 +54,8 @@ Enjoy the release!
- [YAML-editor improvements](#yaml-editor-improvements)
- [Patch releases](#patch-releases)
- [2024.10.1 - October 4](#2024101---october-4)
+ - [2024.10.2 - October 11](#2024102---october-11)
+ - [2024.10.3 - October 18](#2024103---october-18)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@@ -495,6 +497,247 @@ every Friday.
[@robinostlund]: https://github.com/robinostlund
[@tl-sl]: https://github.com/tl-sl
+### 2024.10.2 - October 11
+
+- Fix Island status in Teslemetry ([@Bre77] - [#127504])
+- Bump pyblu to 1.0.3 ([@LouisChrist] - [#127571])
+- Bump aiostreammagic to 2.5.0 ([@noahhusby] - [#127595])
+- Bump opower to 0.8.2 ([@tronikos] - [#127598])
+- Fix wake up in Tesla Fleet ([@Bre77] - [#127615])
+- Update Radarr config flow to standardize ports ([@Khabi] - [#127620])
+- Bump fyta_cli to 0.6.7 ([@dontinelli] - [#127650])
+- Revert "Fix enum lookup (#125220)" ([@cdce8p] - [#127680])
+- Fix problems with automatic management of Schlage locks ([@dknowles2] - [#127689])
+- Fix typo in HDMI CEC ([@joostlek] - [#127714])
+- Fix Withings log message ([@joostlek] - [#127716])
+- Bump NYT Games to 0.4.3 ([@joostlek] - [#127717])
+- Bump airgradient to 0.9.1 ([@joostlek] - [#127718])
+- Add translation string for Withings wrong account ([@joostlek] - [#127719])
+- Increase connection timeout in CalDAV ([@mib1185] - [#127727])
+- Migrate SMA unique id to str ([@rklomp] - [#127732])
+- Remove stale references in squeezebox services.yaml ([@rajlaud] - [#127739])
+- Fix Aurora integration casts longitude and latitude to integer ([@johangus65] - [#127740])
+- Bump python-linkplay to 0.0.15 ([@silamon] - [#127748])
+- Fix custom account config flow setup ([@rjmarques] - [#127750])
+- Bump solarlog_cli to 0.3.1 ([@dontinelli] - [#127753])
+- Update DoorBirdPy to 3.0.3 ([@frenck] - [#126949])
+- Bump DoorBirdPy to 3.0.4 ([@bdraco] - [#127760])
+- Bump pychromecast to 14.0.3 ([@emontnemery] - [#127778])
+- Fix aurora alert sensor always Off ([@johangus65] - [#127780])
+- Update aioairzone-cloud to v0.6.6 ([@Noltari] - [#127789])
+- Bump pysmlight to v0.1.3 ([@tl-sl] - [#127804])
+- Fix incorrect string in amberlectric ([@epenet] - [#127807])
+- Add missing and fix incorrect translation string in alarmdecoder ([@epenet] - [#127814])
+- Fix incorrect translation string in analytics_insights ([@epenet] - [#127815])
+- Add missing and fix incorrect translation string in aurora ([@epenet] - [#127818])
+- Fix incorrect translation string in azure event hub ([@epenet] - [#127820])
+- Correct cleanup of sensor statistics repairs ([@emontnemery] - [#127826])
+- Add missing translation string in blebox ([@epenet] - [#127827])
+- Fix incorrect translation string in bryant_evolution ([@epenet] - [#127830])
+- Add missing and fix incorrect translation string in duotecno ([@epenet] - [#127834])
+- Reverse unintended change of unique_id for solarlog ([@dontinelli] - [#127845])
+- Bump `pytouchlinesl` to 0.1.8 ([@jnsgruk] - [#127859])
+- Fix wrong DPTypes returned by Tuya's cloud ([@azerty9971] - [#127860])
+- Add missing translation string in AVM Fritz!Smarthome ([@mib1185] - [#127864])
+- Fix merge_response template not mutate original object ([@gjohansson-ST] - [#127865])
+- Don't error with missing information in systemmonitor diagnostics ([@gjohansson-ST] - [#127868])
+- Bump holidays library to 0.58 ([@gjohansson-ST] - [#127876])
+- Bump pyeconet to 0.1.23 ([@dcmeglio] - [#127896])
+- Add missing translation string in otbr ([@epenet] - [#127909])
+- Add missing translation string in yamaha_musiccast ([@epenet] - [#127912])
+- Add support of due date calculation for grey dailies in Habitica integration ([@tr4nt0r] - [#127923])
+- Bump `imgw_pib` library to version 1.0.6 ([@bieniu] - [#127925])
+- Bump python-kasa to 0.7.5 ([@sdb9696] - [#127934])
+- Fix discovery of WMS WebControl pro by using IP address ([@mback2k] - [#127939])
+- Update pywmspro to 0.2.1 to fix handling of unknown products ([@mback2k] - [#127942])
+- Fix europe authentication in Fujitsu FGLair ([@crevetor] - [#127947])
+- Bump motionblindsble to 0.1.2 ([@LennP] - [#127954])
+- Fix zwave_js config validation for values ([@raman325] - [#127972])
+- Fix firmware version parsing in venstar ([@epenet] - [#127974])
+- Bump pyduotecno to 2024.10.0 ([@Cereal2nd] - [#127979])
+- Increase tplink climate precision ([@rytilahti] - [#127996])
+- Add missing translation string in solarlog ([@dontinelli] - [#128015])
+- Fix missing reauth name translation placeholder in ring integration ([@sdb9696] - [#128048])
+- Add missing translation string for re-auth flows ([@mib1185] - [#128055])
+- Update xknxproject to 3.8.1 ([@farmio] - [#128057])
+- Fix casing on Powerview Gen3 zeroconf discovery ([@kingy444] - [#128076])
+- Fix ring realtime events ([@sdb9696] - [#128083])
+- Increase Hydrawise polling interval to 60 seconds ([@dknowles2] - [#128090])
+- Update frontend to 20241002.3 ([@bramkragten] - [#128106])
+- Bump aioautomower to 2024.10.0 ([@Thomas55555] - [#128137])
+- Fix license script for ftfy ([@cdce8p] - [#128138])
+- Fix regression in Opower that was introduced in 2024.10.0 ([@tronikos] - [#128141])
+- Bump opower to 0.8.3 ([@tronikos] - [#128144])
+- Remove some redundant code in Opower's coordinator from the fix in #128141 ([@tronikos] - [#128150])
+- Fix preset handling issue in ViCare ([@CFenner] - [#128167])
+- Fix model in Husqvarna Automower ([@Thomas55555] - [#128168])
+
+[#126782]: https://github.com/home-assistant/core/pull/126782
+[#126949]: https://github.com/home-assistant/core/pull/126949
+[#127504]: https://github.com/home-assistant/core/pull/127504
+[#127566]: https://github.com/home-assistant/core/pull/127566
+[#127571]: https://github.com/home-assistant/core/pull/127571
+[#127595]: https://github.com/home-assistant/core/pull/127595
+[#127598]: https://github.com/home-assistant/core/pull/127598
+[#127615]: https://github.com/home-assistant/core/pull/127615
+[#127620]: https://github.com/home-assistant/core/pull/127620
+[#127650]: https://github.com/home-assistant/core/pull/127650
+[#127680]: https://github.com/home-assistant/core/pull/127680
+[#127689]: https://github.com/home-assistant/core/pull/127689
+[#127714]: https://github.com/home-assistant/core/pull/127714
+[#127716]: https://github.com/home-assistant/core/pull/127716
+[#127717]: https://github.com/home-assistant/core/pull/127717
+[#127718]: https://github.com/home-assistant/core/pull/127718
+[#127719]: https://github.com/home-assistant/core/pull/127719
+[#127727]: https://github.com/home-assistant/core/pull/127727
+[#127732]: https://github.com/home-assistant/core/pull/127732
+[#127739]: https://github.com/home-assistant/core/pull/127739
+[#127740]: https://github.com/home-assistant/core/pull/127740
+[#127748]: https://github.com/home-assistant/core/pull/127748
+[#127750]: https://github.com/home-assistant/core/pull/127750
+[#127753]: https://github.com/home-assistant/core/pull/127753
+[#127760]: https://github.com/home-assistant/core/pull/127760
+[#127778]: https://github.com/home-assistant/core/pull/127778
+[#127780]: https://github.com/home-assistant/core/pull/127780
+[#127789]: https://github.com/home-assistant/core/pull/127789
+[#127804]: https://github.com/home-assistant/core/pull/127804
+[#127807]: https://github.com/home-assistant/core/pull/127807
+[#127814]: https://github.com/home-assistant/core/pull/127814
+[#127815]: https://github.com/home-assistant/core/pull/127815
+[#127818]: https://github.com/home-assistant/core/pull/127818
+[#127820]: https://github.com/home-assistant/core/pull/127820
+[#127826]: https://github.com/home-assistant/core/pull/127826
+[#127827]: https://github.com/home-assistant/core/pull/127827
+[#127830]: https://github.com/home-assistant/core/pull/127830
+[#127834]: https://github.com/home-assistant/core/pull/127834
+[#127845]: https://github.com/home-assistant/core/pull/127845
+[#127859]: https://github.com/home-assistant/core/pull/127859
+[#127860]: https://github.com/home-assistant/core/pull/127860
+[#127864]: https://github.com/home-assistant/core/pull/127864
+[#127865]: https://github.com/home-assistant/core/pull/127865
+[#127868]: https://github.com/home-assistant/core/pull/127868
+[#127876]: https://github.com/home-assistant/core/pull/127876
+[#127896]: https://github.com/home-assistant/core/pull/127896
+[#127909]: https://github.com/home-assistant/core/pull/127909
+[#127912]: https://github.com/home-assistant/core/pull/127912
+[#127923]: https://github.com/home-assistant/core/pull/127923
+[#127925]: https://github.com/home-assistant/core/pull/127925
+[#127934]: https://github.com/home-assistant/core/pull/127934
+[#127939]: https://github.com/home-assistant/core/pull/127939
+[#127942]: https://github.com/home-assistant/core/pull/127942
+[#127947]: https://github.com/home-assistant/core/pull/127947
+[#127954]: https://github.com/home-assistant/core/pull/127954
+[#127972]: https://github.com/home-assistant/core/pull/127972
+[#127974]: https://github.com/home-assistant/core/pull/127974
+[#127979]: https://github.com/home-assistant/core/pull/127979
+[#127996]: https://github.com/home-assistant/core/pull/127996
+[#128015]: https://github.com/home-assistant/core/pull/128015
+[#128048]: https://github.com/home-assistant/core/pull/128048
+[#128055]: https://github.com/home-assistant/core/pull/128055
+[#128057]: https://github.com/home-assistant/core/pull/128057
+[#128076]: https://github.com/home-assistant/core/pull/128076
+[#128083]: https://github.com/home-assistant/core/pull/128083
+[#128090]: https://github.com/home-assistant/core/pull/128090
+[#128106]: https://github.com/home-assistant/core/pull/128106
+[#128137]: https://github.com/home-assistant/core/pull/128137
+[#128138]: https://github.com/home-assistant/core/pull/128138
+[#128141]: https://github.com/home-assistant/core/pull/128141
+[#128144]: https://github.com/home-assistant/core/pull/128144
+[#128150]: https://github.com/home-assistant/core/pull/128150
+[#128167]: https://github.com/home-assistant/core/pull/128167
+[#128168]: https://github.com/home-assistant/core/pull/128168
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Khabi]: https://github.com/Khabi
+[@LennP]: https://github.com/LennP
+[@LouisChrist]: https://github.com/LouisChrist
+[@Noltari]: https://github.com/Noltari
+[@Thomas55555]: https://github.com/Thomas55555
+[@azerty9971]: https://github.com/azerty9971
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@crevetor]: https://github.com/crevetor
+[@dcmeglio]: https://github.com/dcmeglio
+[@dknowles2]: https://github.com/dknowles2
+[@dontinelli]: https://github.com/dontinelli
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@jnsgruk]: https://github.com/jnsgruk
+[@johangus65]: https://github.com/johangus65
+[@joostlek]: https://github.com/joostlek
+[@kingy444]: https://github.com/kingy444
+[@mback2k]: https://github.com/mback2k
+[@mib1185]: https://github.com/mib1185
+[@noahhusby]: https://github.com/noahhusby
+[@rajlaud]: https://github.com/rajlaud
+[@raman325]: https://github.com/raman325
+[@rjmarques]: https://github.com/rjmarques
+[@rklomp]: https://github.com/rklomp
+[@rytilahti]: https://github.com/rytilahti
+[@sdb9696]: https://github.com/sdb9696
+[@silamon]: https://github.com/silamon
+[@tl-sl]: https://github.com/tl-sl
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+
+### 2024.10.3 - October 18
+
+- Update home-assistant-bluetooth to 1.13.0 ([@cdce8p] - [#127691])
+- Fix printer uptime fluctuations in IPP ([@mib1185] - [#127725])
+- Improve discovery of WMS WebControl pro by updating IP address ([@mback2k] - [#128007])
+- Use the same ZHA database path during startup and when loading device triggers ([@puddly] - [#128130])
+- Fix playing media via roku ([@ctalkington] - [#128133])
+- Bump yt-dlp to 2024.10.07 ([@joostlek] - [#128182])
+- Fix daikin entities not refreshing quickly ([@adampetrovic] - [#128230])
+- Keep the provided name when creating a tag ([@silamon] - [#128240])
+- Update aioairzone to v0.9.4 ([@Noltari] - [#127792])
+- Update aioairzone to v0.9.5 ([@Noltari] - [#128265])
+- Bump gcal_sync to 6.1.6 ([@allenporter] - [#128270])
+- Bump solarlog_cli to 0.3.2 ([@dontinelli] - [#128293])
+- Bump pyblu to 1.0.4 ([@LouisChrist] - [#128482])
+- Increase Z-Wave fallback thermostat range to 0-50 C ([@MindFreeze] - [#128543])
+- Bump pyotgw to 2.2.2 ([@mvn23] - [#128594])
+
+[#126782]: https://github.com/home-assistant/core/pull/126782
+[#127566]: https://github.com/home-assistant/core/pull/127566
+[#127691]: https://github.com/home-assistant/core/pull/127691
+[#127725]: https://github.com/home-assistant/core/pull/127725
+[#127792]: https://github.com/home-assistant/core/pull/127792
+[#128007]: https://github.com/home-assistant/core/pull/128007
+[#128130]: https://github.com/home-assistant/core/pull/128130
+[#128133]: https://github.com/home-assistant/core/pull/128133
+[#128176]: https://github.com/home-assistant/core/pull/128176
+[#128182]: https://github.com/home-assistant/core/pull/128182
+[#128230]: https://github.com/home-assistant/core/pull/128230
+[#128240]: https://github.com/home-assistant/core/pull/128240
+[#128265]: https://github.com/home-assistant/core/pull/128265
+[#128270]: https://github.com/home-assistant/core/pull/128270
+[#128293]: https://github.com/home-assistant/core/pull/128293
+[#128482]: https://github.com/home-assistant/core/pull/128482
+[#128543]: https://github.com/home-assistant/core/pull/128543
+[#128594]: https://github.com/home-assistant/core/pull/128594
+[@LouisChrist]: https://github.com/LouisChrist
+[@MindFreeze]: https://github.com/MindFreeze
+[@Noltari]: https://github.com/Noltari
+[@adampetrovic]: https://github.com/adampetrovic
+[@allenporter]: https://github.com/allenporter
+[@cdce8p]: https://github.com/cdce8p
+[@ctalkington]: https://github.com/ctalkington
+[@dontinelli]: https://github.com/dontinelli
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@mback2k]: https://github.com/mback2k
+[@mib1185]: https://github.com/mib1185
+[@mvn23]: https://github.com/mvn23
+[@puddly]: https://github.com/puddly
+[@silamon]: https://github.com/silamon
+
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
diff --git a/source/_redirects b/source/_redirects
index 1382529d9e5d..4c0cd5e3b163 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -159,7 +159,9 @@ layout: null
/integrations/binary_sensor.knx /integrations/knx#binary-sensor
/integrations/binary_sensor.modbus /integrations/modbus/#configuring-binary-sensor-entities
/integrations/binary_sensor.mysensors /integrations/mysensors#binary-sensor
+/integrations/binary_sensor.rflink /integrations/rflink/#binary-sensor
/integrations/binary_sensor.template /integrations/template/#binary_sensor
+/integrations/binary_sensor.xiaomi_aqara/ /integrations/xiaomi_aqara/#binary-sensor
/integrations/climate.knx /integrations/knx#climate
/integrations/climate.modbus/ /integrations/modbus/#configuring-climate-entities
/integrations/climate.mysensors /integrations/mysensors#climate
@@ -167,13 +169,18 @@ layout: null
/integrations/cover.group /integrations/group
/integrations/cover.knx /integrations/knx#cover
/integrations/cover.mysensors /integrations/mysensors#cover
+/integrations/cover.rflink /integrations/rflink/#cover
+/integrations/cover.xiaomi_aqara/ /integrations/xiaomi_aqara/#covers
/integrations/device_tracker.mysensors /integrations/mysensors#device-tracker
+/integrations/device_tracker.xiaomi/ /integrations/xiaomi/#router
/integrations/fan.group /integrations/group
/integrations/fan.xiaomi_miio /integrations/xiaomi_miio/#xiaomi-air-purifier-air-humidifier-and-standing-fan
/integrations/light.group /integrations/group
/integrations/light.knx /integrations/knx#light
/integrations/light.mysensors /integrations/mysensors#light
+/integrations/light.rflink /integrations/rflink#light
/integrations/light.xiaomi_miio /integrations/xiaomi_miio/#xiaomi-philips-light
+/integrations/light.xiaomi_aqara/ /integrations/xiaomi_aqara/#lights
/integrations/lock.xiaomi_aqara/ /integrations/xiaomi_aqara/#locks
/integrations/media_player.group /integrations/group
/integrations/notify.command_line /integrations/command_line#Notify
@@ -186,12 +193,16 @@ layout: null
/integrations/sensor.knx /integrations/knx#sensor
/integrations/sensor.modbus /integrations/modbus/#configuring-sensor-entities
/integrations/sensor.mysensors /integrations/mysensors#sensor
+/integrations/sensor.rflink /integrations/rflink/#sensor
/integrations/sensor.websocket_api /integrations/websocket_api/#track-current-connections
/integrations/sensor.xiaomi_miio /integrations/xiaomi_miio
+/integrations/sensor.xiaomi_aqara/ /integrations/xiaomi_aqara/#sensors
/integrations/switch.command_line /integrations/command_line#Switch
/integrations/switch.knx /integrations/knx#switch
/integrations/switch.modbus /integrations/modbus/#configuring-switch-entities
/integrations/switch.mysensors /integrations/mysensors#switch
+/integrations/switch.rflink /integrations/rflink/#switch
+/integrations/switch.xiaomi_aqara/ /integrations/xiaomi_aqara/#switches
/integrations/switch.pca /integrations/elv/
/integrations/switch.xiaomi_miio /integrations/xiaomi_miio/#xiaomi-smart-wifi-socket-and-smart-power-strip
/integrations/vacuum.xiaomi_miio /integrations/xiaomi_miio/#xiaomi-mi-robot-vacuum
diff --git a/source/changelogs/core-2024.10.markdown b/source/changelogs/core-2024.10.markdown
index 5cd7257901e7..737bde2a00ca 100644
--- a/source/changelogs/core-2024.10.markdown
+++ b/source/changelogs/core-2024.10.markdown
@@ -1187,6 +1187,247 @@ For a summary in a more readable format:
[@robinostlund]: https://github.com/robinostlund
[@tl-sl]: https://github.com/tl-sl
+## Release 2024.10.2 - October 11
+
+- Fix Island status in Teslemetry ([@Bre77] - [#127504])
+- Bump pyblu to 1.0.3 ([@LouisChrist] - [#127571])
+- Bump aiostreammagic to 2.5.0 ([@noahhusby] - [#127595])
+- Bump opower to 0.8.2 ([@tronikos] - [#127598])
+- Fix wake up in Tesla Fleet ([@Bre77] - [#127615])
+- Update Radarr config flow to standardize ports ([@Khabi] - [#127620])
+- Bump fyta_cli to 0.6.7 ([@dontinelli] - [#127650])
+- Revert "Fix enum lookup (#125220)" ([@cdce8p] - [#127680])
+- Fix problems with automatic management of Schlage locks ([@dknowles2] - [#127689])
+- Fix typo in HDMI CEC ([@joostlek] - [#127714])
+- Fix Withings log message ([@joostlek] - [#127716])
+- Bump NYT Games to 0.4.3 ([@joostlek] - [#127717])
+- Bump airgradient to 0.9.1 ([@joostlek] - [#127718])
+- Add translation string for Withings wrong account ([@joostlek] - [#127719])
+- Increase connection timeout in CalDAV ([@mib1185] - [#127727])
+- Migrate SMA unique id to str ([@rklomp] - [#127732])
+- Remove stale references in squeezebox services.yaml ([@rajlaud] - [#127739])
+- Fix Aurora integration casts longitude and latitude to integer ([@johangus65] - [#127740])
+- Bump python-linkplay to 0.0.15 ([@silamon] - [#127748])
+- Fix custom account config flow setup ([@rjmarques] - [#127750])
+- Bump solarlog_cli to 0.3.1 ([@dontinelli] - [#127753])
+- Update DoorBirdPy to 3.0.3 ([@frenck] - [#126949])
+- Bump DoorBirdPy to 3.0.4 ([@bdraco] - [#127760])
+- Bump pychromecast to 14.0.3 ([@emontnemery] - [#127778])
+- Fix aurora alert sensor always Off ([@johangus65] - [#127780])
+- Update aioairzone-cloud to v0.6.6 ([@Noltari] - [#127789])
+- Bump pysmlight to v0.1.3 ([@tl-sl] - [#127804])
+- Fix incorrect string in amberlectric ([@epenet] - [#127807])
+- Add missing and fix incorrect translation string in alarmdecoder ([@epenet] - [#127814])
+- Fix incorrect translation string in analytics_insights ([@epenet] - [#127815])
+- Add missing and fix incorrect translation string in aurora ([@epenet] - [#127818])
+- Fix incorrect translation string in azure event hub ([@epenet] - [#127820])
+- Correct cleanup of sensor statistics repairs ([@emontnemery] - [#127826])
+- Add missing translation string in blebox ([@epenet] - [#127827])
+- Fix incorrect translation string in bryant_evolution ([@epenet] - [#127830])
+- Add missing and fix incorrect translation string in duotecno ([@epenet] - [#127834])
+- Reverse unintended change of unique_id for solarlog ([@dontinelli] - [#127845])
+- Bump `pytouchlinesl` to 0.1.8 ([@jnsgruk] - [#127859])
+- Fix wrong DPTypes returned by Tuya's cloud ([@azerty9971] - [#127860])
+- Add missing translation string in AVM Fritz!Smarthome ([@mib1185] - [#127864])
+- Fix merge_response template not mutate original object ([@gjohansson-ST] - [#127865])
+- Don't error with missing information in systemmonitor diagnostics ([@gjohansson-ST] - [#127868])
+- Bump holidays library to 0.58 ([@gjohansson-ST] - [#127876])
+- Bump pyeconet to 0.1.23 ([@dcmeglio] - [#127896])
+- Add missing translation string in otbr ([@epenet] - [#127909])
+- Add missing translation string in yamaha_musiccast ([@epenet] - [#127912])
+- Add support of due date calculation for grey dailies in Habitica integration ([@tr4nt0r] - [#127923])
+- Bump `imgw_pib` library to version 1.0.6 ([@bieniu] - [#127925])
+- Bump python-kasa to 0.7.5 ([@sdb9696] - [#127934])
+- Fix discovery of WMS WebControl pro by using IP address ([@mback2k] - [#127939])
+- Update pywmspro to 0.2.1 to fix handling of unknown products ([@mback2k] - [#127942])
+- Fix europe authentication in Fujitsu FGLair ([@crevetor] - [#127947])
+- Bump motionblindsble to 0.1.2 ([@LennP] - [#127954])
+- Fix zwave_js config validation for values ([@raman325] - [#127972])
+- Fix firmware version parsing in venstar ([@epenet] - [#127974])
+- Bump pyduotecno to 2024.10.0 ([@Cereal2nd] - [#127979])
+- Increase tplink climate precision ([@rytilahti] - [#127996])
+- Add missing translation string in solarlog ([@dontinelli] - [#128015])
+- Fix missing reauth name translation placeholder in ring integration ([@sdb9696] - [#128048])
+- Add missing translation string for re-auth flows ([@mib1185] - [#128055])
+- Update xknxproject to 3.8.1 ([@farmio] - [#128057])
+- Fix casing on Powerview Gen3 zeroconf discovery ([@kingy444] - [#128076])
+- Fix ring realtime events ([@sdb9696] - [#128083])
+- Increase Hydrawise polling interval to 60 seconds ([@dknowles2] - [#128090])
+- Update frontend to 20241002.3 ([@bramkragten] - [#128106])
+- Bump aioautomower to 2024.10.0 ([@Thomas55555] - [#128137])
+- Fix license script for ftfy ([@cdce8p] - [#128138])
+- Fix regression in Opower that was introduced in 2024.10.0 ([@tronikos] - [#128141])
+- Bump opower to 0.8.3 ([@tronikos] - [#128144])
+- Remove some redundant code in Opower's coordinator from the fix in #128141 ([@tronikos] - [#128150])
+- Fix preset handling issue in ViCare ([@CFenner] - [#128167])
+- Fix model in Husqvarna Automower ([@Thomas55555] - [#128168])
+
+[#126782]: https://github.com/home-assistant/core/pull/126782
+[#126949]: https://github.com/home-assistant/core/pull/126949
+[#127504]: https://github.com/home-assistant/core/pull/127504
+[#127566]: https://github.com/home-assistant/core/pull/127566
+[#127571]: https://github.com/home-assistant/core/pull/127571
+[#127595]: https://github.com/home-assistant/core/pull/127595
+[#127598]: https://github.com/home-assistant/core/pull/127598
+[#127615]: https://github.com/home-assistant/core/pull/127615
+[#127620]: https://github.com/home-assistant/core/pull/127620
+[#127650]: https://github.com/home-assistant/core/pull/127650
+[#127680]: https://github.com/home-assistant/core/pull/127680
+[#127689]: https://github.com/home-assistant/core/pull/127689
+[#127714]: https://github.com/home-assistant/core/pull/127714
+[#127716]: https://github.com/home-assistant/core/pull/127716
+[#127717]: https://github.com/home-assistant/core/pull/127717
+[#127718]: https://github.com/home-assistant/core/pull/127718
+[#127719]: https://github.com/home-assistant/core/pull/127719
+[#127727]: https://github.com/home-assistant/core/pull/127727
+[#127732]: https://github.com/home-assistant/core/pull/127732
+[#127739]: https://github.com/home-assistant/core/pull/127739
+[#127740]: https://github.com/home-assistant/core/pull/127740
+[#127748]: https://github.com/home-assistant/core/pull/127748
+[#127750]: https://github.com/home-assistant/core/pull/127750
+[#127753]: https://github.com/home-assistant/core/pull/127753
+[#127760]: https://github.com/home-assistant/core/pull/127760
+[#127778]: https://github.com/home-assistant/core/pull/127778
+[#127780]: https://github.com/home-assistant/core/pull/127780
+[#127789]: https://github.com/home-assistant/core/pull/127789
+[#127804]: https://github.com/home-assistant/core/pull/127804
+[#127807]: https://github.com/home-assistant/core/pull/127807
+[#127814]: https://github.com/home-assistant/core/pull/127814
+[#127815]: https://github.com/home-assistant/core/pull/127815
+[#127818]: https://github.com/home-assistant/core/pull/127818
+[#127820]: https://github.com/home-assistant/core/pull/127820
+[#127826]: https://github.com/home-assistant/core/pull/127826
+[#127827]: https://github.com/home-assistant/core/pull/127827
+[#127830]: https://github.com/home-assistant/core/pull/127830
+[#127834]: https://github.com/home-assistant/core/pull/127834
+[#127845]: https://github.com/home-assistant/core/pull/127845
+[#127859]: https://github.com/home-assistant/core/pull/127859
+[#127860]: https://github.com/home-assistant/core/pull/127860
+[#127864]: https://github.com/home-assistant/core/pull/127864
+[#127865]: https://github.com/home-assistant/core/pull/127865
+[#127868]: https://github.com/home-assistant/core/pull/127868
+[#127876]: https://github.com/home-assistant/core/pull/127876
+[#127896]: https://github.com/home-assistant/core/pull/127896
+[#127909]: https://github.com/home-assistant/core/pull/127909
+[#127912]: https://github.com/home-assistant/core/pull/127912
+[#127923]: https://github.com/home-assistant/core/pull/127923
+[#127925]: https://github.com/home-assistant/core/pull/127925
+[#127934]: https://github.com/home-assistant/core/pull/127934
+[#127939]: https://github.com/home-assistant/core/pull/127939
+[#127942]: https://github.com/home-assistant/core/pull/127942
+[#127947]: https://github.com/home-assistant/core/pull/127947
+[#127954]: https://github.com/home-assistant/core/pull/127954
+[#127972]: https://github.com/home-assistant/core/pull/127972
+[#127974]: https://github.com/home-assistant/core/pull/127974
+[#127979]: https://github.com/home-assistant/core/pull/127979
+[#127996]: https://github.com/home-assistant/core/pull/127996
+[#128015]: https://github.com/home-assistant/core/pull/128015
+[#128048]: https://github.com/home-assistant/core/pull/128048
+[#128055]: https://github.com/home-assistant/core/pull/128055
+[#128057]: https://github.com/home-assistant/core/pull/128057
+[#128076]: https://github.com/home-assistant/core/pull/128076
+[#128083]: https://github.com/home-assistant/core/pull/128083
+[#128090]: https://github.com/home-assistant/core/pull/128090
+[#128106]: https://github.com/home-assistant/core/pull/128106
+[#128137]: https://github.com/home-assistant/core/pull/128137
+[#128138]: https://github.com/home-assistant/core/pull/128138
+[#128141]: https://github.com/home-assistant/core/pull/128141
+[#128144]: https://github.com/home-assistant/core/pull/128144
+[#128150]: https://github.com/home-assistant/core/pull/128150
+[#128167]: https://github.com/home-assistant/core/pull/128167
+[#128168]: https://github.com/home-assistant/core/pull/128168
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Khabi]: https://github.com/Khabi
+[@LennP]: https://github.com/LennP
+[@LouisChrist]: https://github.com/LouisChrist
+[@Noltari]: https://github.com/Noltari
+[@Thomas55555]: https://github.com/Thomas55555
+[@azerty9971]: https://github.com/azerty9971
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@crevetor]: https://github.com/crevetor
+[@dcmeglio]: https://github.com/dcmeglio
+[@dknowles2]: https://github.com/dknowles2
+[@dontinelli]: https://github.com/dontinelli
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@jnsgruk]: https://github.com/jnsgruk
+[@johangus65]: https://github.com/johangus65
+[@joostlek]: https://github.com/joostlek
+[@kingy444]: https://github.com/kingy444
+[@mback2k]: https://github.com/mback2k
+[@mib1185]: https://github.com/mib1185
+[@noahhusby]: https://github.com/noahhusby
+[@rajlaud]: https://github.com/rajlaud
+[@raman325]: https://github.com/raman325
+[@rjmarques]: https://github.com/rjmarques
+[@rklomp]: https://github.com/rklomp
+[@rytilahti]: https://github.com/rytilahti
+[@sdb9696]: https://github.com/sdb9696
+[@silamon]: https://github.com/silamon
+[@tl-sl]: https://github.com/tl-sl
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+
+## Release 2024.10.3 - October 18
+
+- Update home-assistant-bluetooth to 1.13.0 ([@cdce8p] - [#127691])
+- Fix printer uptime fluctuations in IPP ([@mib1185] - [#127725])
+- Improve discovery of WMS WebControl pro by updating IP address ([@mback2k] - [#128007])
+- Use the same ZHA database path during startup and when loading device triggers ([@puddly] - [#128130])
+- Fix playing media via roku ([@ctalkington] - [#128133])
+- Bump yt-dlp to 2024.10.07 ([@joostlek] - [#128182])
+- Fix daikin entities not refreshing quickly ([@adampetrovic] - [#128230])
+- Keep the provided name when creating a tag ([@silamon] - [#128240])
+- Update aioairzone to v0.9.4 ([@Noltari] - [#127792])
+- Update aioairzone to v0.9.5 ([@Noltari] - [#128265])
+- Bump gcal_sync to 6.1.6 ([@allenporter] - [#128270])
+- Bump solarlog_cli to 0.3.2 ([@dontinelli] - [#128293])
+- Bump pyblu to 1.0.4 ([@LouisChrist] - [#128482])
+- Increase Z-Wave fallback thermostat range to 0-50 C ([@MindFreeze] - [#128543])
+- Bump pyotgw to 2.2.2 ([@mvn23] - [#128594])
+
+[#126782]: https://github.com/home-assistant/core/pull/126782
+[#127566]: https://github.com/home-assistant/core/pull/127566
+[#127691]: https://github.com/home-assistant/core/pull/127691
+[#127725]: https://github.com/home-assistant/core/pull/127725
+[#127792]: https://github.com/home-assistant/core/pull/127792
+[#128007]: https://github.com/home-assistant/core/pull/128007
+[#128130]: https://github.com/home-assistant/core/pull/128130
+[#128133]: https://github.com/home-assistant/core/pull/128133
+[#128176]: https://github.com/home-assistant/core/pull/128176
+[#128182]: https://github.com/home-assistant/core/pull/128182
+[#128230]: https://github.com/home-assistant/core/pull/128230
+[#128240]: https://github.com/home-assistant/core/pull/128240
+[#128265]: https://github.com/home-assistant/core/pull/128265
+[#128270]: https://github.com/home-assistant/core/pull/128270
+[#128293]: https://github.com/home-assistant/core/pull/128293
+[#128482]: https://github.com/home-assistant/core/pull/128482
+[#128543]: https://github.com/home-assistant/core/pull/128543
+[#128594]: https://github.com/home-assistant/core/pull/128594
+[@LouisChrist]: https://github.com/LouisChrist
+[@MindFreeze]: https://github.com/MindFreeze
+[@Noltari]: https://github.com/Noltari
+[@adampetrovic]: https://github.com/adampetrovic
+[@allenporter]: https://github.com/allenporter
+[@cdce8p]: https://github.com/cdce8p
+[@ctalkington]: https://github.com/ctalkington
+[@dontinelli]: https://github.com/dontinelli
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@mback2k]: https://github.com/mback2k
+[@mib1185]: https://github.com/mib1185
+[@mvn23]: https://github.com/mvn23
+[@puddly]: https://github.com/puddly
+[@silamon]: https://github.com/silamon
+
[#102371]: https://github.com/home-assistant/core/pull/102371
[#106570]: https://github.com/home-assistant/core/pull/106570
[#112806]: https://github.com/home-assistant/core/pull/112806
diff --git a/source/getting-started/onboarding.markdown b/source/getting-started/onboarding.markdown
index 74d608175f9d..a624b66a4e6b 100644
--- a/source/getting-started/onboarding.markdown
+++ b/source/getting-started/onboarding.markdown
@@ -17,13 +17,16 @@ After Home Assistant has been [installed](/installation/) on your device, there
- **Option 1: new installation**: If this is your initial installation, we will now create the owner's account of Home Assistant.
- {% icon "mdi:information-outline" %} This account is an administrator account. It will always be able to change everything.
- Select **Create my smart home**.
+
+ ![Home Assistant preparation](/images/getting-started/onboarding_preparing_02.png)
- Enter a name, username, and password.
- Make sure the username is lowercase and contains no whitespace.
+ - {% icon "mdi:info" %} **Info**: The **Name** is the name of the person the is shown in the UI. The username is used for login.
+
+ ![Set your username and password.](/images/getting-started/onboarding_username.png)
- Store the name, username, and password somewhere safe. There is no way to recover the owner credentials.
- Select **Create account**.
- ![Set your username and password.](/images/getting-started/username.png)
-
- **Option 2: restore from backup**: If you want to restore a backup of a previous installation, select **Restore from backup**.
- Ignore the rest of this procedure and continue with the procedure on [restoring from backup](/common-tasks/os/#restoring-a-backup).
- If you have a Home Assistant Yellow, start with the [Yellow documentation on restoring from backup](https://yellow.home-assistant.io/guides/restore-backup/).
diff --git a/source/images/blog/2024-10-zbt1-issue/skyconnect-zbt1.png b/source/images/blog/2024-10-zbt1-issue/skyconnect-zbt1.png
new file mode 100644
index 000000000000..66e859767f8e
Binary files /dev/null and b/source/images/blog/2024-10-zbt1-issue/skyconnect-zbt1.png differ
diff --git a/source/images/getting-started/onboarding_preparing_01_.png b/source/images/getting-started/onboarding_preparing_01_.png
index 43094952abdf..fd1352467451 100644
Binary files a/source/images/getting-started/onboarding_preparing_01_.png and b/source/images/getting-started/onboarding_preparing_01_.png differ
diff --git a/source/images/getting-started/onboarding_preparing_02.png b/source/images/getting-started/onboarding_preparing_02.png
new file mode 100644
index 000000000000..faea8de57121
Binary files /dev/null and b/source/images/getting-started/onboarding_preparing_02.png differ
diff --git a/source/images/getting-started/onboarding_username.png b/source/images/getting-started/onboarding_username.png
new file mode 100644
index 000000000000..43e5babdd7ec
Binary files /dev/null and b/source/images/getting-started/onboarding_username.png differ
diff --git a/source/images/getting-started/username.png b/source/images/getting-started/username.png
deleted file mode 100644
index 45f069d30d75..000000000000
Binary files a/source/images/getting-started/username.png and /dev/null differ
diff --git a/source/more-info/local-media/setup-media.markdown b/source/more-info/local-media/setup-media.markdown
index e616a5530735..aef29a3bf23d 100644
--- a/source/more-info/local-media/setup-media.markdown
+++ b/source/more-info/local-media/setup-media.markdown
@@ -22,6 +22,10 @@ homeassistant:
recording: /mnt/recordings
```
+The above example adds two media folders to Home Assistant. They will
+show up as "media" and "recording" in the media browser. You can add
+as many media folders as you like, using any name you want.
+
## Home Assistant Container
If you run the Home Assistant Container you'll need to
diff --git a/source/voice_control/s3_box_voice_assistant.markdown b/source/voice_control/s3_box_voice_assistant.markdown
index 800756712c50..7f2078d46a2e 100644
--- a/source/voice_control/s3_box_voice_assistant.markdown
+++ b/source/voice_control/s3_box_voice_assistant.markdown
@@ -41,84 +41,84 @@ Before you can use this device with Home Assistant, you need to install a bit of
{% tabbed_block %}
-- title: Using the ESP32-S3-BOX
+- title: Using the ESP32-S3-BOX-3(B)
content: |
- 1. Make sure this page is opened in a Chromium-based browser on a **desktop**. The software installation does not work with a tablet or phone.
+ 1. These steps apply both to the ESP32-S3-BOX-3 and the ESP32-S3-BOX-3B. Make sure this page is opened in a Chromium-based browser on a **desktop**. The software installation does not work with a tablet or phone.
+ - Select the **Connect** button below to display a list of available USB devices. Do not connect the ESP32-S3-BOX-3 yet. We want to see the list of available USB devices first, so that it is easier to recognize the ESP device afterward.
- If your browser does not support web serial, you will see a warning message indicating this instead of a button.
-
+
- **For advanced users**: The configuration files are available on GitHub:
- - [ESP32-S3-BOX config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box/esp32-s3-box.yaml)
+ - [ESP32-S3-BOX-3 config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-3/esp32-s3-box-3.yaml)
- 2. To connect the ESP32-S3-BOX to your computer, follow these steps:
+ 2. To connect the ESP32-S3-BOX-3 to your computer, follow these steps:
- In the pop-up window, view the available ports.
- - Plug the USB-C cable into the ESP32-S3-BOX and connect it to your computer.
+ - Plug the USB-C cable into the box directly, not into the docking station (not into the blue part) and connect it to your computer.
+ - **Troubleshooting**: If your ESP32-S3-BOX-3 does not appear in the list of devices presented by your browser, you need to manually invoke "flash mode":
+ - Hold the "boot" button (left side upper button) as you tap the "reset" button (left side lower button).
+ - After a few seconds, the ESP32-S3-BOX-3 should appear in the list of USB devices presented by your browser.
+ - Follow the steps until step 3. After selecting the **Next** button, on the S3-Box-3, tap the "Reset" button again.
+ - Then, select the blue **Connect button** again, select the USB device and follow the prompts to configure the Wi-Fi.
+ - In the pop-up window, there should now appear a new entry. Select this USB serial port and select **Connect**.
3. Select **Install Voice Assistant**, then **Install**.
- Once the installation is complete, select **Next**.
- - Add the ESP32-S3-BOX to your Wi-Fi:
+ - Add the ESP32-S3-BOX-3 to your Wi-Fi:
- When prompted, select your network from the list and enter the credentials to your 2.4 GHz Wi-Fi network.
- Select **Connect**.
- - The ESP32-S3-BOX now joined your network. Select **Add to Home Assistant**.
+ - The ESP32-S3-BOX-3 now joined your network. Select **Add to Home Assistant**.
4. This opens the **My** link to Home Assistant.
- If you have not used My Home Assistant before, you will need to configure it. If your Home Assistant URL is not accessible on `http://homeassistant.local:8123`, replace it with the URL to your Home Assistant instance.
- Open the link.
![Open My link](/images/assist/esp32-atom-flash-06.png)
5. Select **OK**.
+
![Set up ESPHome](/images/assist/esp32-atom-flash-07.png)
- 6. To add the newly discovered device, select the ESP32-S3-BOX from the list.
- - Add your ESP32-S3-BOX to a room and select **Finish**.
+ 6. To add the newly discovered device, select the ESP32-S3-BOX-3 from the list.
+ - Add your ESP32-S3-BOX-3 to a room and select **Finish**.
7. You should now see the **ESPHome** integration.
![New ESPHome device discovered](/images/assist/m5stack-atom-echo-discovered-33.png)
+
8. Select the **ESPHome** integration. Under **Devices**, you should see the **ESP32-S3-BOX** listed.
![ESP32-S3-BOX-3 discovered](/images/assist/s32-s3-box-3-discovered.png)
- Your ESP32-S3-BOX is connected to Home Assistant over Wi-Fi. You can now move it to any place in your home with a USB power supply.
-- title: Using the ESP32-S3-BOX-3(B)
+- title: Using the ESP32-S3-BOX
content: |
- 1. These steps apply both to the ESP32-S3-BOX-3 and the ESP32-S3-BOX-3B. Make sure this page is opened in a Chromium-based browser on a **desktop**. The software installation does not work with a tablet or phone.
+ 1. Make sure this page is opened in a Chromium-based browser on a **desktop**. The software installation does not work with a tablet or phone.
- - Select the **Connect** button below to display a list of available USB devices. Do not connect the ESP32-S3-BOX-3 yet. We want to see the list of available USB devices first, so that it is easier to recognize the ESP device afterward.
- If your browser does not support web serial, you will see a warning message indicating this instead of a button.
-
+
- **For advanced users**: The configuration files are available on GitHub:
- - [ESP32-S3-BOX-3 config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-3/esp32-s3-box-3.yaml)
+ - [ESP32-S3-BOX config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box/esp32-s3-box.yaml)
- 2. To connect the ESP32-S3-BOX-3 to your computer, follow these steps:
+ 2. To connect the ESP32-S3-BOX to your computer, follow these steps:
- In the pop-up window, view the available ports.
- - Plug the USB-C cable into the box directly, not into the docking station (not into the blue part) and connect it to your computer.
- - **Troubleshooting**: If your ESP32-S3-BOX-3 does not appear in the list of devices presented by your browser, you need to manually invoke "flash mode":
- - Hold the "boot" button (left side upper button) as you tap the "reset" button (left side lower button).
- - After a few seconds, the ESP32-S3-BOX-3 should appear in the list of USB devices presented by your browser.
- - Follow the steps until step 3. After selecting the **Next** button, on the S3-Box-3, tap the "Reset" button again.
- - Then, select the blue **Connect button** again, select the USB device and follow the prompts to configure the Wi-Fi.
- - In the pop-up window, there should now appear a new entry. Select this USB serial port and select **Connect**.
+ - Plug the USB-C cable into the ESP32-S3-BOX and connect it to your computer.
3. Select **Install Voice Assistant**, then **Install**.
- Once the installation is complete, select **Next**.
- - Add the ESP32-S3-BOX-3 to your Wi-Fi:
+ - Add the ESP32-S3-BOX to your Wi-Fi:
- When prompted, select your network from the list and enter the credentials to your 2.4 GHz Wi-Fi network.
- Select **Connect**.
- - The ESP32-S3-BOX-3 now joined your network. Select **Add to Home Assistant**.
+ - The ESP32-S3-BOX now joined your network. Select **Add to Home Assistant**.
4. This opens the **My** link to Home Assistant.
- If you have not used My Home Assistant before, you will need to configure it. If your Home Assistant URL is not accessible on `http://homeassistant.local:8123`, replace it with the URL to your Home Assistant instance.
- Open the link.
![Open My link](/images/assist/esp32-atom-flash-06.png)
5. Select **OK**.
-
![Set up ESPHome](/images/assist/esp32-atom-flash-07.png)
- 6. To add the newly discovered device, select the ESP32-S3-BOX-3 from the list.
- - Add your ESP32-S3-BOX-3 to a room and select **Finish**.
+ 6. To add the newly discovered device, select the ESP32-S3-BOX from the list.
+ - Add your ESP32-S3-BOX to a room and select **Finish**.
7. You should now see the **ESPHome** integration.
![New ESPHome device discovered](/images/assist/m5stack-atom-echo-discovered-33.png)
-
8. Select the **ESPHome** integration. Under **Devices**, you should see the **ESP32-S3-BOX** listed.
![ESP32-S3-BOX-3 discovered](/images/assist/s32-s3-box-3-discovered.png)