Skip to content

libdyson-wg/ha-dyson

Repository files navigation

Home Assistant Integration for Wi-Fi Connected Dyson Devices

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.

GitHub (Pre-)Release Date Latest Release validate HACS Action Latest Commit

Troubleshooting

Fan connection failures

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

Installation

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

You can also install manually by copying the custom_components from this repository into your Home Assistant installation.

Dyson Devices Supported

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 Accounts

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.

Setup

Once you have installed the integration, navigate to Settings > Devices tab, press Add integration on the bottom right and search for Dyson.

Open your Home Assistant instance and start setting up a new integration.

Setup using device Wi-Fi information

Note: New models released after 2020 do not ship with a Wi-Fi information sticker. These models are still supported by this integration, but can only be configured via your MyDyson account or with the manual setup described below. 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.

Setup using your MyDyson account

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.

Setup manually

If you want to manually set up a Dyson device, you need to get credentials first. You can use opendyson to connect to the Dyson API and fetch the required device credentials, then use those credentials in the manual setup for your device on Home Assistant.

FAQ

I got "not a valid add-on repository" when I try to add this repo

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 #4 if you want the full context, and some additional summaries in #89 and #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.

Experimental no-reconfiguration migration

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).

  1. Remove the ha-dyson and ha-dyson-cloud custom repositories from HACS
    • Without removing the integrations themselves
  2. Install the new ha-dyson
    • If you installed this as a Custom Repository, update the ha-dyson repository using the HACS updater

Proven some-reconfiguration migration

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.

  1. Remove the Dyson Local and Dyson Cloud integrations from your /config/integrations page.
  2. Remove the Dyson Local and Dyson Cloud integrations from your /hacs/integrations page.
  3. Remove the dyson-ha and dyson-ha-cloud custom repositories from HACS
  4. Add the new dyson-ha
    • If you installed this as a Custom Repository, update the ha-dyson repository using the HACS updater