diff --git a/source/_components/binary_sensor.xiaomi.markdown b/source/_components/binary_sensor.xiaomi.markdown index 04ea9895bdb..ff3c9dc62ec 100644 --- a/source/_components/binary_sensor.xiaomi.markdown +++ b/source/_components/binary_sensor.xiaomi.markdown @@ -1,20 +1,25 @@ --- layout: page -title: "Xiaomi Binary sensors” -description: "Instructions how to integrate your Xiaomi Binary sensors within Home Assistant." +title: "Xiaomi Binary Sensor" +description: "Instructions how to setup the Xiaomi binary sensors within Home Assistant." date: 2017-07-21 16:34 sidebar: true comments: false sharing: true footer: true logo: xiaomi.png -ha_category: Binary sensor +ha_category: Binary Sensor ha_release: "0.50" +ha_iot_class: "Local Polling" --- -To get your Xiaomi binary sensors working with Home Assistant, follow the instructions for the general [Xiaomi Gateway component](/components/xiaomi/) -### Type of sensors supported: +The `xiaomi` binary sensor platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) binary sensors. + +The requirement is that you have setup the [`xiaomi` component](/components/xiaomi/). + + +### {% linkable_title Type of sensors supported %} - Motion - Door / Window - Smoke @@ -22,214 +27,268 @@ To get your Xiaomi binary sensors working with Home Assistant, follow the instru - Xiaomi Wireless Button - Xiaomi Cube -### Some automation examples to get you started: -- Motion +### {% linkable_title Automation examples %} + +#### {% linkable_title Motion %} + ```yaml - # Trigger for motion sensor - - - alias: If there is motion and its dark turn on the gateway light - trigger: - platform: state - entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 - from: 'off' - to: 'on' - condition: - condition: numeric_state - entity_id: sensor.illumination_34ce00xxxx11 - below: 300 - action: - service: light.turn_on - entity_id: light.gateway_light_34ce00xxxx11 - data: - brightness: 5 - - - alias: If there no motion for 5 minutes turn off the gateway light - trigger: - platform: state - entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 - from: 'on' - to: 'off' - for: - minutes: 5 - action: - service: light.turn_off - entity_id: light.gateway_light_34ce00xxxx11 +- alias: If there is motion and its dark turn on the gateway light + trigger: + platform: state + entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 + from: 'off' + to: 'on' + condition: + condition: numeric_state + entity_id: sensor.illumination_34ce00xxxx11 + below: 300 + action: + service: light.turn_on + entity_id: light.gateway_light_34ce00xxxx11 + data: + brightness: 5 +- alias: If there no motion for 5 minutes turn off the gateway light + trigger: + platform: state + entity_id: binary_sensor.motion_sensor_158d000xxxxxc2 + from: 'on' + to: 'off' + for: + minutes: 5 + action: + service: light.turn_off + entity_id: light.gateway_light_34ce00xxxx11 ``` -- Door / Window - ```yaml - # Trigger for door window sensor +#### {% linkable_title Door and/or Window %} - - alias: If the window is open turn off the radiator - trigger: - platform: state - entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 - from: 'off' - to: 'on' - action: - service: climate.set_operation_mode - entity_id: climate.livingroom - data: - operation_mode: 'Off' - - - alias: If the window is closed for 5 minutes turn on the radiator again - trigger: - platform: state - entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 - from: 'on' - to: 'off' - for: - minutes: 5 - action: - service: climate.set_operation_mode - entity_id: climate.livingroom - data: - operation_mode: 'Smart schedule' - ``` -- Smoke - ```yaml - # Trigger for smoke sensor - - - alias: Send notification on fire alarm - trigger: - platform: state - entity_id: binary_sensor.smoke_sensor_158d0001574899 - from: 'off' - to: 'on' - action: - - service: notify.html5 - data: - title: Fire alarm! - message: Fire/Smoke detected! - - service: xiaomi.play_ringtone - data: - gw_mac: xxxxxxxxxxxx - ringtone_id: 2 - ringtone_vol: 100 - ``` -- Gas ```yaml - # Trigger for natgas detected - - - alias: Send notification on gas alarm - trigger: - platform: state - entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx - from: 'off' - to: 'on' - action: - - service: notify.html5 - data_template: - title: Gas alarm! - message: 'Gas with a density of {{ states.binary_sensor.natgas_sensor_158dxxxxxxxxxx.attributes.density }} detected.' +- alias: If the window is open turn off the radiator + trigger: + platform: state + entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 + from: 'off' + to: 'on' + action: + service: climate.set_operation_mode + entity_id: climate.livingroom + data: + operation_mode: 'Off' +- alias: If the window is closed for 5 minutes turn on the radiator again + trigger: + platform: state + entity_id: binary_sensor.door_window_sensor_158d000xxxxxc2 + from: 'on' + to: 'off' + for: + minutes: 5 + action: + service: climate.set_operation_mode + entity_id: climate.livingroom + data: + operation_mode: 'Smart schedule' ``` -- Xiaomi Wireless Button (available events are `single`, `double`, `hold`, `long_click_press` and `long_click_release`). For Square version (Aqara brand) only `single` and `double` events are supported. Furthermore the space between two clicks to generate a double click must be quite large now + +#### {% linkable_title Smoke %} + ```yaml - # Trigger for the wireless button with different click types +- alias: Send notification on fire alarm + trigger: + platform: state + entity_id: binary_sensor.smoke_sensor_158d0001574899 + from: 'off' + to: 'on' + action: + - service: notify.html5 + data: + title: Fire alarm! + message: Fire/Smoke detected! + - service: xiaomi.play_ringtone + data: + gw_mac: xxxxxxxxxxxx + ringtone_id: 2 + ringtone_vol: 100 +``` - - alias: Toggle dining light on single press - trigger: - platform: event - event_type: click - event_data: - entity_id: binary_sensor.switch_158d000xxxxxc2 - click_type: single - action: - service: switch.toggle - entity_id: switch.wall_switch_left_158d000xxxxx01 +#### {% linkable_title Gas %} - - alias: Toggle couch light on double click - trigger: - platform: event - event_type: click - event_data: - entity_id: binary_sensor.switch_158d000xxxxxc2 - click_type: double - action: - service: switch.toggle - entity_id: switch.wall_switch_right_158d000xxxxx01 - - - alias: Let a dog bark on long press - trigger: - platform: event - event_type: click - event_data: - entity_id: binary_sensor.switch_158d000xxxxxc2 - click_type: long_click_press - action: - service: xiaomi.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`). ```yaml - # Trigger for a few cube events +- alias: Send notification on gas alarm + trigger: + platform: state + entity_id: binary_sensor.natgas_sensor_158dxxxxxxxxxx + from: 'off' + to: 'on' + action: + - service: notify.html5 + data_template: + title: Gas alarm! + message: 'Gas with a density of {% raw %}{{ states.binary_sensor.natgas_sensor_158dxxxxxxxxxx.attributes.density }}{% endraw %} detected.' +``` - - alias: Cube event flip90 - trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx - action_type: flip90 - action: - - service: light.turn_on - entity_id: light.gateway_light_28xxxxxxxxxx - data: - color_name: "springgreen" - - - alias: Cube event flip180 - trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx - action_type: flip180 - action: - - service: light.turn_on - entity_id: light.gateway_light_28xxxxxxxxxx - data: - color_name: "darkviolet" - - - alias: Cube event move - trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx - action_type: move - action: - - service: light.turn_on - entity_id: light.gateway_light_28xxxxxxxxxx - data: - color_name: "gold" - - - alias: Cube event tap_twice - trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx - action_type: tap_twice - action: - - service: light.turn_on - entity_id: light.gateway_light_28xxxxxxxxxx - data: - color_name: "deepskyblue" - - - alias: Cube event shake_air - trigger: - platform: event - event_type: cube_action - event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx - action_type: shake_air - action: - - service: light.turn_on - entity_id: light.gateway_light_28xxxxxxxxxx - data: - color_name: "blue" - ``` +#### {% linkable_title Xiaomi Wireless Button %} + +Available events are `single`, `double`, `hold`, `long_click_press` and `long_click_release`. For Square version (Aqara brand) only `single` and `double` events are supported. Furthermore the space between two clicks to generate a double click must be quite large now. + +```yaml +- alias: Toggle dining light on single press + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.switch_158d000xxxxxc2 + click_type: single + action: + service: switch.toggle + entity_id: switch.wall_switch_left_158d000xxxxx01 +- alias: Toggle couch light on double click + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.switch_158d000xxxxxc2 + click_type: double + action: + service: switch.toggle + entity_id: switch.wall_switch_right_158d000xxxxx01 +- alias: Let a dog bark on long press + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.switch_158d000xxxxxc2 + click_type: long_click_press + action: + service: xiaomi.play_ringtone + data: + gw_mac: xxxxxxxxxxxx + ringtone_id: 8 + ringtone_vol: 8 +``` + +#### {% linkable_title Xiaomi Cube %} + +Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall` and `rotate`. + +```yaml +- alias: Cube event flip90 + trigger: + platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_15xxxxxxxxxxxx + action_type: flip90 + action: + - service: light.turn_on + entity_id: light.gateway_light_28xxxxxxxxxx + data: + color_name: "springgreen" +- alias: Cube event flip180 + trigger: + platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_15xxxxxxxxxxxx + action_type: flip180 + action: + - service: light.turn_on + entity_id: light.gateway_light_28xxxxxxxxxx + data: + color_name: "darkviolet" +- alias: Cube event move + trigger: + platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_15xxxxxxxxxxxx + action_type: move + action: + - service: light.turn_on + entity_id: light.gateway_light_28xxxxxxxxxx + data: + color_name: "gold" +- alias: Cube event tap_twice + trigger: + platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_15xxxxxxxxxxxx + action_type: tap_twice + action: + - service: light.turn_on + entity_id: light.gateway_light_28xxxxxxxxxx + data: + color_name: "deepskyblue" +- alias: Cube event shake_air + trigger: + platform: event + event_type: cube_action + event_data: + entity_id: binary_sensor.cube_15xxxxxxxxxxxx + action_type: shake_air + action: + - service: light.turn_on + entity_id: light.gateway_light_28xxxxxxxxxx + data: + color_name: "blue" +``` +#### #### {% linkable_title 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. + +```yaml +- alias: Decrease brightness of the gateway light + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.wall_switch_left_158xxxxxxxxx12 + click_type: single + action: + service: light.turn_on + entity_id: light.gateway_light_34xxxxxxxx13 + data_template: + brightness: {% raw %}>- + {% if states.light.gateway_light_34xxxxxxxx13.attributes.brightness %} + {% if states.light.gateway_light_34xxxxxxxx13.attributes.brightness - 60 >= 10 %} + {{states.light.gateway_light_34xxxxxxxx13.attributes.brightness - 60}} + {% else %} + {{states.light.gateway_light_34xxxxxxxx13.attributes.brightness}} + {% endif %} + {% else %} + 10 + {% endif %}{% endraw %} + +- alias: Increase brightness of the gateway light + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.wall_switch_right_158xxxxxxxxx12 + click_type: single + action: + service: light.turn_on + entity_id: light.gateway_light_34xxxxxxxx13 + data_template: + brightness: {% raw %}>- + {% if states.light.gateway_light_34xxxxxxxx13.attributes.brightness %} + {% if states.light.gateway_light_34xxxxxxxx13.attributes.brightness + 60 <= 255 %} + {{states.light.gateway_light_34xxxxxxxx13.attributes.brightness + 60}} + {% else %} + {{states.light.gateway_light_34xxxxxxxx13.attributes.brightness}} + {% endif %} + {% else %} + 10 + {% endif %}{% endraw %} + +- alias: Turn off the gateway light + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.wall_switch_both_158xxxxxxxxx12 + click_type: both + action: + service: light.turn_off + entity_id: light.gateway_light_34xxxxxxxx13 +``` diff --git a/source/_components/cover.xiaomi.markdown b/source/_components/cover.xiaomi.markdown new file mode 100644 index 00000000000..ff2fa683b0e --- /dev/null +++ b/source/_components/cover.xiaomi.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Xiaomi Cover" +description: "Instructions how to setup the Xiaomi cover within Home Assistant." +date: 2017-07-21 16:34 +sidebar: true +comments: false +sharing: true +footer: true +logo: xiaomi.png +ha_category: Cover +ha_release: "0.50" +ha_iot_class: "Local Polling" +--- + + +The `xiaomi` cover platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) covers. + +The requirement is that you have setup [Xiaomi](/components/xiaomi/). + diff --git a/source/_components/light.xiaomi.markdown b/source/_components/light.xiaomi.markdown new file mode 100644 index 00000000000..24f84bc6b52 --- /dev/null +++ b/source/_components/light.xiaomi.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Xiaomi Light" +description: "Instructions how to setup the Xiaomi light within Home Assistant." +date: 2017-07-21 16:34 +sidebar: true +comments: false +sharing: true +footer: true +logo: xiaomi.png +ha_category: Light +ha_release: "0.50" +ha_iot_class: "Local Polling" +--- + + +The `xiaomi` light platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) lights. + +The requirement is that you have setup [Xiaomi](/components/xiaomi/). + diff --git a/source/_components/sensor.xiaomi.markdown b/source/_components/sensor.xiaomi.markdown new file mode 100644 index 00000000000..61336ac1df6 --- /dev/null +++ b/source/_components/sensor.xiaomi.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Xiaomi Sensor" +description: "Instructions how to setup the Xiaomi sensor within Home Assistant." +date: 2017-07-21 16:34 +sidebar: true +comments: false +sharing: true +footer: true +logo: xiaomi.png +ha_category: Sensor +ha_release: "0.50" +ha_iot_class: "Local Polling" +--- + + +The `xiaomi` sensor platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) sensors. + +The requirement is that you have setup [Xiaomi](/components/xiaomi/). + diff --git a/source/_components/switch.xiaomi.markdown b/source/_components/switch.xiaomi.markdown new file mode 100644 index 00000000000..1e4f1a5767e --- /dev/null +++ b/source/_components/switch.xiaomi.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Xiaomi Switch" +description: "Instructions how to setup the Xiaomi switch within Home Assistant." +date: 2017-07-21 16:34 +sidebar: true +comments: false +sharing: true +footer: true +logo: xiaomi.png +ha_category: Switch +ha_release: "0.50" +ha_iot_class: "Local Polling" +--- + + +The `xiaomi` switch platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) switches. + +The requirement is that you have setup [Xiaomi](/components/xiaomi/). + diff --git a/source/_components/xiaomi_gw.markdown b/source/_components/xiaomi.markdown similarity index 54% rename from source/_components/xiaomi_gw.markdown rename to source/_components/xiaomi.markdown index 9a20ca830d8..891567b7509 100644 --- a/source/_components/xiaomi_gw.markdown +++ b/source/_components/xiaomi.markdown @@ -9,10 +9,11 @@ sharing: true footer: true logo: xiaomi.png ha_category: Hub -ha_release: 0.50 +ha_release: "0.50" +ha_iot_class: "Local Polling" --- -The `xiaomi_gw` platform allows you to integrate the following devices into HA +The `xiaomi_gw` platform allows you to integrate the following [Xiaomi](http://www.mi.com/en/) devices into Home Assistant. - Temperature and Humidity Sensor (old and new version) - Motion Sensor (old and new version) @@ -44,34 +45,76 @@ What's not available? - Decoupled mode of the Aqara Wall Switches (Single & Double) - Additional alarm events of the Gas and Smoke Detector: Analog alarm, battery fault alarm (smoke detector only), sensitivity fault alarm, I2C communication failure -{% linkable_title Getting started %} Follow the setup process using your phone and Mi Home app. From here you will be able to retrieve the key from within the app following [this tutorial](https://community.home-assistant.io/t/beta-xiaomi-gateway-integration/8213/1832) -{% linkable_title Configuration %} +To enable Xioami gateway in your installation, add the following to your `configuration.yaml` file: One Gateway - ```yaml - # You can leave mac empty if you only have one gateway - xiaomi: - gateways: - - mac: - key: xxxxxxxxxxxxxxxx - ``` - Multiple Gateway - ```yaml - # 12 characters mac can be obtained from the gateway. - xiaomi: - gateways: - - mac: xxxxxxxxxxxx - key: xxxxxxxxxxxxxxxx - - mac: xxxxxxxxxxxx - key: xxxxxxxxxxxxxxxx - ``` +```yaml +# You can leave mac empty if you only have one gateway. +xiaomi: + gateways: + - mac: + key: xxxxxxxxxxxxxxxx +``` + + +Multiple Gateway + +```yaml +# 12 characters mac can be obtained from the gateway. +xiaomi: + gateways: + - mac: xxxxxxxxxxxx + key: xxxxxxxxxxxxxxxx + - mac: xxxxxxxxxxxx + key: xxxxxxxxxxxxxxxx +``` Configuration variables: + - **mac** (*Optional*): The MAC of your gateway. Required if you have more than one. - **key** (*Optional*): The key of your gateway. Required if you also want to control lights and switches; sensors and binary sensors will still work. - **discovery_retry** (*Optional*): Amount of times Home Assitant should try to reconnect to the Xiaomi Gateway. Default is 3. - **interface** (*Optional*): Which network interface to use. Default to any. + +## {% linkable_title Services %} + +The gateway provides two services: `xiaomi.play_ringtone` and `xiaomi.stop_ringtone`. To play ringtones by Home Assistant the version of the gateway firmware must be `1.4.1_145` at least. A `ringtone_id` and `gw_mac` must be supplied. The parameter `ringtone_vol` (percent) is optional. Allowed values of the `ringtone_id` are: + +- alarm ringtones [0-8] +- doorbell ring [10-13] +- alarm clock [20-29] +- custom ringtones (uploaded by mi home app) starting from 10001 + +Automation example + +```yaml +- alias: Let a dog bark on long press + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.switch_158d000xxxxxc2 + click_type: long_click_press + action: + service: xiaomi.play_ringtone + data: + gw_mac: xxxxxxxxxxxx + ringtone_id: 8 + ringtone_vol: 8 + +- alias: Stop barking immediately on single click + trigger: + platform: event + event_type: click + event_data: + entity_id: binary_sensor.switch_158d000xxxxxc2 + click_type: single + action: + service: xiaomi.stop_ringtone + data: + gw_mac: xxxxxxxxxxxx +```