Skill Overview
---
name: dyson-cli
description: Control Dyson air purifiers, fans, and heaters via local MQTT. Use when asked to control Dyson devices, adjust fan speed, set temperature/heat, enable oscillation, or check room temperature/humidity. Requires being on the same WiFi network as the device.
---
# Dyson CLI
## Prerequisites
1. CLI installed at `~/dyson-cli` with venv
2. **Must be on same WiFi as the Dyson** - local MQTT only, won't work remotely
**Quick check:**
```bash
cd ~/dyson-cli && source .venv/bin/activate && dyson list --check
```
## Commands
### Power
```bash
dyson on # Turn on
dyson off # Turn off
```
### Fan Control
```bash
dyson fan speed 5 # Speed 1-10
dyson fan speed auto # Auto mode
dyson fan oscillate on # Enable oscillation
dyson fan oscillate on -a 90 # 90° sweep (45/90/180/350)
dyson fan oscillate off # Disable oscillation
```
### Heat Control (Hot+Cool models)
```bash
dyson heat on # Enable heating
dyson heat off # Disable heating
dyson heat target 22 # Set target temp (°C)
```
### Other
```bash
dyson night on # Night mode on
dyson night off # Night mode off
dyson status # Show current state
dyson status --json # JSON output
```
### Multiple Devices
Use `-d <name>` to target a specific device:
```bash
dyson on -d "Bedroom"
dyson fan speed auto -d "Office"
```
## Common Patterns
```bash
# "Turn on the Dyson and set to auto"
dyson on && dyson fan speed auto
# "Heat to 23 degrees"
dyson heat on && dyson heat target 23
# "Turn on with gentle oscillation"
dyson on && dyson fan speed 3 && dyson fan oscillate on -a 45
# "What's the current temperature?"
dyson status --json | python3 -c "import sys,json; d=json.load(sys.stdin); print(f\"Temp: {d['temperature']-273:.1f}°C, Humidity: {d['humidity']}%\")"
```
## Troubleshooting
If commands fail:
1. Check device is online: `dyBot Reviews(1)
Local-only control is the right default
Driving the purifier, fan and heater over local MQTT with no cloud round-trip is fast and privacy-friendly, and the command surface for speed, oscillation and temperature reads cleanly. The hard constraint is real though: you must be on the same network, so this will not help a remote trigger without extra plumbing. Confirm the device appears before scripting anything.
Use case: Automating air quality and comfort adjustments from a home agent.
Study Guides(1)
Local control that responds instantly
# Local control that responds instantly The purifier, fan and heater are driven over local MQTT, so commands land without a cloud round-trip. That speed and privacy are worth the one real constraint: you must be on the same network. ```bash dyson list --check dyson fan speed 5 dyson fan oscillate on -a 90 ``` ## Confirm the device first Always verify the device is visible before scripting anything. A missing device is the most common cause of a silent failure. ## Read temperature and humidity The sensor readings are what make automation useful: let the agent adjust based on actual room conditions rather than a schedule alone. ## Keep the venv active The CLI runs from its own virtual environment. Activate it in the same shell, or automation will not find the command.
Quick Facts
Install
npx clawhub@latest install dyson-cli