GitHub Release GitHub Activity License hacs Community Forum
A core-ready Home Assistant integration for Dyson air purifiers, heaters, humidifiers, fans, and robotic vacuums featuring real-time MQTT communication and complete platform coverage.
- Cloud Discovery - Automatic device detection via Dyson API
- Manual Setup - Sticker-based or network-isolated configuration for local devices
- Capability Based Detection - Automatic platform setup based on device features
- Fan Control - Speed adjustment (1-10), on/off, night mode
- Air Quality Monitoring - PM2.5, PM10, real-time sensor data
- Smart Controls - Auto mode, oscillation
- Status Monitoring - Connectivity, filter life, fault detection, firmware version
- Precise Adjustments - Timers, oscillation angles
- Heating Support - Climate Control with Heater mode, Heater Thermostat, and Fan Direction
- Humidifier Support (e.g. PH models) - Experimental support is now available
- Climate Control - Climate Control with Humidistat (Experimental)
- Mid-run Controls - Pause, Resume, and Stop (Return to Dock)
- Vacuum Status - Battery level, Unique Identifier for Current Cleaning Session (for future use)
- lec Support - We hope to someday support Dyson "lec" or BLE devices such as lights via BLE proxy devices
-
Add Custom Repository to HACS
- Open HACS in Home Assistant
- Go to Settings (three dots menu)
- Select Custom repositories
- Add repository URL:
https://github.com/cmgrayb/hass-dyson - Select category: Integration
- Click Add
-
Install Integration
- Search for "Dyson" in HACS
- Click Download
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for "Dyson"
- Choose setup method:
- Cloud Discovery - Enter Dyson account credentials
- Manual Setup - Enter device details from sticker or information gained through the Get Cloud Devices Action, or external tooling such as libdyson-rest or opendyson
When selecting Cloud Discovery, you'll be guided through the following steps:
-
Email: Your Dyson account email address
-
Country: Verify your country and culture (affects API region and localization)
-
Password: Your Dyson account password
-
OTP: The one-time password sent to your e-mail by Dyson
Choose your preferred default connection method for your devices:
-
Local Only: Talks to the device only through the device's MQTT server
- Maximum privacy, can be used without internet access for the device
- Susceptible to local device MQTT server failures and mDNS resolution issues
- Note: This mode is most similar to the ha-dyson integration
-
Local with Cloud Fallback: Stays local until and unless the local server cannot be reached, then reconnects to the device through the Dyson-hosted MQTT Proxy service.
- Balances privacy and uptime by only using cloud when necessary
- Attempts to reconnect to local periodically
- Allows the user to reconnect to local manually through the Reconnect button
-
Cloud with Local Fallback: Stays on the Dyson MQTT Proxy service until and unless internet access is lost, then reconnects to the device directly
- Uses an encrypted connection as often as possible but switches to local to maintain connectivity in the event of internet outage
- Attempts to reconnect to cloud periodically
- Allows the user to reconnect to cloud manually through the Reconnect button
-
Cloud Only: Stays on the Dyson MQTT Proxy
- Useful for environments which cannot support mDNS
- Can be used to control Dyson devices on other networks for remote management
- All communication with the device is encrypted in transit
Note: Each device may individually override its preferred connection method once discovered
Choose your preference for level of control of discovery:
- Poll for New Devices: If selected, the API will be queried for new devices periodically, making them available for discovery
- Automatically Add Discovered Devices: Uses the information from polling your Dyson account to connect to the devices using your Default Connection Method
Scenarios:
-
I want my Dyson devices to show up in Home Assistant as soon as they are found
- Leave both checkboxes selected
-
I want Home Assistant to ask me to add my devices as they are found so I can choose which ones to add or ignore
- Only select Poll for New Devices, leave Automatically Add Discovered Devices unchecked.
-
I want to add my Dyson devices individually and manually or I am only interested in using the Get Cloud Devices Action
- Deselect both checkboxes
- For more information, see: Actions
Based on your device capabilities and category, you'll automatically get:
All Devices (Basic Support):
- Basic binary sensors (online/offline, faults)
WiFi-Enabled Devices (EC/Robot Categories):
- Connection status sensor (Local/Cloud/Disconnected)
- Reconnect button to attempt to re-establish preferred connectivity
- WiFi signal strength sensor (diagnostic)
- Temperature sensor
- Humidity sensor
- Carbon filter sensors
- HEPA filter sensors
Air Quality Models (ExtendedAQ Capability):
- PM2.5 air quality sensor
- PM10 air quality sensor
- HEPA filter life sensor (%)
- HEPA filter type sensor
- Carbon filter life sensor (%)
- Carbon filter type sensor
- VOC sensor
- NO2/NOx sensor
- CO2 sensor
- HCHO/Formaldehyde sensor
Heating models (Heating Capability):
- Climate control platform
- HVAC Controls:
- Mode control: Heat/Fan only/Off
- Heat minimum temperature (thermostat)
Humidifier models (Humidifier Capability):
- Climate control platform
- Humidifier Controls:
- Mode control: Humidify/Fan only/Off
- Humidifier minimum humidity (humidistat)
Robotic Vacuum models (Robot Category) (360/Heurist/Vis Nav, etc.):
- Vacuum platform
- Mid-run Controls - Pause, Resume, and Stop (Return to Dock)
- Vacuum Status - Battery level, Unique Identifier for Current Cleaning Session
- Initial connection: 10-30 seconds
- Device discovery: 5-15 seconds per device
- Entity creation: Values may take a minute or two to show up after new device creation or boot
- Invalid credentials: Verify email/password and account region
- No devices found: Ensure devices are registered in Dyson app
- Connection timeout: Check internet connection and Dyson API status
- Partial device data: Some devices may need additional setup time
Please note: some features (like Firmware version) will not work without access to the Cloud API
Required information from device sticker, libdyson-rest, or opendyson:
- Serial Number (e.g., MOCK-SERIAL-TEST123)
- Device Password (from sticker)
- MQTT Prefix (e.g., 438M for Pure Cool models)
- Device Type (e.g., EC for air purifiers)
hass_dyson: devices: - serial_number: "MOCK-SERIAL-TEST123" discovery_method: "sticker" hostname: "192.168.1.100" # Optional: IP address credential: "your_device_password" device_type: "ec" mqtt_prefix: "438M" capabilities: ["AdvanceOscillationDay1", "Scheduling", "ExtendedAQ"]
- Actions - Information on included Home Assistant Actions
- Controls - Information on included controls for devices
- Device Compatibility Matrix - Complete breakdown of which entities are available for each device type and capability
- Device Management - Information on device discovery and configuration
- Entities - Information on entities to expect for a given device type
- Sensors - Information on included sensors for devices
- Supported Devices - Information on devices tested and known to be supported
- Setup Guide - Detailed installation and configuration instructions
- Troubleshooting - Troubleshooting Guide
- API Documentation - Comprehensive API documentation with code examples and usage patterns for developers
- Developers Guide - See something you can help with? This is where to start!
- Home Assistant 2025.12+
- Python 3.11+
- Dependencies (auto-installed):
libdyson-rest>=0.11.0paho-mqtt>=2.1.0cryptography>=45.0.7
- libshenxn - For getting the Dyson community started with the original libdyson
- dotvezz - For maintaining the libdyson-wg working group, ha-dyson, and opendyson, the inspiration for this integration
- libdyson-wg - For maintaining excellent documentation and tooling without which this integration would not have been possible
- paho-mqtt - Reliable MQTT communication library
- Home Assistant - Amazing home automation platform
- Dyson - For making great products worth putting in the work for
This project is licensed under the MIT License - see the LICENSE file for details.