← Back to Skills Marketplace
tmustier

Dyson Fan Control

by tmustier · GitHub ↗ · v0.1.0
cross-platform ✓ Security Clean
1973
Downloads
5
Stars
2
Active Installs
1
Versions
Install in OpenClaw
/install 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.
README (SKILL.md)

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:

cd ~/dyson-cli && source .venv/bin/activate && dyson list --check

Commands

Power

dyson on                      # Turn on
dyson off                     # Turn off

Fan Control

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)

dyson heat on                 # Enable heating
dyson heat off                # Disable heating
dyson heat target 22          # Set target temp (°C)

Other

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 \x3Cname> to target a specific device:

dyson on -d "Bedroom"
dyson fan speed auto -d "Office"

Common Patterns

# "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: dyson list --check
  2. Ensure on same WiFi network as the Dyson
  3. Re-run setup if credentials expired: dyson setup

For installation, device setup, and full documentation, see README.md.

Usage Guidance
This skill appears to do what it says: it uses your Dyson account to fetch device credentials, then controls devices locally over your Wi‑Fi using MQTT/mDNS. Before installing or running: 1) Confirm the code origin — prefer installing from the upstream GitHub repository or PyPI referenced in the README rather than running code from an unknown registry source. 2) Understand that 'dyson setup' will prompt for your Dyson account email, OTP and password and will save device credentials to ~/.dyson/config.json — if you are uncomfortable storing tokens locally, do not proceed. 3) Review the libdyson(-neon) dependency for trustworthiness. 4) The CLI only controls devices on the same LAN; no unexpected external endpoints or env-var exfiltration were observed in the provided files.
Capability Analysis
Type: OpenClaw Skill Name: dyson-cli Version: 0.1.0 The OpenClaw AgentSkills bundle for 'dyson-cli' is classified as benign. The skill's purpose is clearly defined as controlling Dyson devices locally via MQTT, and all code and instructions align with this purpose. While Dyson account credentials are stored locally in `~/.dyson/config.json` after initial setup, this is a necessary and common practice for CLI tools requiring persistent authentication, and there is no evidence of exfiltration of these or any other sensitive data. All network communication initiated by the skill, beyond the initial Dyson cloud login for credential fetching, is confined to the local network to interact with Dyson devices. The `SKILL.md` instructions do not contain any prompt injection attempts to subvert the agent or perform unauthorized actions, and embedded shell commands are benign, processing the skill's own output.
Capability Assessment
Purpose & Capability
Name/description (local control of Dyson devices) matches the contained code and README: the CLI uses libdyson to fetch account-backed credentials then controls devices locally via MQTT/mDNS and direct TCP. Required functionality (setup, discovery, status, control) is present and coherent.
Instruction Scope
SKILL.md instructs running the dyson CLI from a local venv and shows commands that will perform account setup (OTP + password prompt), discovery, and local control. Asking the user to provide their Dyson account email/password and OTP during 'dyson setup' is expected for fetching device credentials, but is sensitive — the skill will store credentials in ~/.dyson/config.json as described.
Install Mechanism
There is no install spec in the registry entry (instruction-only), but the bundle includes a pyproject and source files and README pointing to a GitHub pip install. This is reasonable for a CLI package, but users should prefer installing from the upstream GitHub repository or PyPI rather than running unverified code shipped in a skill bundle.
Credentials
The skill requests no environment variables, system config paths, or unrelated credentials. It does require interactive Dyson account credentials (OTP + password) during setup and stores device credentials locally (~/.dyson/config.json) — this is proportional to the stated purpose.
Persistence & Privilege
always is false and the skill does not request persistent elevated privileges or modify other skills. Storing credentials in the user's home directory is normal for this type of CLI.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install dyson-cli
  3. After installation, invoke the skill by name or use /dyson-cli
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release. Lets clawd control your Dyson purifiers, fans, and heaters. - Local MQTT control after one-time setup - Setup flow to fetch device credentials via Dyson account - Device management: list devices, set default, remove, and check connectivity - Full controls: power, fan speed/auto, oscillation angles, heat mode/target temp, night mode - Status output with air quality and environmental readings, plus JSON output for scripting
Metadata
Slug dyson-cli
Version 0.1.0
License
All-time Installs 2
Active Installs 2
Total Versions 1
Frequently Asked Questions

What is Dyson Fan Control?

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. It is an AI Agent Skill for Claude Code / OpenClaw, with 1973 downloads so far.

How do I install Dyson Fan Control?

Run "/install dyson-cli" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Dyson Fan Control free?

Yes, Dyson Fan Control is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Dyson Fan Control support?

Dyson Fan Control is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Dyson Fan Control?

It is built and maintained by tmustier (@tmustier); the current version is v0.1.0.

💬 Comments