This Python 3.4+ library allow you to control Dyson fan/purifier devices and Dyson 360 Eye robot vacuum device.
This library is becoming quite stable but backward compatibility is not yet guaranteed.
http://libpurecoollink.readthedocs.io
- Dyson pure cool tower (TP04)
- Dyson pure cool desk (DP04)
- Dyson pure cool link devices (Tower and Desk)
- Dyson pure cool+hot devices
- Dyson 360 Eye robot vacuum
The following feature are supported:
- Purifier/fan devices
- Connect to the device using discovery or manually with IP Address
- Turn on/off
- Set speed
- Turn on/off oscillation
- Set Auto mode
- Set night mode
- Set sleep timer
- Set Air Quality target (Normal, High, Better)
- Enable/disable standby monitoring (the device continue to update sensors when in standby)
- Reset filter life
- Adjust oscillation angle (TP04/DP04)
- Cool+Hot purifier/fan devices
- Set heat mode
- Set heat target
- Set fan focus mode
- 360 Eye device (robot vacuum)
- Set power mode (Quiet/Max)
- Start cleaning
- Pause cleaning
- Resume cleaning
- Abort cleaning
The following sensors are available for fan/purifier devices:
- Humidity
- Temperature in Kelvin
- Dust (unknown metric)
- Air quality (unknown metric)
Please read official documentation
Dyson devices use many different protocols in order to work:
- HTTPS to Dyson API in order to get devices informations (credentials, historical data, etc ...)
- MDNS to discover devices on the local network
- MQTT (with auth) to get device status and send commands
To my knowledge, no public technical information about API/MQTT are available so all the work is done by testing and a lot of properties are unknown to me at this time.
This library come with a modified version of Zeroconf because Dyson MDNS implementation is not valid.
This documentation help me to understand some of return values.
- Better protocol understanding
- Better technical documentation on how it is working
- Get historical data from the API (air quality, etc ...)