Code Monkey home page Code Monkey logo

libpurecoollink's Introduction

Dyson Pure Cool Link Python library

Build Status Coverage StatusPyPI Documentation Status

This Python 3.4+ library allow you to control Dyson fan/purifier devices and Dyson 360 Eye robot vacuum device.

official documentation

Status

This library is becoming quite stable but backward compatibility is not yet guaranteed.

Full documentation

http://libpurecoollink.readthedocs.io

Supported devices

  • Dyson pure cool link devices (Tower and Desk)
  • Dyson pure cool+hot devices
  • Dyson 360 Eye robot vacuum

Features

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

Quick start

Please read official documentation

How it's work

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.

Work to do

  • Better protocol understanding
  • Better technical documentation on how it is working
  • Get historical data from the API (air quality, etc ...)

libpurecoollink's People

Contributors

bachp avatar balloob avatar charlesblonde avatar soraxas avatar thomashoussin avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.