This is a Home Assistant custom integration for Wi-Fi connected Dyson devices, and is being actively developed. It replaces the Dyson Local and Dyson Cloud integrations by shenxn, which are no longer maintained.
Please try power-cycling the fan device and try connecting again.
Dyson fans run an MQTT Broker which this integration connects to as a client. The broker has a connection limit and some devices appear to have a firmware bug where they hold onto dead connections and fill up the connection pool, causing new connections to fail. This behavior has been observed on the following device models, but may also include others:
- TP07 Purifier Cool
- TP09 Purifier Cool Formaldehyde
- HP07 Purifier Hot+Cool
- HP09 Purifier Hot+Cool Formaldehyde
You can also install manually by copying the custom_components
from this repository into your Home Assistant installation.
This integration uses MQTT-based protocol to communicate with Dyson devices. Only WiFi enabled models have this capability. Currently the following models are supported, and support for more models can be added on request.
- Dyson 360 Eye robot vacuum
- Dyson 360 Heurist robot vacuum
- Dyson Pure Cool
- Dyson Purifier Cool
- Dyson Purifier Cool Formaldehyde
- Dyson Pure Cool Desk
- Dyson Pure Cool Link
- Dyson Pure Cool Link Desk
- Dyson Pure Hot+Cool
- Dyson Pure Hot+Cool Link
- Dyson Purifier Hot+Cool
- Dyson Purifier Hot+Cool Formaldehyde
- Dyson Pure Humidity+Cool
- Dyson Purifier Humidity+Cool
- Dyson Purifier Humidity+Cool Formaldehyde
- Dyson Purifier Big+Quiet
- Dyson Purifier Big+Quiet Formaldehyde
MyDyson mobile apps use an HTTP-based API, which is also used by the MyDyson part of this integration. Currently it supports automated setup of your devices by discovering and fetching credentials from the API. It also supports getting cleaning maps as camera
entities for 360 Eye robot vacuum.
Once you have installed the integration, navigate to Settings > Devices
tab, press Add integration
on the bottom right and search for Dyson
.
Note: Some new models released after 2020 do not ship with a Wi-Fi information sticker. They are still supported by this integration, but can only be configured via your MyDyson account. After setting up your devices, your account can be deleted from Home Assistant if you prefer to stay offline.
Find your device Wi-Fi SSID and password on the sticker on your device body or user's manual. Don't fill in your home Wi-Fi information. Note that this method only uses SSID and password to calculate serial, credential, and device type so you still need to setup your device on the official mobile app first.
You can also set up a MyDyson account first so that you don't need to manually get device credentials. After successfully connecting your account, all devices under the account will be shown as discovered entities and you can easily set them up. After that, you can even remove MyDyson account entity if you don't need cleaning maps for the 360 Eye vacuum. All local devices that are already set up will remain untouched.
Note: When setting up your MyDyson account, please make sure you check your email/spam for the verification code from Dyson.
If you want to manually set up a Dyson device, you need to get credentials first. Clone or download https://github.com/libdyson-wg/libdyson-neon, then use python3 get_devices.py
to do that. You may need to install some dependencies using pip3 install -r requirements.txt
.
This is a custom integration not a custom add-on. You need to install HACS and add this repo there.
How do I migrate from shenxn/ha-dyson?
Before we look into the migration options, a note on sensors for Volatile Organic Compounts and Nitrogen Dioxide
There's a LOT of reading in libdyson-wg#4 if you want the full context, and some additional summaries in libdyson-wg#89 and libdyson-wg#127.
The short answer here is: while we're really grateful to Shen and the original set of contributors whose shoulders we're standing on here, the original VOC and NO2 sensors were incorrectly reporting µg/m³, when the sensor data from the device is actually an index. Unfortunately, the fan devices do not give us any raw sensor numbers, and we don't know the proprietary calculations that Dyson uses to turn their raw sensor data into the index value.
As a result, this integration has removed the old sensor.device_volatile_organic_compounds entities. We've implemented new sensor.device_volatile_organic_compounds_index entities that correctly reflect the data.
You can delete the old entities, which should now be unavailable, from your Home Assistant instance.
This is less proven, but it is possible to switch over with zero impact to your current integration configuration, entities/devices, or dashboards. I don't know what side-effects it may have though (leftover old config data might start causing issues or something - no guarantees).
- Remove the ha-dyson and ha-dyson-cloud custom repositories from HACS
- Without removing the integrations themselves
- Install the new ha-dyson
- If you installed this as a Custom Repository, update the ha-dyson repository using the HACS updater
This is proven to work without any side effects. If you used the default IDs for the entities and devices, then you'll just need to re-configure the devices but your dashboards will not need updating.
- Remove the Dyson Local and Dyson Cloud integrations from your /config/integrations page.
- Remove the Dyson Local and Dyson Cloud integrations from your /hacs/integrations page.
- Remove the dyson-ha and dyson-ha-cloud custom repositories from HACS
- Add the new dyson-ha
- If you installed this as a Custom Repository, update the ha-dyson repository using the HACS updater