Home

Awesome

Dyson-graph

just a proof of concept and scripts backup for playing with my Dyson Pure Cool Link

init

to setup the Dyson, you have first to connect on its own Wi-Fi APi. The Fan will broadcast on Bonjour a service of type _dyson_mqtt._tcp listening on port 1883 (and in my case on address 192.168.1.1). You have to init the fan by sending SSID and passphrase of your local Wi-Fi. after than you can ask the dyson do disable its AP and it will connect to your local Wi-Fi. From this point, the fan will try to connect to Dyson/Amazon server to send data.

some trial in Dyson-init.py

took some example from http://aakira.hatenablog.com/entry/2016/08/12/012654

After this initialization, you'll have to use the hashed password to connect to the fan. The hashed password is a base64 encoded of the sha512 of the password written on manual and on the fan label

from MQTT to RRD

Using a modified version of irvined1982/MQTT2RRD as this one expect one sensor value per topic. Here the Dyson send a json with several sensor or state packed altogether the script now use paho and python 3

mqtt2rrd.py with mqtt2rrd.conf.example

that will create a lot of rrd files

requesting to send sensor data

If not doing anything, the Fan does not send data to subscriber, you need to publish some command at fixed interval (here every 30 seconds as the pure link app does)

I'm currently using Dyson-requester.py in a screen

RRD to graph

to create graph, I'm using rrd.cgi http://haroon.sis.utoronto.ca/rrd/scripts/ with the conf rrd.cfg

some graphs can be removed as they are redundant

Data explanation

CURRENT-STATE

product-state

namemeaningpossible values
ercd?NONE , or some hexa values
filfFilter life remaining (hour)0000 - 4300
fmodModeFAN , AUTO
fnspFan speed0001 - 0010, AUTO
fnstFan StatusON , OFF
nmodNight modeON , OFF
osonOscillationON , OFF
qtarAir Quality target0001 , 0003...
rhtmCollect Data ?OFF...
wacd?NONE...

scheduler

namemeaningpossible values
dstv?0001...
srsc?7c68...
tzidtimezone?0001...

ENVIRONMENTAL-CURRENT-SENSOR-DATA

data

namemeaningpossible values
hactHumidity (%)0000 - 0100
pactDust0000 - 0009
sltmSleep TimerOFF... 9999
tactTemperature in Kelvin0000 - 5000
vactvolatil organic compounds0001 - 0009

ENVIRONMENTAL-AND-USAGE-DATA

Redundent values ?

data

namemeaningpossible values
pal0 - pal9number of second spend in this level of dust since the begining of hour0000 - 3600
palmseems to be a median value of palX
vol0 - vol9number of second spend in this level of voc since the begining of hour0000 - 3600
volmseems to be a median value of volX
aql0 - aql9number of second spend in this level of air qualitymax (pal, vol)) since the begining of hour
aqlmseems to be a median value of aqlX
fafsseems to be a number of seconds spend in a specific time0000 - 3600
faosseems to be a number of seconds spend in a specific time0000 - 3600
fofsseems to be a number of seconds spend in a specific time0000 - 3600
fonsseems to be a number of seconds spend in a specific time0000 - 3600
hummhumidity ? (%)0000 - 0100
tmpmtemperature in kelvin ?0000 - 5000