dyson-cli

🌀 本地化极速智控 Dyson 设备

基于 libdyson-neon 的本地 MQTT 控制方案,无需云端即可操控 Dyson 风扇/净化器/取暖器,保障隐私的同时实现极速响应。

收藏
1.8k
安装
705
版本
v0.1.0
CLS 安全性认证2026-05-21
点击查看完整报告 >

使用说明

核心用法

Dyson CLI 是一款面向 Dyson 空气净化风扇、冷暖风扇的本地命令行控制工具。用户需先将 CLI 安装于 ~/dyson-cli 目录并配置 Python 虚拟环境,确保与设备处于同一 WiFi 网络后,即可通过 dyson 命令完成开关机、风速调节(1-10 档或自动模式)、摆头角度设置(45°/90°/180°/350°)、加热目标温度设定(1-37°C)、夜间模式切换及实时状态查询等操作。支持多设备环境,可通过 -d 参数指定特定设备名称。状态数据支持 JSON 输出,便于脚本化二次处理。

显著优点

1. 纯本地通信:采用 MQTT 协议直连设备,无需经过 Dyson 云端服务器,响应延迟极低且杜绝了云端服务宕机或隐私泄露风险。
2. 零订阅成本:区别于官方 App 的账户体系,本地控制无需持续联网验证,适合网络隔离环境或注重隐私的用户。

3. 脚本化友好:命令设计简洁,支持管道组合与 JSON 输出,可轻松集成至 Home Assistant、crontab 定时任务或语音助手回调。

4. 功能覆盖全面:涵盖主流 Dyson 设备的核心功能,包括 Hot+Cool 系列的加热控制、环境温湿度读取等,满足日常自动化需求。

潜在缺点与局限性

1. 网络绑定严格:必须与被控设备处于同一局域网,无法远程操控,外出场景需配合 VPN 或内网穿透方案。
2. 初始配置门槛:首次使用需通过 dyson setup 登录 Dyson 账号获取设备凭证,对非技术用户存在学习成本。

3. 设备兼容性:依赖社区维护的 libdyson-neon 库,新型号或固件更新后可能存在协议适配延迟。

4. 无图形界面:纯 CLI 交互,移动端或可视化场景体验欠佳。

适合的目标群体

  • 智能家居极客与 Home Assistant 用户,追求本地化、去云化的设备控制方案
  • 网络工程师或运维人员,需在隔离网络环境中管理办公环境设备
  • 隐私敏感型用户,希望减少智能家居数据上传至厂商云端
  • 开发者与自动化爱好者,需要将 Dyson 设备状态纳入自定义监控或告警系统

使用风险

  • 凭证明文存储:设备认证信息以 JSON 明文形式存放于 ~/.dyson/config.json,虽受用户目录权限保护,但共享设备或权限配置不当存在泄露风险
  • 依赖项维护:核心功能依赖 libdyson-neon 社区库,若上游停止维护或出现协议变更,可能导致功能失效
  • mDNS 发现可靠性:设备 IP 通过 mDNS 自动发现,复杂网络环境(如多 VLAN、组播隔离)可能导致设备离线误判
  • 无加密传输:本地 MQTT 通信未启用 TLS,同一局域网内的流量可被嗅探(虽仅含控制指令,不含敏感账号密码)

安全解读

核心用法

dyson-cli 是一款基于本地 MQTT 协议的命令行工具,用于直接控制 Dyson 空气净化器、风扇及冷暖风机。与官方 App 不同,该工具无需依赖 Dyson 云服务,所有通信均在本地 WiFi 网络内完成,延迟低、隐私性好。

关键限制:必须与 Dyson 设备处于同一 WiFi 网络。远程控制不可行。

常用工作流包括:

  • 快速开关:dyson on / dyson off
  • 风速与自动模式:dyson fan speed 5(1-10 档)或 dyson fan speed auto
  • 摆动控制:dyson fan oscillate on -a 90(支持 45°/90°/180°/350° 四种角度)
  • 加热功能(Hot+Cool 型号):dyson heat on && dyson heat target 22
  • 环境数据:dyson status --json 可获取实时温度、湿度(输出为开尔文温度,需转换)

多设备用户可通过 -d "DeviceName" 指定目标设备。

显著优点

1. 零云端依赖:纯本地 MQTT 通信,设备发现通过 mDNS(UDP 5353),控制指令直连设备(TCP 1883),无数据上传风险。
2. 低延迟响应:本地网络直连,指令响应速度显著优于云端方案。

3. 隐私友好:设备凭证仅存储于本地 ~/.dyson/config.json,符合 GDPR 数据最小化原则,无遥测或分析代码。

4. 依赖精简:仅依赖 libdyson-neon(Home Assistant 官方 Dyson 集成所用协议库)、clickrich 三个知名开源库,供应链攻击面小。

潜在局限与风险

| 类别 | 说明 |
|------|------|
| **网络限制** | 必须同 WiFi,无法远程控制;更换路由器或网络拓扑变化时需重新配置 |
| **凭证存储** | 设备凭证以明文 JSON 形式存储于本地,虽权限为 600,但仍存在本地泄露风险(RISK-001,中危) |
| **协议封闭性** | 依赖 `libdyson-neon` 逆向工程协议,Dyson 官方更新可能导致兼容性问题 |
| **功能覆盖** | 不支持部分高端型号的复杂场景模式(如特定过敏原模式) |

适合人群

  • Home Assistant 用户:与现有智能家居工作流无缝集成
  • 隐私敏感用户:拒绝云端服务、追求数据本地化的家庭
  • 开发者/极客:希望通过脚本自动化控制环境的用户
  • 局域网稳定环境:办公室、家庭等固定 WiFi 场景

常规风险提醒

  • 配置文件建议设置权限 chmod 600 ~/.dyson/config.json
  • 避免在日志中打印完整配置,防止凭证泄露
  • 定期关注 libdyson-neon 安全公告,及时更新依赖
  • 该工具仅控制设备,不替代空气滤网更换提醒等维护功能

dyson-cli 内容

src文件夹
dyson_cli文件夹
手动下载zip · 9.3 kB
__init__.pytext/plain
请选择文件