核心用法
dirigera-control 技能基于 Python dirigera 库,通过 Cloudflare Tunnel 远程连接 IKEA Dirigera 网关,实现完整的智能家居控制闭环。
设备发现与接入:
- 获取灯具、插座、控制器、场景列表
- 按名称或房间定位特定设备
- 检查设备在线状态 (
is_reachable)
灯光精细控制:
- 开关状态:
set_light(lamp_on=True/False) - 亮度调节:
set_light_level(light_level=0-100) - 色温设置:
set_color_temperature(color_temp=2200-4000) - 需先验证
colorTemperature在capabilities.can_receive中
场景与自动化:
- 一键触发预设场景(如 "Sove tid" 睡眠模式)
- 配合
scripts/helpers.py实现批量操作、电池监控、离线设备排查
关键设计:设备状态统一封装在 .attributes 下,与顶层元数据(id, room)分离,需严格区分访问路径。
---
显著优点
1. 本地化生态整合:原生支持 IKEA 全系智能设备(TRÅDFRI 及后续系列),无需额外桥接
2. 状态同步机制:.reload() 确保控制后状态一致性,避免幽灵开关
3. 能力预检模式:通过 capabilities 动态判断设备支持的功能,防止无效指令
4. 远程访问就绪:Cloudflare Tunnel 方案使家庭内网设备可安全暴露至公网,便于 VPS 托管自动化
潜在局限
- 网关依赖:必须持有 Dirigera 硬件网关,无法直连 Zigbee 设备
- 速率限制:文档建议 0.5s 指令间隔,高频场景(如音乐律动)受限
- 状态延迟:
.reload()为拉取模式,非实时推送,快速连续操作可能读到旧状态 - Token 管理:需手动提取网关 API Token,无 OAuth 流程,轮换不便
适合人群
- 已部署 Dirigera 网关的 IKEA 智能家居用户
- 需在 VPS/云服务器运行自动化脚本的进阶玩家
- 追求本地优先、避免依赖小米/HomeKit 生态的隐私敏感型用户
常规风险
| 风险点 | 说明 |
|--------|------|
| 可达性误判 | 未检查 `is_reachable` 直接下发指令导致异常 |
| 属性访问错误 | 混淆顶层与 `.attributes` 引发 `AttributeError` |
| Token 泄露 | 硬编码 Token 于代码或日志中暴露 |
| 隧道安全 | Cloudflare Tunnel 配置不当可能扩大攻击面 |