概述
switchbot-openapi 是面向SwitchBot生态系统的官方API集成技能,基于HTTPS协议对接OpenAPI v1.1,提供完整的设备发现、状态监控与指令下发能力。该技能通过预置的Node CLI工具与Bash脚本,将复杂的HMAC-SHA256签名认证流程封装为开箱即用的命令行接口,显著降低开发者集成门槛。
核心用法
技能采用环境变量认证模式,用户需配置SWITCHBOT_TOKEN与SWITCHBOT_SECRET后,通过switchbot_cli.js执行操作:
- 设备发现:
list命令返回完整设备清单,含familyName、roomID等空间元数据 - 状态查询:
status <deviceId>获取设备实时状态(电量、开关状态、传感器读数等) - 指令控制:
cmd <deviceId> <command>支持全品类设备操控,涵盖开关、亮度调节、风速设置、锁具控制等 - 场景执行:
scenes与scene <sceneId>支持自动化场景查询与触发
针对特殊设备类型提供精细化参数支持:窗帘百分比定位(0-100)、智能锁死锁控制、扫地机器人清洁模式JSON配置、空调IR遥控全参数集(温度/模式/风速/电源)等。IR DIY设备通过--commandType=customize支持自定义按键映射。
显著优点
1. 官方权威性: 直接对接SwitchBot官方API,非逆向破解方案,协议稳定性与向后兼容性有保障
2. 全品类覆盖: 支持20+设备类型,从基础开关(Bot)、窗帘(Curtain)、门锁(Lock)到扫地机器人、空气净化器、AI艺术相框等前沿品类
3. 工程化封装: 内置HMAC签名生成、nonce管理、timestamp校准,开发者无需关注认证细节
4. 空间感知: 通过设备列表自动推导家庭(Family)→房间(Room)→设备的层级关系,弥补API无独立空间端点的设计局限
5. 混合执行能力: 提供Node CLI(功能完整)与纯curl脚本(轻量部署)双轨方案,适配不同运行环境
潜在局限
1. 云端依赖: 所有设备控制需经SwitchBot云服务中转,局域网直连能力缺失,网络中断即失效
2. 速率限制: 日调用上限10,000次,高频自动化场景(如每秒状态轮询)可能触发限流
3. 异步延迟: Keypad密码管理操作采用异步webhook回调模式,无法同步获取执行结果
4. IR能力边界: 空调IR仅支持setAll全参数设置,不支持独立温度或模式调节;部分设备返回statusCode 160时需降级至场景执行
5. BLE预检要求: 蓝牙直连设备(Bot、Lock、Curtain等)需确保Hub设备在线且云服務启用,否则CLI预检将阻断操作
适合人群
- 智能家居自动化开发者,需程序化控制SwitchBot设备
- 家庭用户构建跨平台场景联动(如Home Assistant桥接)
- 企业级部署需批量设备管理的技术运维人员
常规风险
- 凭证泄露: Token/Secret具备完整设备控制权限,需严格环境变量隔离,避免提交至版本控制
- 物理安全: 门锁、车库门开启类指令需二次确认机制,防止误操作导致安全隐患
- API配额耗尽: 循环脚本或未优化的轮询逻辑可能导致服务中断
- IR信号冲突: 自定义IR指令可能与设备原生协议不兼容,建议先验证再生产部署