Xiaomi Gateway (Aqara)
The xiaomi_aqara
component allows you to integrate Xiaomi Aqara-compatible devices into Home Assistant.
Supported Devices
- Temperature and Humidity Sensor (1st and 2nd generation)
- Motion Sensor (1st and 2nd generation)
- Door and Window Sensor (1st and 2nd generation)
- Button (1st and 2nd generation)
- Plug aka Socket (Zigbee version, reports power consumed, power load, state and if device in use)
- Wall Plug (reports power consumed, power load and state)
- Aqara Wall Switch (Single)
- Aqara Wall Switch (Double)
- Aqara Wall Switch LN (Single)
- Aqara Wall Switch LN (Double)
- Aqara Wireless Switch (Single)
- Aqara Wireless Switch (Double)
- Cube
- Gas Leak Detector (reports alarm and density)
- Smoke Detector (reports alarm and density)
- Gateway (Light, Illumination Sensor, Ringtone play)
- Intelligent Curtain
- Water Leak Sensor
- Battery
Unsupported Devices
- Gateway Radio
- Gateway Button
- Aqara Air Conditioning Companion
- Aqara Intelligent Air Conditioner Controller Hub
- 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
Setup
Follow the setup process using your phone and Mi-Home app. From here you will be able to retrieve the key (password) from within the app following this tutorial.
To enable Xiaomi Gateway (Aqara) in your installation, add the following to your configuration.yaml
file:
One Gateway
# You can leave MAC empty if you only have one gateway.
xiaomi_aqara:
discovery_retry: 5
gateways:
- key: xxxxxxxxxxxxxxxx
Multiple Gateways
# 12 characters MAC can be obtained from the gateway.
xiaomi_aqara:
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
Search for gateways on specific interface
# 12 characters MAC can be obtained from the gateway.
xiaomi_aqara:
interface: '192.168.0.1'
gateways:
- mac: xxxxxxxxxxxx
key: xxxxxxxxxxxxxxxx
Configuration Variables
- mac
-
(string)(Optional)The MAC address of your gateway. Optional if only using one gateway.
- key
-
(string)(Optional)The key of your gateway. Optional if only using sensors and/or binary sensors.
- discovery_retry
-
(int)(Optional)Number of times that Home Assistant should try to reconnect to the gateway.
Default value: 3
- interface
-
(string)(Optional)Which network interface to use.
Default value: any
- host
-
(string)(Optional)The host/IP address of the gateway. If this parameter is used the multicast discovery of the gateway is skipped.
Services
The gateway provides the following services:
Service xiaomi_aqara.play_ringtone
Play a specific ringtone. The version of the gateway firmware must be 1.4.1_145
at least. Take a look at the examples below.
Service data attribute | Optional | Description |
---|---|---|
gw_mac |
no | MAC address of the Xiaomi Aqara Gateway |
ringtone_id |
no | One of the allowed ringtone ids |
ringtone_vol |
yes | The volume in percent |
Allowed values of the ringtone_id
are:
- Alarms
- 0 - Police car 1
- 1 - Police car 2
- 2 - Accident
- 3 - Countdown
- 4 - Ghost
- 5 - Sniper rifle
- 6 - Battle
- 7 - Air raid
- 8 - Bark
- Doorbells
- 10 - Doorbell
- 11 - Knock at a door
- 12 - Amuse
- 13 - Alarm clock
- Alarm clock
- 20 - MiMix
- 21 - Enthusiastic
- 22 - GuitarClassic
- 23 - IceWorldPiano
- 24 - LeisureTime
- 25 - ChildHood
- 26 - MorningStreamLiet
- 27 - MusicBox
- 28 - Orange
- 29 - Thinker
- Custom ringtones (uploaded by the Mi Home app) starting from 10001
Service xiaomi_aqara.stop_ringtone
Stops a playing ringtone immediately.
Service data attribute | Optional | Description |
---|---|---|
gw_mac |
no | MAC address of the Xiaomi Aqara Gateway |
Service xiaomi_aqara.add_device
Service data attribute | Optional | Description |
---|---|---|
gw_mac |
no | MAC address of the Xiaomi Aqara Gateway |
Service xiaomi_aqara.add_device
Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds. A new device can be added afterwards by pressing the pairing button once.
Service data attribute | Optional | Description |
---|---|---|
gw_mac |
no | MAC address of the Xiaomi Aqara Gateway |
Service xiaomi_aqara.remove_device
Removes a specific device. The removal is required if a device shall be paired with another gateway.
Service data attribute | Optional | Description |
---|---|---|
gw_mac |
no | MAC address of the Xiaomi Aqara Gateway |
device_id |
no | Hardware address of the device to remove |
Examples
Long Press on Smart Button
This example plays the sound of a dog barking when the button is held down and stops the sound when the button is pressed once.
Note: The sound will stop playing automatically when it has ended.
- 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_aqara.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_aqara.stop_ringtone
data:
gw_mac: xxxxxxxxxxxx
Double Click on Smart Button
This example toggles the living room lamp on a double click of the button.
- alias: Double Click to toggle living room lamp
trigger:
platform: event
event_type: click
event_data:
entity_id: binary_sensor.switch_158d000xxxxxc2
click_type: double
action:
service: light.toggle
data:
entity_id: light.living_room_lamp
Troubleshooting
Initial setup problem
If you run into trouble initializing the gateway with your app, try another smartphone. E.g., it didn’t work on an OnePlus 3, but it worked with a Nexus 5.
Connection problem
2017-08-20 16:51:19 ERROR (SyncWorker_0) [homeassistant.components.xiaomi] No gateway discovered
2017-08-20 16:51:20 ERROR (MainThread) [homeassistant.setup] Setup failed for xiaomi: Component failed to initialize.
That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall.
- Make sure you have enabled LAN access.
- Turn off the firewall on the system where Home Assistant is running.
- Ensure your router supports multicast as this is a requirement of the Xiaomi Gateway.
- Try to leave the MAC address
mac:
blank. - Try to set
discovery_retry: 10
. - Try to disable and then enable LAN access.
- Hard reset the gateway: Press the button of the gateway 30 seconds and start again from scratch.
- If you are using Home Assistant in Docker, make sure to use
--net=host
. - If you receive an
{"error":"Invalid key"}
in your log while trying to control the gateway light, you should generate the key again using an Android Phone or alternatively an emulator such as bluestacks. In some instances there is an issue with keys being generated using the iOS application. - If the required library “PyXiaomiGateway” cannot be installed you will need to install some missing system dependencies
python3-dev
,libssl-dev
,libffi-dev
manually (e.g.,$ sudo apt-get install python3-dev libssl-dev libffi-dev
).