Skip to main content

Dyson driver

The dyson fan uses MQTT to communicate. It reads credentials in a (top-level) config.json file:

FAN\_CONFIG.model,

FAN\_CONFIG.id,

FAN\_CONFIG.ip,

FAN\_CONFIG.username,

FAN\_CONFIG.password,

FAN\_CONFIG.clientid,

FAN\_CONFIG.MQTT\_IP

Unfortunately there is no easy way to get these credentials, other than just doing a wireguard packet sniff on the MQTT port. Full details on how to do this can be found in the README.md of this driver. Once running, the (node) server accepts the following:

endpointmethoddescriptionparams
/ui/api/data_readGETPoll in the air quality stats from the fan every 5 seconds.
/ui/api/data_stopGETStop polling the fan every 5 seconds
/ui/api/fanGETControl the fansubject:
  • on: true or false (i.e turn the fan on or off)
  • power: set the fan power (i.e. how strength of airflow) from 1 to 9
  • rotate
  • from, to set rotation
  • from: degrees
  • to: degrees, eg:?rotate=true&from=0&to=90
  • cool set fan to cooling
  • heat: set fan to heating
/api/arm/statusGETReturn status information on the drawer and the door.
/api/arm/toggledoorGETOpen / close the door