From 6a57e7e22b6d91d5c303f123c027556a9d23a97d Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Mon, 7 Oct 2024 13:07:10 +0200 Subject: [PATCH 01/62] Xiaomi aquara hub 2 issues accessing api: make note more prominent (#35113) --- source/_integrations/xiaomi_aqara.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index 74ee9f7ac0be..227f72041f18 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 From ff82acc69183d9a0d720586a979ad84dc02e5449 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Mon, 7 Oct 2024 15:51:33 +0200 Subject: [PATCH 02/62] Xiaomi Aquara: move cover docs to hub page (#35120) --- source/_integrations/cover.xiaomi_aqara.markdown | 14 -------------- source/_integrations/xiaomi_aqara.markdown | 10 ++++++++++ 2 files changed, 10 insertions(+), 14 deletions(-) delete mode 100644 source/_integrations/cover.xiaomi_aqara.markdown diff --git a/source/_integrations/cover.xiaomi_aqara.markdown b/source/_integrations/cover.xiaomi_aqara.markdown deleted file mode 100644 index 296f856f0d43..000000000000 --- a/source/_integrations/cover.xiaomi_aqara.markdown +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Xiaomi Cover" -description: "Instructions on how to setup the Xiaomi cover within Home Assistant." -ha_category: - - Cover -ha_release: "0.50" -ha_iot_class: Local Push -ha_domain: xiaomi_aqara ---- - - -The `xiaomi aqara` cover platform allows you to get data from your [Xiaomi](https://www.mi.com/en/) covers. - -The requirement is that you have setup [Xiaomi aqara](/integrations/xiaomi_aqara/). diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index 227f72041f18..ac81d8b4dcba 100644 --- a/source/_integrations/xiaomi_aqara.markdown +++ b/source/_integrations/xiaomi_aqara.markdown @@ -93,6 +93,16 @@ 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. + ### Locks An Aqara lock cannot be controlled by Home Assistant. However, the lock entity allows you to view the following data: From 65f1f0fa7727147b04cba44a77e0c092d330d639 Mon Sep 17 00:00:00 2001 From: G Johansson Date: Tue, 8 Oct 2024 06:56:58 +0200 Subject: [PATCH 03/62] Add note on command template for binary sensor and sensor in command_line (#35126) --- source/_integrations/command_line.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/command_line.markdown b/source/_integrations/command_line.markdown index 89a82a444362..b2875629ab03 100644 --- a/source/_integrations/command_line.markdown +++ b/source/_integrations/command_line.markdown @@ -290,6 +290,12 @@ command_line: default: 30 {% endconfiguration %} +{% note %} + +While `command` is accepting a template for `sensor` and `binary_sensor`, it's only the arguments that can be a template. This means the command name itself cannot be generated by a template, but it must be literally provided. + +{% endnote %} + ## Binary sensor To use your Command binary sensor in your installation, add the following to your {% term "`configuration.yaml`" %} file: From 90043d54d682fb348db75c61b56d22578f56e1b2 Mon Sep 17 00:00:00 2001 From: G Johansson Date: Tue, 8 Oct 2024 07:00:08 +0200 Subject: [PATCH 04/62] Use note block in Systemmonitor (#35125) --- source/_integrations/systemmonitor.markdown | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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 From a6750b163f0684b3a73cbc7deedf7e37e5cfea2d Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 8 Oct 2024 08:09:41 +0200 Subject: [PATCH 05/62] Xiaomi Aquara: move binary sensor content to hub page (#35119) --- .../binary_sensor.xiaomi_aqara.markdown | 372 ------------------ source/_integrations/xiaomi_aqara.markdown | 368 +++++++++++++++++ 2 files changed, 368 insertions(+), 372 deletions(-) delete mode 100644 source/_integrations/binary_sensor.xiaomi_aqara.markdown diff --git a/source/_integrations/binary_sensor.xiaomi_aqara.markdown b/source/_integrations/binary_sensor.xiaomi_aqara.markdown deleted file mode 100644 index 08a9a3547f74..000000000000 --- a/source/_integrations/binary_sensor.xiaomi_aqara.markdown +++ /dev/null @@ -1,372 +0,0 @@ ---- -title: "Xiaomi binary sensor" -description: "Instructions on how to setup the Xiaomi binary sensors within Home Assistant." -ha_category: - - Binary sensor -ha_release: "0.50" -ha_iot_class: Local Push -ha_domain: xiaomi_aqara ---- - -The `xiaomi aqara` binary sensor platform allows you to get data from your [Xiaomi](https://www.mi.com/en/) binary sensors. - -The requirement is that you have setup the [`xiaomi aqara` integration](/integrations/xiaomi_aqara/). - -### Type of sensors supported - -| Name | Zigbee entity | Model no. | States | Event | Event key | Event values | -| ---- | ------------- | --------- | ------ | ----- | --------- | ------------ | -| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `xiaomi_aqara.motion` | | | -| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `xiaomi_aqara.motion` | | | -| Xiaomi Door and Window Sensor (1st gen) | magnet | MCCGQ01LM | on, off | | | | -| Aqara Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | | -| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | | -| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | -| Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | | -| Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `xiaomi_aqara.click`| `click_type`| `long_click_press`, `hold`, `single`, `double` | -| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | on (through long_click_press), off | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long_click_press`, `hold` | -| Button (2nd gen, model b) | sensor_switch.aq3 | WXKG12LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long_click_press`, `shake` | -| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single` | -| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `both` | -| Aqara Wireless Switch (Single) (2nd gen) | remote.b186acn01 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long` | -| Aqara Wireless Switch (Double) (2nd gen) | remote.b286acn01 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long`, `both`, `double_both`, `long_both` | -| Cube | cube | MFKZQ01LM | off (always) | `xiaomi_aqara.cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) | -| Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `vibrate`, `tilt`, `free_fall` | - -### Automation examples - -#### 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 Window - -```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 - -As indicated in the table on top of this page there are 3 versions of the 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 -``` diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index ac81d8b4dcba..72c0ebd2e7d7 100644 --- a/source/_integrations/xiaomi_aqara.markdown +++ b/source/_integrations/xiaomi_aqara.markdown @@ -111,6 +111,374 @@ 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 + +| Name | Zigbee entity | Model no. | States | Event | Event key | Event values | +| ---- | ------------- | --------- | ------ | ----- | --------- | ------------ | +| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `xiaomi_aqara.motion` | | | +| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `xiaomi_aqara.motion` | | | +| Xiaomi Door and Window Sensor (1st gen) | magnet | MCCGQ01LM | on, off | | | | +| Aqara Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | | +| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | | +| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | +| Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | | +| Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `xiaomi_aqara.click`| `click_type`| `long_click_press`, `hold`, `single`, `double` | +| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | on (through long_click_press), off | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long_click_press`, `hold` | +| Button (2nd gen, model b) | sensor_switch.aq3 | WXKG12LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long_click_press`, `shake` | +| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single` | +| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `both` | +| Aqara Wireless Switch (Single) (2nd gen) | remote.b186acn01 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long` | +| Aqara Wireless Switch (Double) (2nd gen) | remote.b286acn01 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long`, `both`, `double_both`, `long_both` | +| Cube | cube | MFKZQ01LM | off (always) | `xiaomi_aqara.cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) | +| Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `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 +``` + ## Actions The gateway provides the following actions: From 8d32c70e6c48fc5444fa24845f81ad06b883f753 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 08:47:48 +0200 Subject: [PATCH 06/62] build(deps): bump actions/checkout from 4.2.0 to 4.2.1 (#35130) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df32c1203be5..657883371de2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out files from GitHub - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Setting up Node.js uses: actions/setup-node@v4.0.4 with: @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out files from GitHub - uses: actions/checkout@v4.2.0 + uses: actions/checkout@v4.2.1 - name: Setting up Node.js uses: actions/setup-node@v4.0.4 with: From 047d0798b96620356bfe19e14d2297733af871da Mon Sep 17 00:00:00 2001 From: Gord <31004434+googanhiem@users.noreply.github.com> Date: Tue, 8 Oct 2024 07:48:59 +0100 Subject: [PATCH 07/62] ZBT-1 blog additions (#35128) --- ...connect-zbt1-issue-and-replacement.markdown | 13 ++++++++++--- .../2024-10-zbt1-issue/skyconnect-zbt1.png | Bin 0 -> 296795 bytes 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 source/images/blog/2024-10-zbt1-issue/skyconnect-zbt1.png 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 --- Home Assistant Connect ZBT-1 issue and replacement -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) +

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/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 0000000000000000000000000000000000000000..66e859767f8e879487eb0d70be4808c88d03080e GIT binary patch literal 296795 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%0A7=Yl0OGLQw) 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 )X+T~RVX=g88&0fY_yP~Aj?fhox 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%0AM}%reBh}6V~ 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 literal 0 HcmV?d00001 From 2ad74c2cd80eb3aa97f55d44697c2854ff1ba055 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 08:49:12 +0200 Subject: [PATCH 08/62] build(deps-dev): bump sorbet-runtime from 0.5.11597 to 0.5.11600 (#35132) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c1ca0553cb55..fec48627a202 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -149,7 +149,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11597) + sorbet-runtime (0.5.11600) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 30ffc3325fbaf0100289d25d3fe84c590944fc59 Mon Sep 17 00:00:00 2001 From: "Steven B." <51370195+sdb9696@users.noreply.github.com> Date: Tue, 8 Oct 2024 08:49:32 +0100 Subject: [PATCH 09/62] Update ring docs for in-home chime switch (#35123) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- source/_integrations/ring.markdown | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 From 5545a16cfb2ce0351ec9275bef296716d7edc611 Mon Sep 17 00:00:00 2001 From: Rich Infante Date: Tue, 8 Oct 2024 03:50:44 -0400 Subject: [PATCH 10/62] Update Ambient Weather local integration documentation (#34640) --- source/_integrations/ambient_station.markdown | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/_integrations/ambient_station.markdown b/source/_integrations/ambient_station.markdown index 4d47a8ddee0c..a5c5a7f2808f 100644 --- a/source/_integrations/ambient_station.markdown +++ b/source/_integrations/ambient_station.markdown @@ -30,8 +30,9 @@ generate both, simply utilize the profile section of ## Local API Option This integration communicates with Ambient Weather PWS units via the Ambient Weather -Cloud. Users desiring a local option are encouraged to explore the -[Ecowitt](https://www.ecowitt.com) family of devices, which are able to read RF signals -directly from the PWS and transmit them to a variety of other applications, including -[`ecowitt2mqtt`](https://github.com/bachya/ecowitt2mqtt) (which supports -[MQTT Discovery](/integrations/mqtt/#mqtt-discovery)), or the built-in [Ecowitt](/integrations/ecowitt/) integration. +Cloud. Users desiring a local option can utilize +[`ecowitt2mqtt`](https://github.com/bachya/ecowitt2mqtt#input-data-formats) +in `ambient_weather` mode, (which supports [MQTT Discovery](/integrations/mqtt/#mqtt-discovery)). + +Another option is to explore the [Ecowitt](https://www.ecowitt.com) family of devices, +which support the built-in [Ecowitt](/integrations/ecowitt/) integration. From 3e3bb09cd0f8a3113da2b101a58ae39b26025a94 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:52:32 +0200 Subject: [PATCH 11/62] Xiaomi move light to hub docs (#35137) * Xiaomi Aquara: move light to hub docs * Undo formatting changes * Update source/_integrations/xiaomi_aqara.markdown Co-authored-by: Klaas Schoute --------- Co-authored-by: Klaas Schoute --- source/_integrations/light.xiaomi_aqara.markdown | 15 --------------- source/_integrations/xiaomi_aqara.markdown | 12 +++++++++++- 2 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 source/_integrations/light.xiaomi_aqara.markdown 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/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index 72c0ebd2e7d7..e0afd6611557 100644 --- a/source/_integrations/xiaomi_aqara.markdown +++ b/source/_integrations/xiaomi_aqara.markdown @@ -95,7 +95,7 @@ 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: +The cover entity allows you to control connected Aquara covers. You can do the following: - Open the cover. - Close the cover. @@ -103,6 +103,16 @@ The cover entity allows you to control connected Aquara covers. You can do the - 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: From 5033a94e0b081a20e40086748230b41bf0bfa270 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:54:34 +0200 Subject: [PATCH 12/62] Xiaomi Aqara: Move switch to hub docs (#35141) * Xiaomi Aqara: Move switch to hub docs * Tweak --- source/_integrations/switch.xiaomi_aqara.markdown | 13 ------------- source/_integrations/xiaomi_aqara.markdown | 4 ++++ 2 files changed, 4 insertions(+), 13 deletions(-) delete mode 100644 source/_integrations/switch.xiaomi_aqara.markdown 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/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index e0afd6611557..412955c355a3 100644 --- a/source/_integrations/xiaomi_aqara.markdown +++ b/source/_integrations/xiaomi_aqara.markdown @@ -489,6 +489,10 @@ This automation toggles the living room lamp on vibration/tilt. entity_id: light.living_room_lamp ``` +## 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: From 4b0d1187260089071a4d63d21305ea62f4362b9b Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:55:09 +0200 Subject: [PATCH 13/62] Xiaomi Aquara hub: convert large table to list (#35134) --- source/_integrations/xiaomi_aqara.markdown | 132 +++++++++++++++++---- 1 file changed, 112 insertions(+), 20 deletions(-) diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index 412955c355a3..7722f3c349bd 100644 --- a/source/_integrations/xiaomi_aqara.markdown +++ b/source/_integrations/xiaomi_aqara.markdown @@ -127,26 +127,118 @@ The binary sensor entities allow you to get data from your [Xiaomi](https://www. #### Type of binary sensors supported -| Name | Zigbee entity | Model no. | States | Event | Event key | Event values | -| ---- | ------------- | --------- | ------ | ----- | --------- | ------------ | -| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `xiaomi_aqara.motion` | | | -| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `xiaomi_aqara.motion` | | | -| Xiaomi Door and Window Sensor (1st gen) | magnet | MCCGQ01LM | on, off | | | | -| Aqara Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | | -| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | | -| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | -| Water Leak Sensor | sensor_wleak.aq1 | SJCGQ11LM | on, off | | | | -| Button (1st gen) | switch | WXKG01LM | on (through long_click_press), off | `xiaomi_aqara.click`| `click_type`| `long_click_press`, `hold`, `single`, `double` | -| Button (2nd gen) | sensor_switch.aq2, remote.b1acn01 | WXKG11LM | on (through long_click_press), off | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long_click_press`, `hold` | -| Button (2nd gen, model b) | sensor_switch.aq3 | WXKG12LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long_click_press`, `shake` | -| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single` | -| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `both` | -| Aqara Wireless Switch (Single) (2nd gen) | remote.b186acn01 | WXKG03LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long` | -| Aqara Wireless Switch (Double) (2nd gen) | remote.b286acn01 | WXKG02LM | off (always) | `xiaomi_aqara.click` | `click_type` | `single`, `double`, `long`, `both`, `double_both`, `long_both` | -| Cube | cube | MFKZQ01LM | off (always) | `xiaomi_aqara.cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) | -| Vibration Sensor | vibration | DJT11LM | off (always) | `xiaomi_aqara.movement` | `movement_type` | `vibrate`, `tilt`, `free_fall` | - -#### Automation examples for binary sensors +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 From a2b4f9ee867bc1c5fb7047418355105c89a895dd Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 8 Oct 2024 17:20:16 +0200 Subject: [PATCH 14/62] Xiaomi Aquara: move sensor into hub docs (#35138) --- source/_integrations/xiaomi_aqara.markdown | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown index 7722f3c349bd..22ee825b4a84 100644 --- a/source/_integrations/xiaomi_aqara.markdown +++ b/source/_integrations/xiaomi_aqara.markdown @@ -581,6 +581,23 @@ This automation toggles the living room lamp on vibration/tilt. 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. From 87b1bccafa588f3e2d3db8da5c5d7078f317588e Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 09:25:35 +0200 Subject: [PATCH 15/62] Xiaomi Aqara: add missing redirects after docs page consolidation (#35148) --- source/_redirects | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_redirects b/source/_redirects index 1382529d9e5d..d072f9999382 100644 --- a/source/_redirects +++ b/source/_redirects @@ -160,6 +160,7 @@ layout: null /integrations/binary_sensor.modbus /integrations/modbus/#configuring-binary-sensor-entities /integrations/binary_sensor.mysensors /integrations/mysensors#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,6 +168,7 @@ layout: null /integrations/cover.group /integrations/group /integrations/cover.knx /integrations/knx#cover /integrations/cover.mysensors /integrations/mysensors#cover +/integrations/cover.xiaomi_aqara/ /integrations/xiaomi_aqara/#covers /integrations/device_tracker.mysensors /integrations/mysensors#device-tracker /integrations/fan.group /integrations/group /integrations/fan.xiaomi_miio /integrations/xiaomi_miio/#xiaomi-air-purifier-air-humidifier-and-standing-fan @@ -174,6 +176,7 @@ layout: null /integrations/light.knx /integrations/knx#light /integrations/light.mysensors /integrations/mysensors#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 @@ -188,10 +191,12 @@ layout: null /integrations/sensor.mysensors /integrations/mysensors#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.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 From 32b8196d25aa07a14d0cc637ce77c918906a454f Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 10:00:33 +0200 Subject: [PATCH 16/62] Xiaomi Miio: convert tables to lists to improve readability and display on mobile (#35143) --- source/_integrations/xiaomi_miio.markdown | 692 +++++++++++----------- 1 file changed, 352 insertions(+), 340 deletions(-) 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 From 750875be33843382250f2710ea7d5a7d0d5db3c8 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 10:52:05 +0200 Subject: [PATCH 17/62] Unifi: Convert table with long unbreakable term into list (#35135) --- source/_integrations/unifiprotect.markdown | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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). From b36b1f0afeac218b54e50fbfbb861269007b7d11 Mon Sep 17 00:00:00 2001 From: Hmmbob <33529490+hmmbob@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:19:37 +0200 Subject: [PATCH 18/62] Fix example (#35151) --- source/_dashboards/heading.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_dashboards/heading.markdown b/source/_dashboards/heading.markdown index 7ddeb9284e88..3c325d36a6f7 100644 --- a/source/_dashboards/heading.markdown +++ b/source/_dashboards/heading.markdown @@ -23,7 +23,7 @@ heading: Living room icon: mdi:sofa badges: - type: entity - entity_id: sensor.living_room_sensor_temperature + entity: sensor.living_room_sensor_temperature color: red - type: entity entity: sensor.living_room_sensor_humidity From 9d3894847ff62f000b5eb76b4157482792189a85 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 16:36:52 +0200 Subject: [PATCH 19/62] RFLink: merge switch into main docs (#35158) --- source/_integrations/rflink.markdown | 133 ++++++++++++++++++ source/_integrations/switch.rflink.markdown | 144 -------------------- source/_redirects | 1 + 3 files changed, 134 insertions(+), 144 deletions(-) delete mode 100644 source/_integrations/switch.rflink.markdown diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 22f0842d6101..18c90de5bd82 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -219,3 +219,136 @@ 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'} ``` + +## 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 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.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/_redirects b/source/_redirects index d072f9999382..1853f53d68c5 100644 --- a/source/_redirects +++ b/source/_redirects @@ -196,6 +196,7 @@ layout: null /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 From 02cf7ff6b7d797204d281ea51201056db91e277a Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 16:54:08 +0200 Subject: [PATCH 20/62] RFLink: merge sensor into main docs (#35157) --- source/_integrations/rflink.markdown | 132 +++++++++++++++++- source/_integrations/sensor.rflink.markdown | 143 -------------------- source/_redirects | 1 + 3 files changed, 132 insertions(+), 144 deletions(-) delete mode 100644 source/_integrations/sensor.rflink.markdown diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 18c90de5bd82..a3804995efed 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -220,6 +220,136 @@ This will give you output looking like this: 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'} ``` +## Sensors + +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 +``` + ## 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. @@ -351,4 +481,4 @@ switch: name: Ceiling fan conrad_00785c_0a: name: Motion sensor kitchen -``` +``` \ No newline at end of file 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/_redirects b/source/_redirects index 1853f53d68c5..9875c38b75e6 100644 --- a/source/_redirects +++ b/source/_redirects @@ -189,6 +189,7 @@ 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 From e80a7a887e82babfa53ef483bb2b0a2b546deb91 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:07:09 +0200 Subject: [PATCH 21/62] RFLink: Merge light into main docs (#35155) --- source/_integrations/light.rflink.markdown | 171 --------------------- source/_integrations/rflink.markdown | 160 +++++++++++++++++++ source/_redirects | 1 + 3 files changed, 161 insertions(+), 171 deletions(-) delete mode 100644 source/_integrations/light.rflink.markdown 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/rflink.markdown b/source/_integrations/rflink.markdown index a3804995efed..14a9860f9794 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -220,6 +220,166 @@ This will give you output looking like this: 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'} ``` +## Lights + +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 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 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 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. diff --git a/source/_redirects b/source/_redirects index 9875c38b75e6..5ddf9c1d3c3d 100644 --- a/source/_redirects +++ b/source/_redirects @@ -175,6 +175,7 @@ layout: null /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 From 3586da8a6a172541a7adaa54f218e664f72a4d6c Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:17:21 +0200 Subject: [PATCH 22/62] RFLink: move binary sensor into main docs (#35153) --- .../binary_sensor.rflink.markdown | 91 ------------------- source/_integrations/rflink.markdown | 80 +++++++++++++++- source/_redirects | 1 + 3 files changed, 80 insertions(+), 92 deletions(-) delete mode 100644 source/_integrations/binary_sensor.rflink.markdown diff --git a/source/_integrations/binary_sensor.rflink.markdown b/source/_integrations/binary_sensor.rflink.markdown deleted file mode 100644 index d7fe8e077476..000000000000 --- a/source/_integrations/binary_sensor.rflink.markdown +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: "RFLink binary sensor" -description: "Instructions on how to integrate RFLink binary sensors into Home Assistant." -ha_category: - - Binary sensor -ha_iot_class: Local Push -ha_release: 0.81 -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 `binary_sensor`, a `switch` 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 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 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 - 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 -``` diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 14a9860f9794..537053a5e639 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -178,7 +178,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. @@ -219,6 +218,85 @@ 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 for 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 +``` ## Lights diff --git a/source/_redirects b/source/_redirects index 5ddf9c1d3c3d..3ddda8107638 100644 --- a/source/_redirects +++ b/source/_redirects @@ -159,6 +159,7 @@ 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 From 3d8df1ee70e5bbf018a00cfdc9bdd39c53088be8 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 9 Oct 2024 11:27:16 -0400 Subject: [PATCH 23/62] Put S3 Box 3 first in tutorial (#35159) --- .../s3_box_voice_assistant.markdown | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) 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) From 35ba62bc0022a360877ce78ce1de6a46f281d8a5 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Wed, 9 Oct 2024 21:13:02 +0200 Subject: [PATCH 24/62] RFLink: merge cover into main docs (#35154) --- source/_integrations/cover.rflink.markdown | 234 --------------------- source/_integrations/rflink.markdown | 228 +++++++++++++++++++- source/_redirects | 1 + 3 files changed, 228 insertions(+), 235 deletions(-) delete mode 100644 source/_integrations/cover.rflink.markdown diff --git a/source/_integrations/cover.rflink.markdown b/source/_integrations/cover.rflink.markdown deleted file mode 100644 index 9655c399107e..000000000000 --- a/source/_integrations/cover.rflink.markdown +++ /dev/null @@ -1,234 +0,0 @@ ---- -title: "RFLink Cover" -description: "Instructions on how to integrate RFLink Somfy RTS and KAKU ASUN-650 covers into Home Assistant." -ha_category: - - Cover -ha_iot_class: Assumed State -ha_release: 0.55 -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, 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 ID's 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 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] - 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 -``` diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 537053a5e639..9e0f3857e122 100644 --- a/source/_integrations/rflink.markdown +++ b/source/_integrations/rflink.markdown @@ -218,6 +218,7 @@ 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. @@ -298,6 +299,229 @@ binary_sensor: 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 ID's 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 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] + 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. @@ -719,4 +943,6 @@ switch: name: Ceiling fan conrad_00785c_0a: name: Motion sensor kitchen -``` \ No newline at end of file +``` + + diff --git a/source/_redirects b/source/_redirects index 3ddda8107638..b982a447ed66 100644 --- a/source/_redirects +++ b/source/_redirects @@ -169,6 +169,7 @@ 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/fan.group /integrations/group From de63504ea6cbf4daa636a93e808c998ac074958b Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 10 Oct 2024 06:19:54 +0200 Subject: [PATCH 25/62] Xiaomi: merge camera and router pages (#35147) * Xiaomi: merge camera and router pages * Add redirect --- .../device_tracker.xiaomi.markdown | 47 ----------- source/_integrations/xiaomi.markdown | 80 +++++++++++++++---- source/_redirects | 1 + 3 files changed, 67 insertions(+), 61 deletions(-) delete mode 100644 source/_integrations/device_tracker.xiaomi.markdown diff --git a/source/_integrations/device_tracker.xiaomi.markdown b/source/_integrations/device_tracker.xiaomi.markdown deleted file mode 100644 index f37f831aa006..000000000000 --- a/source/_integrations/device_tracker.xiaomi.markdown +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Xiaomi router" -description: "Instructions on how to integrate Xiaomi routers into Home Assistant." -ha_category: - - Presence detection -ha_release: 0.36 -ha_domain: xiaomi ---- - -The `xiaomi` platform offers presence detection by looking at connected devices to a [Xiaomi](http://miwifi.com) router. - -## Setup - -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.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/_redirects b/source/_redirects index b982a447ed66..4c0cd5e3b163 100644 --- a/source/_redirects +++ b/source/_redirects @@ -172,6 +172,7 @@ layout: null /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 From f9b7ac9c3ea3f1b7898940fafc3b39989e1c0f15 Mon Sep 17 00:00:00 2001 From: Ian Date: Wed, 9 Oct 2024 22:01:17 -0700 Subject: [PATCH 26/62] Correct entity-filter.markdown (#35163) The entity filter card uses the common checkConditionsMet() function to evaluate conditions. That function only returns true if every condition is met, not if any one condition is met: https://github.com/home-assistant/frontend/blob/23a33b10a1027dc58df50472eb23d277b1b508fb/src/panels/lovelace/common/validate-condition.ts#L169 --- source/_dashboards/entity-filter.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_dashboards/entity-filter.markdown b/source/_dashboards/entity-filter.markdown index 64b575458292..cbee335116c4 100644 --- a/source/_dashboards/entity-filter.markdown +++ b/source/_dashboards/entity-filter.markdown @@ -95,7 +95,7 @@ state_filter: ## Conditions options -You can specify multiple `conditions`, in which case the entity will be displayed if it matches any condition. +You can specify multiple `conditions`, in which case the entity will be displayed if it matches every condition. ### State From 6b0215f180d3b75841141b3c81445c4251c34e18 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 10 Oct 2024 10:13:43 +0200 Subject: [PATCH 27/62] Xiaomi: fix typos (#35164) --- source/_integrations/rflink.markdown | 43 ++++++++++++++-------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/source/_integrations/rflink.markdown b/source/_integrations/rflink.markdown index 9e0f3857e122..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 @@ -190,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 @@ -249,7 +250,7 @@ devices: type: map keys: name: - description: Name for the device. + description: Name of the device. required: false default: RFLink ID type: string @@ -341,7 +342,7 @@ 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 ID's are composed of: protocol, id, and gateway. For example: `RTS_0100F2_0`. +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. @@ -383,12 +384,12 @@ devices: type: map keys: name: - description: Name for the device. + description: Name of the device. required: false default: RFLink ID type: string aliases: - description: Alternative RFLink ID's this device is known by. + description: Alternative RFLink IDs this device is known by. required: false type: [list, string] fire_event: @@ -526,7 +527,7 @@ cover: 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`. +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. @@ -585,7 +586,7 @@ devices: default: switchable type: string aliases: - description: Alternative RFLink ID's this device is known by. + description: Alternative RFLink IDs this device is known by. required: false type: [list, string] group_aliases: @@ -686,7 +687,7 @@ light: 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. +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. @@ -717,7 +718,7 @@ devices: type: map keys: name: - description: Name for the device. + description: Name of the device. required: false default: RFLink ID type: string @@ -730,7 +731,7 @@ devices: required: false type: string aliases: - description: "Alternative RFLink ID's this device is known by." + description: "Alternative RFLink IDs this device is known by." required: false type: [list, string] {% endconfiguration %} @@ -814,9 +815,9 @@ sensor: ## 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. +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`. +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. @@ -858,12 +859,12 @@ devices: type: map keys: name: - description: Name for the device. + description: Name of the device. required: false default: RFLink ID type: string aliases: - description: Alternative RFLink ID's this device is known by. + description: Alternative RFLink IDs this device is known by. required: false type: [list, string] group_aliases: @@ -890,7 +891,7 @@ devices: default: true type: boolean aliases: - description: Alternative RFLink ID's this device is known by. + description: Alternative RFLink IDs this device is known by. required: false type: [list, string] group_aliases: @@ -907,7 +908,7 @@ devices: 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: +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 From eaf975cc9596e68c5c23d22b3ed94741ebca556f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 10:32:01 +0200 Subject: [PATCH 28/62] build(deps-dev): bump prism from 1.1.0 to 1.2.0 (#35176) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fec48627a202..09c758989ba1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -91,7 +91,7 @@ GEM racc pathutil (0.16.2) forwardable-extended (~> 2.6) - prism (1.1.0) + prism (1.2.0) public_suffix (6.0.1) racc (1.8.1) rack (3.1.7) From a634cb44ce7d48a6d6f94537a98ce5ff777da880 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 11 Oct 2024 18:25:15 +0200 Subject: [PATCH 29/62] 2024.10.2 (#35180) --- _config.yml | 4 +- .../_posts/2024-10-02-release-202410.markdown | 190 ++++++++++++++++++ source/changelogs/core-2024.10.markdown | 189 +++++++++++++++++ 3 files changed, 381 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 853add2be688..e8bd60c9831f 100644 --- a/_config.yml +++ b/_config.yml @@ -108,8 +108,8 @@ social: # Home Assistant release details current_major_version: 2024 current_minor_version: 10 -current_patch_version: 1 -date_released: 2024-10-04 +current_patch_version: 2 +date_released: 2024-10-11 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2024-10-02-release-202410.markdown b/source/_posts/2024-10-02-release-202410.markdown index 3222a7f8fd85..173668b39520 100644 --- a/source/_posts/2024-10-02-release-202410.markdown +++ b/source/_posts/2024-10-02-release-202410.markdown @@ -54,6 +54,7 @@ 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) - [Need help? Join the community!](#need-help-join-the-community) - [Backward-incompatible changes](#backward-incompatible-changes) - [All changes](#all-changes) @@ -495,6 +496,195 @@ 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 + ## Need help? Join the community! Home Assistant has a great community of users who are all more than willing diff --git a/source/changelogs/core-2024.10.markdown b/source/changelogs/core-2024.10.markdown index 5cd7257901e7..412d376ce193 100644 --- a/source/changelogs/core-2024.10.markdown +++ b/source/changelogs/core-2024.10.markdown @@ -1187,6 +1187,195 @@ 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 + [#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 From 896af73d5476daafbf994598bded341a34b7ba4f Mon Sep 17 00:00:00 2001 From: Darren Griffin Date: Fri, 11 Oct 2024 18:30:04 +0100 Subject: [PATCH 30/62] Update people to reflect missing users from blog posts (#35178) --- source/_data/people.yml | 10 +++++++++- source/_includes/post/author.html | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/source/_data/people.yml b/source/_data/people.yml index a26451c9c2b6..5eecd1608bf7 100644 --- a/source/_data/people.yml +++ b/source/_data/people.yml @@ -20,7 +20,7 @@ Madelena Mak: Guy Sie: name: Guy Sie - github: GuySie + github: guysie Gordon Cameron: name: Gordon Cameron @@ -77,3 +77,11 @@ Zac West: Klaas Schoute: name: Klaas Schoute github: klaasnicolaas + +Joakim Sørensen: + name: Joakim Sørensen + github: ludeeus + +Andy Gill: + name: Andy Gill + github: ncandyg \ No newline at end of file diff --git a/source/_includes/post/author.html b/source/_includes/post/author.html index c75bb03c2e88..d56156d02885 100644 --- a/source/_includes/post/author.html +++ b/source/_includes/post/author.html @@ -8,7 +8,7 @@ {% if author %} {% assign person = site.data.people[author] %} {% if person %} - {{ person.name }} {{ person.name }} {% else %} From f1ce65283056cf9dec85c93d5597856487a86c67 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Sun, 13 Oct 2024 07:21:46 +0200 Subject: [PATCH 31/62] Improve the documentation on the accepted states on `state_topic` for MQTT entities (#35197) * Improve the documentation on the accepted states on `state_topic` for MQTT entities * FIx formatting * Follow up on code review * Color attribute explain formatting * Use json example * More follow up --- .../alarm_control_panel.mqtt.markdown | 2 +- .../_integrations/binary_sensor.mqtt.markdown | 2 +- source/_integrations/cover.mqtt.markdown | 2 +- .../device_tracker.mqtt.markdown | 2 +- source/_integrations/fan.mqtt.markdown | 2 +- source/_integrations/humidifier.mqtt.markdown | 2 +- source/_integrations/light.mqtt.markdown | 32 +++++++++++++++++-- source/_integrations/switch.mqtt.markdown | 8 ++--- 8 files changed, 39 insertions(+), 13 deletions(-) diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 34a8c53c8db0..05445561fd2c 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -250,7 +250,7 @@ retain: type: boolean default: false 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: `armed_away`, `armed_custom_bypass`, `armed_home`, `armed_night`, `armed_vacation`, `arming`, `disarmed`, `disarming` `pending` and `triggered`." required: true type: string supported_features: diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index 4899572be9be..b791220e7745 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -198,7 +198,7 @@ qos: type: integer default: 0 state_topic: - description: The MQTT topic subscribed to receive sensor's state. + description: The MQTT topic subscribed to receive sensor's state. Valid states are `OFF` and `ON`. Custom `OFF` and `ON` values can be set with the `payload_off` and `payload_on` config options. required: true type: string unique_id: diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 6c093b95415f..bdf32a63c2bb 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -261,7 +261,7 @@ state_stopped: type: string default: stopped state_topic: - description: The MQTT topic subscribed to receive cover state messages. State topic can only read (`open`, `opening`, `closed`, `closing` or `stopped`) state. A "None" payload resets to an `unknown` state. An empty payload is ignored. + description: The MQTT topic subscribed to receive cover state messages. State topic can only read a (`open`, `opening`, `closed`, `closing` or `stopped`) state. A "None" payload resets to an `unknown` state. An empty payload is ignored. required: false type: string tilt_closed_value: diff --git a/source/_integrations/device_tracker.mqtt.markdown b/source/_integrations/device_tracker.mqtt.markdown index 625f1c564059..e36c0db84ba9 100644 --- a/source/_integrations/device_tracker.mqtt.markdown +++ b/source/_integrations/device_tracker.mqtt.markdown @@ -177,7 +177,7 @@ source_type: required: false type: string state_topic: - description: The MQTT topic subscribed to receive device tracker state changes. The states defined in `state_topic` override the location states defined by the `json_attributes_topic`. This state override is turned inactive if the `state_topic` receives a message containing `payload_reset`. The `state_topic` can only be omitted if `json_attributes_topic` is used. An empty payload is ignored. + description: The MQTT topic subscribed to receive device tracker state changes. The states defined in `state_topic` override the location states defined by the `json_attributes_topic`. This state override is turned inactive if the `state_topic` receives a message containing `payload_reset`. The `state_topic` can only be omitted if `json_attributes_topic` is used. An empty payload is ignored. Valid payloads are `not_home`, `home` or any other custom location or zone name. Payloads for `not_home`, `home` can be overridden with the `payload_not_home`and `payload_home` config options. required: false type: string unique_id: diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown index afe35bebd417..e55468f9bd09 100644 --- a/source/_integrations/fan.mqtt.markdown +++ b/source/_integrations/fan.mqtt.markdown @@ -296,7 +296,7 @@ speed_range_min: type: integer default: 1 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: 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/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index e9179af08c9b..4811d924e0dd 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 %} 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" From ae9e0b8c1dc9fef6681d2ca60eecd4febf2e1aeb Mon Sep 17 00:00:00 2001 From: Vincent Rischmann Date: Sun, 13 Oct 2024 16:22:28 +0200 Subject: [PATCH 32/62] Fix template syntax in imap.markdown (#35203) --- source/_integrations/imap.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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" From 3a55705786a501767056fad6e9373e3e2d3d547b Mon Sep 17 00:00:00 2001 From: Valvin Date: Mon, 14 Oct 2024 08:48:20 +0200 Subject: [PATCH 33/62] docs(renault): add pack information (#35093) * docs(renault): add pack information From this issue: https://github.com/home-assistant/core/issues/119095 * Update renault.markdown * tiny rephrase to make it clearer that these packs are subsriptions --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/renault.markdown | 2 ++ 1 file changed, 2 insertions(+) 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` From 10d6443dd00d1de3981a0978a5a317b4febe6b00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:14:12 +0200 Subject: [PATCH 34/62] build(deps-dev): bump ruby-lsp from 0.19.1 to 0.20.0 (#35215) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 22273a694f39..6c0529719f7e 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ group :development do # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' gem 'rubocop', '1.66.1' - gem 'ruby-lsp', '0.19.1' + gem 'ruby-lsp', '0.20.0' gem 'rackup', '2.1.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 09c758989ba1..2542a3e32bb8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -125,9 +125,9 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.32.3) parser (>= 3.3.1.0) - ruby-lsp (0.19.1) + ruby-lsp (0.20.0) language_server-protocol (~> 3.17.0) - prism (>= 1.1, < 2.0) + prism (>= 1.2, < 2.0) rbs (>= 3, < 4) sorbet-runtime (>= 0.5.10782) ruby-progressbar (1.13.0) @@ -149,7 +149,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11600) + sorbet-runtime (0.5.11602) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -176,7 +176,7 @@ DEPENDENCIES rackup (= 2.1.0) rake (= 13.2.1) rubocop (= 1.66.1) - ruby-lsp (= 0.19.1) + ruby-lsp (= 0.20.0) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.0.0) From 2ee573978a60c8ecb30e228459364655fbc4c136 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:15:19 +0200 Subject: [PATCH 35/62] build(deps-dev): bump sass-embedded from 1.79.4 to 1.79.5 (#35214) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2542a3e32bb8..ef3ab512a49b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,9 +134,10 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.79.4) + sass-embedded (1.79.5-arm64-darwin) + google-protobuf (~> 4.27) + sass-embedded (1.79.5-x86_64-linux-gnu) google-protobuf (~> 4.27) - rake (>= 13) sass-globbing (1.1.5) sass (>= 3.1) sassc (2.1.0) From 547ed43267a96fac951f7932d7ba8d08affb484c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:27:57 +0200 Subject: [PATCH 36/62] build(deps): bump rack from 3.1.7 to 3.1.8 (#35216) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ef3ab512a49b..0f920d345596 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,7 +94,7 @@ GEM prism (1.2.0) public_suffix (6.0.1) racc (1.8.1) - rack (3.1.7) + rack (3.1.8) rack-protection (4.0.0) base64 (>= 0.1.0) rack (>= 3.0.0, < 4) From 95609413d8e72b89b1676decb0ec6d89daac2b6f Mon Sep 17 00:00:00 2001 From: Andrew Jackson Date: Mon, 14 Oct 2024 11:10:14 +0100 Subject: [PATCH 37/62] Add polling times to Mealie integration (#35222) --- source/_integrations/mealie.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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) From 5150cfec1c8b8e3c8c141ff40376604e8aadf0ab Mon Sep 17 00:00:00 2001 From: Andrew Jackson Date: Mon, 14 Oct 2024 11:10:58 +0100 Subject: [PATCH 38/62] Add polling interval details to Mastodon (#35221) --- source/_integrations/mastodon.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From bf7ce6b6739d57976e4febe2710b71ab42517ca4 Mon Sep 17 00:00:00 2001 From: tronikos Date: Mon, 14 Oct 2024 03:59:41 -0700 Subject: [PATCH 39/62] Mention command_and_search model for Google Cloud STT (#35219) --- source/_integrations/google_cloud.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/google_cloud.markdown b/source/_integrations/google_cloud.markdown index 0eab263d3923..b563d98644d9 100644 --- a/source/_integrations/google_cloud.markdown +++ b/source/_integrations/google_cloud.markdown @@ -148,7 +148,7 @@ Speech-to-text is priced based on the amount of audio successfully processed by {% configuration %} stt_model: - description: "One of the transcription models [here](https://cloud.google.com/speech-to-text/docs/transcription-model). Defaults to `latest_short`." + description: "One of the transcription models [here](https://cloud.google.com/speech-to-text/docs/transcription-model). Defaults to `latest_short` because this is the recommended one. If you get: `400 Invalid recognition 'config': The requested model is currently not supported for language : ` try changing this to the legacy `command_and_search`." required: false type: string {% endconfiguration %} From 797adb81145478463a67faa6a1dba7da2d0082d2 Mon Sep 17 00:00:00 2001 From: Noah Husby <32528627+noahhusby@users.noreply.github.com> Date: Tue, 15 Oct 2024 02:22:38 -0400 Subject: [PATCH 40/62] Update Cambirdge Audio supported devices (#35238) * Update Cambirdge Audio supported devices * Add Edge NQ --- source/_integrations/cambridge_audio.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_integrations/cambridge_audio.markdown b/source/_integrations/cambridge_audio.markdown index 5afd9171bc2a..b217670e7f40 100644 --- a/source/_integrations/cambridge_audio.markdown +++ b/source/_integrations/cambridge_audio.markdown @@ -33,6 +33,8 @@ This integration allows you to connect the following devices: - Cambridge Audio 851N - Cambridge Audio MXN10 - Cambridge Audio AXN10 +- Cambridge Audio EXN100 +- Cambridge Audio Edge NQ Older, RS-232 serial-based amplifiers like the [CXA series](https://www.cambridgeaudio.com/usa/en/products/hi-fi/cx-series-2/cxa81) use a different protocol and are not currently supported. From 6b3f7e6b5aa6409c1b2ce27cef628fe2a3852375 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Tue, 15 Oct 2024 08:25:34 +0200 Subject: [PATCH 41/62] update example (#35233) --- source/_integrations/feedreader.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/feedreader.markdown b/source/_integrations/feedreader.markdown index ef4cd5504b25..6d4d8a4e5d0d 100644 --- a/source/_integrations/feedreader.markdown +++ b/source/_integrations/feedreader.markdown @@ -78,4 +78,4 @@ hass.bus.listen(EVENT_FEEDREADER, event_listener) To get started developing custom integrations, please refer to the [developers](/developers) documentation -For a drop in packaged complete example of Feedreader, you can use the [PodCast notifier](https://github.com/CCOSTAN/Home-AssistantConfig/blob/master/config/packages/hasspodcast.yaml). +For a drop in packaged complete example of Feedreader, you can use the [PodCast notifier](https://github.com/CCOSTAN/Home-AssistantConfig/blob/22c19375ac5dcb49e0648aa16c431537407aa5e4/config/packages/hasspodcast.yaml). From f8fb3c12988044da7d468c62cb7e3e26567399b0 Mon Sep 17 00:00:00 2001 From: Cody Cutrer Date: Tue, 15 Oct 2024 00:30:11 -0600 Subject: [PATCH 42/62] Document missing `hue` and `sat` variables in MQTT Template Schema Light (#34624) They're shown in one of the examples, but not explicitly listed as available. --- source/_integrations/light.mqtt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 4811d924e0dd..fdc64843bd44 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -960,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: From 21f59cc019fe667ad3f03a56b5dec0c21c0598f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 08:37:22 +0200 Subject: [PATCH 43/62] build(deps-dev): bump sorbet-runtime from 0.5.11602 to 0.5.11604 (#35250) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0f920d345596..2e62fb3367d5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11602) + sorbet-runtime (0.5.11604) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From f72583883341f367dcca3443762c749f128b8164 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 08:37:37 +0200 Subject: [PATCH 44/62] build(deps-dev): bump rubocop from 1.66.1 to 1.67.0 (#35249) --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6c0529719f7e..333d0306a4b6 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ group :development do gem 'stringex', '2.8.6' # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' - gem 'rubocop', '1.66.1' + gem 'rubocop', '1.67.0' gem 'ruby-lsp', '0.20.0' gem 'rackup', '2.1.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 2e62fb3367d5..c9df1c68da78 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -113,7 +113,7 @@ GEM regexp_parser (2.9.2) rexml (3.3.8) rouge (4.4.0) - rubocop (1.66.1) + rubocop (1.67.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -176,7 +176,7 @@ DEPENDENCIES nokogiri (= 1.16.7) rackup (= 2.1.0) rake (= 13.2.1) - rubocop (= 1.66.1) + rubocop (= 1.67.0) ruby-lsp (= 0.20.0) sass-globbing (= 1.1.5) sassc (= 2.1.0) From 58738c425aeab11813bd6ec3e37faa9d5b02aa81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:45:08 +0200 Subject: [PATCH 45/62] build(deps-dev): bump ruby-lsp from 0.20.0 to 0.20.1 (#35263) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 333d0306a4b6..e40b8611dad3 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ group :development do # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' gem 'rubocop', '1.67.0' - gem 'ruby-lsp', '0.20.0' + gem 'ruby-lsp', '0.20.1' gem 'rackup', '2.1.0' end diff --git a/Gemfile.lock b/Gemfile.lock index c9df1c68da78..df3cc18864ea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -125,7 +125,7 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.32.3) parser (>= 3.3.1.0) - ruby-lsp (0.20.0) + ruby-lsp (0.20.1) language_server-protocol (~> 3.17.0) prism (>= 1.2, < 2.0) rbs (>= 3, < 4) @@ -177,7 +177,7 @@ DEPENDENCIES rackup (= 2.1.0) rake (= 13.2.1) rubocop (= 1.67.0) - ruby-lsp (= 0.20.0) + ruby-lsp (= 0.20.1) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.0.0) From 5229bcbe02285226f607136a1b868ba19720c6f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:46:03 +0200 Subject: [PATCH 46/62] build(deps-dev): bump sass-embedded from 1.79.5 to 1.80.1 (#35262) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index df3cc18864ea..ebc1bf9d8ee2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,10 +134,10 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.79.5-arm64-darwin) - google-protobuf (~> 4.27) - sass-embedded (1.79.5-x86_64-linux-gnu) - google-protobuf (~> 4.27) + sass-embedded (1.80.1-arm64-darwin) + google-protobuf (~> 4.28) + sass-embedded (1.80.1-x86_64-linux-gnu) + google-protobuf (~> 4.28) sass-globbing (1.1.5) sass (>= 3.1) sassc (2.1.0) From f2babcaa4874791842a8742fb5ea811fbb650e7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 09:20:08 +0200 Subject: [PATCH 47/62] build(deps-dev): bump sorbet-runtime from 0.5.11604 to 0.5.11608 (#35277) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ebc1bf9d8ee2..318b9770090a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11604) + sorbet-runtime (0.5.11608) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 6ca30173ca6e5045f1a4d176b0e9b16027abaab8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 09:20:43 +0200 Subject: [PATCH 48/62] build(deps-dev): bump sass-embedded from 1.80.1 to 1.80.2 (#35276) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 318b9770090a..3058c6cba04e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,9 +134,9 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.80.1-arm64-darwin) + sass-embedded (1.80.2-arm64-darwin) google-protobuf (~> 4.28) - sass-embedded (1.80.1-x86_64-linux-gnu) + sass-embedded (1.80.2-x86_64-linux-gnu) google-protobuf (~> 4.28) sass-globbing (1.1.5) sass (>= 3.1) From 4cce052beb3a79dddf7f6ee1d50c8069e88f9b34 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 18 Oct 2024 17:08:10 +0200 Subject: [PATCH 49/62] 2024.10.3 (#35282) --- _config.yml | 4 +- .../_posts/2024-10-02-release-202410.markdown | 53 +++++++++++++++++++ source/changelogs/core-2024.10.markdown | 52 ++++++++++++++++++ 3 files changed, 107 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index e8bd60c9831f..9ec2cc56df42 100644 --- a/_config.yml +++ b/_config.yml @@ -108,8 +108,8 @@ social: # Home Assistant release details current_major_version: 2024 current_minor_version: 10 -current_patch_version: 2 -date_released: 2024-10-11 +current_patch_version: 3 +date_released: 2024-10-18 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2024-10-02-release-202410.markdown b/source/_posts/2024-10-02-release-202410.markdown index 173668b39520..08eed388d92f 100644 --- a/source/_posts/2024-10-02-release-202410.markdown +++ b/source/_posts/2024-10-02-release-202410.markdown @@ -55,6 +55,7 @@ Enjoy the release! - [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) @@ -685,6 +686,58 @@ every Friday. [@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/changelogs/core-2024.10.markdown b/source/changelogs/core-2024.10.markdown index 412d376ce193..737bde2a00ca 100644 --- a/source/changelogs/core-2024.10.markdown +++ b/source/changelogs/core-2024.10.markdown @@ -1376,6 +1376,58 @@ For a summary in a more readable format: [@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 From 3dd3f5daf62a46e8e29bb8f281caab2723261306 Mon Sep 17 00:00:00 2001 From: "A. Lochotzke" Date: Fri, 18 Oct 2024 17:26:24 +0200 Subject: [PATCH 50/62] Update mqtt.markdown (#35284) --- source/_integrations/mqtt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From 1fac3c36d98adbe542270f5bcdf6479d992b9885 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 19 Oct 2024 13:22:01 +0200 Subject: [PATCH 51/62] Add S1255 to the list of known working nibe heatpumps (#35288) --- source/_integrations/nibe_heatpump.markdown | 1 + 1 file changed, 1 insertion(+) 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 From fd15fdf2082ab1bd1f488357ea091fed013ab5be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 08:42:21 +0200 Subject: [PATCH 52/62] build(deps-dev): bump sorbet-runtime from 0.5.11608 to 0.5.11609 (#35314) Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11608 to 0.5.11609. - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) --- updated-dependencies: - dependency-name: sorbet-runtime dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3058c6cba04e..d0c72e988995 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11608) + sorbet-runtime (0.5.11609) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 329f46226d1be35677c7353124f20d185494453c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 08:42:48 +0200 Subject: [PATCH 53/62] build(deps-dev): bump sass-embedded from 1.80.2 to 1.80.3 (#35315) Bumps [sass-embedded](https://github.com/sass-contrib/sass-embedded-host-ruby) from 1.80.2 to 1.80.3. - [Commits](https://github.com/sass-contrib/sass-embedded-host-ruby/compare/v1.80.2...v1.80.3) --- updated-dependencies: - dependency-name: sass-embedded dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d0c72e988995..4c3d27221cb8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,9 +134,9 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.80.2-arm64-darwin) + sass-embedded (1.80.3-arm64-darwin) google-protobuf (~> 4.28) - sass-embedded (1.80.2-x86_64-linux-gnu) + sass-embedded (1.80.3-x86_64-linux-gnu) google-protobuf (~> 4.28) sass-globbing (1.1.5) sass (>= 3.1) From d124dffaf9e9b0fe066d803d5e4a3dddd7a6cfff Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Mon, 21 Oct 2024 09:44:05 +0200 Subject: [PATCH 54/62] Onboarding: update screenshots (#35317) * Onboarding: update screenshots - to refelct current software - Create my smart home step: add screenshot to make it clear where this is - Add note on difference between name and unsername, as this seems to come up in support * Revert Gemfile --- source/getting-started/onboarding.markdown | 7 +++++-- .../onboarding_preparing_01_.png | Bin 56490 -> 47872 bytes .../onboarding_preparing_02.png | Bin 0 -> 29665 bytes .../getting-started/onboarding_username.png | Bin 0 -> 37697 bytes source/images/getting-started/username.png | Bin 48899 -> 0 bytes 5 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 source/images/getting-started/onboarding_preparing_02.png create mode 100644 source/images/getting-started/onboarding_username.png delete mode 100644 source/images/getting-started/username.png 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/getting-started/onboarding_preparing_01_.png b/source/images/getting-started/onboarding_preparing_01_.png index 43094952abdf53cb427c0ed39df7e80133bcbdd3..fd1352467451cca7b767262c600a91c7eaea0780 100644 GIT binary patch literal 47872 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 HI`sblDr2;_ literal 56490 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%0AdLCU81XDk;z8$;?P8eji&%pxjvf9DW~ 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 literal 0 HcmV?d00001 diff --git a/source/images/getting-started/onboarding_username.png b/source/images/getting-started/onboarding_username.png new file mode 100644 index 0000000000000000000000000000000000000000..43e5babdd7eca8cde0a4cdfdce37b3f3283b6ae3 GIT binary patch literal 37697 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 AssI20 literal 0 HcmV?d00001 diff --git a/source/images/getting-started/username.png b/source/images/getting-started/username.png deleted file mode 100644 index 45f069d30d753d6cc0b3b4e2e3d198e6f2be10a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48899 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 Ufgjtq7;aA6WOe4h0Nw?%2LJ#7 From 8897dddb7c2bf25561d5cdab83a332e9f115c7dc Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Mon, 21 Oct 2024 16:46:37 +0200 Subject: [PATCH 55/62] Remove explicit mention of templating persistent_notification action parameters (#35319) * Remove explicit mention of templating persistent_notification action parameters * Update persistent_notification.markdown --- source/_integrations/persistent_notification.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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. From 162e87f7a1f36eadf1fee837f4504e92d80d04eb Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 21 Oct 2024 20:10:22 +0200 Subject: [PATCH 56/62] Add clarity on what the YAML keys actually mean (#35289) * Add clarity on what the YAML keys actually mean * tiny tweak --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/more-info/local-media/setup-media.markdown | 4 ++++ 1 file changed, 4 insertions(+) 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 From b3993f49af76aa9dd1fc90730fdab0d53ad43e66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 09:00:17 +0200 Subject: [PATCH 57/62] build(deps-dev): bump sorbet-runtime from 0.5.11609 to 0.5.11610 (#35330) Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11609 to 0.5.11610. - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) --- updated-dependencies: - dependency-name: sorbet-runtime dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4c3d27221cb8..7567ff4dc57d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11609) + sorbet-runtime (0.5.11610) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 78c888a6f0bc091d9b7cf2a79ebed2c1337f210e Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Tue, 22 Oct 2024 11:21:31 +0200 Subject: [PATCH 58/62] Add further and improve existing glossary entries (#35294) * add further and improve existing entries * tiny rephrase of the button definition --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_data/glossary.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml index 87f605a84e36..5c392f36a1df 100644 --- a/source/_data/glossary.yml +++ b/source/_data/glossary.yml @@ -87,6 +87,9 @@ A binary sensor returns information about things that only have two states - such as on or off. link: /integrations/binary_sensor + aliases: + - binary_sensor + - binary_sensors - term: Blueprint definition: >- A blueprint is a script or automation configuration with certain parts @@ -104,6 +107,13 @@ configuration-specific settings. aliases: - blueprints +- term: Button + definition: >- + A button entity can fire an event, or trigger an action towards a device or + service. It can be compared to a physical push button. The button entity does not have a state like `on` or `off`, but keeps the timestamp of when it was last pressed in the Home Assistant UI or via an action. + link: /integrations/button + aliases: + - buttons - term: Category definition: >- A category is an organization tool that allows grouping items in a table. @@ -114,6 +124,13 @@ have different categories than the scene, scripts, or helpers settings page. aliases: - categories +- term: Climate + definition: >- + The Climate entity allows you to control and monitor HVAC (heating, + ventilating, and air conditioning) devices and thermostats. + link: /integrations/climate + aliases: + - climates - term: Commissioning definition: >- In the context of Matter devices, *commissioning* is the process of adding a @@ -155,6 +172,8 @@ Covers are devices such as blinds, garage doors, etc that can be opened and closed and optionally set to a specific position. link: /integrations/cover + aliases: + - covers - term: Custom integration definition: >- A custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the [Spook](https://spook.boo/) integration. @@ -399,6 +418,8 @@ A light has a brightness you can control, and optionally color temperature or RGB color control. link: /integrations/light + aliases: + - lights - term: Matter definition: >- Matter is an open-source standard that defines how to control smart home From a10d830504bb13c4c68cb4ab50ac5602c2484d8b Mon Sep 17 00:00:00 2001 From: Josef Zweck <24647999+zweckj@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:16:40 +0200 Subject: [PATCH 59/62] Update La Marzocco Documentation (#35290) * Update lamarzocco.markdown * dropdowns are not rendered nicely * Update lamarzocco.markdown * Update lamarzocco.markdown Co-authored-by: Franck Nijhof * Update lamarzocco.markdown Co-authored-by: Franck Nijhof * Update lamarzocco.markdown Co-authored-by: Franck Nijhof * Update lamarzocco.markdown Co-authored-by: Franck Nijhof * Update lamarzocco.markdown Co-authored-by: Franck Nijhof * Update lamarzocco.markdown Co-authored-by: Franck Nijhof * Newline * tiny tweak * add remark to coffee temp * add automation example * Update lamarzocco.markdown * use details for troubleshooting section * missing % --------- Co-authored-by: Franck Nijhof Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/lamarzocco.markdown | 87 ++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 4 deletions(-) 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 %} + From 6ff3e5af3b2c91d8cc0013d71f02814067764ae6 Mon Sep 17 00:00:00 2001 From: Josef Zweck <24647999+zweckj@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:54:50 +0200 Subject: [PATCH 60/62] Update tedee documentation (#35335) * Update tedee.markdown * Update tedee.markdown * typo * Update tedee.markdown * Tiny tweeaks * Remove bolds --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/tedee.markdown | 72 +++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 4 deletions(-) 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 %} From 2d3278df485738f65fca698b68b6b1227d718699 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 08:38:20 +0200 Subject: [PATCH 61/62] build(deps-dev): bump sorbet-runtime from 0.5.11610 to 0.5.11611 (#35347) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7567ff4dc57d..cfc6836763e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11610) + sorbet-runtime (0.5.11611) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From cf3e51ac8f72223e61de6e340b0010a7c703b4a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Wed, 23 Oct 2024 09:09:21 +0000 Subject: [PATCH 62/62] Remove unmaintained and incomplete list of huawei_lte devices (#35346) Point more prominently to upstream list instead. --- source/_integrations/huawei_lte.markdown | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) 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.