Dirigera Control (IKEA smart home)
2026-04-01
新闻来源:网淘吧
围观:6
电脑广告
手机广告
宜家Dirigera智能家居控制
通过Dirigera集线器控制灯光、插座、场景模式及其他宜家智能家居设备。
前提条件
pip install dirigera
集线器设置
查找集线器IP地址
在路由器/DHCP客户端列表中查找"Dirigera"并记录其IP地址。

若代理程序位于同一局域网内,可尝试使用IP发现脚本。该脚本能够:
- 扫描子网中的可能候选地址(无需令牌)。
- 若已有令牌,可验证确切的集线器IP地址。
- 作为最终手段,可尝试对候选地址
执行生成令牌操作(交互式)。
python scripts/find_dirigera_ip.py
# or
python scripts/find_dirigera_ip.py --subnet 192.168.1.0/24
# verify with token (if you have it)
python scripts/find_dirigera_ip.py --token <dirigera-token>
# last resort: try generate-token against candidates
python scripts/find_dirigera_ip.py --try-generate-token
生成令牌
重要提示:令牌生成需要用户进行物理操作。请按以下流程执行:
步骤一:启动令牌生成脚本
在后台运行封装脚本。该脚本将自动等待按钮按下操作:
python scripts/generate_token_wrapper.py <dirigera-ip-address> &
生成的令牌将保存至dirigera_token.txt文件默认情况下。要指定自定义位置:
python scripts/generate_token_wrapper.py <dirigera-ip-address> --output /path/to/token.txt &
步骤 2:结束您的回合并通知用户
重要:启动脚本后,您必须:
- 立即结束您的回合- 不要等待或继续处理
- 告诉用户:“我已启动令牌生成过程。请立即按下您 Dirigera 集线器底部的操作按钮。按下后请告诉我。”
步骤 3:等待用户确认
用户将:
- 物理按下其 Dirigera 集线器上的按钮
- 回复您确认已按下按钮(例如,“完成”或“已按下”)
脚本将自动检测按钮按下操作并将令牌保存到文件中。
步骤 4:检索保存的令牌
用户确认后,从文件中读取令牌:
from pathlib import Path
token = Path("dirigera_token.txt").read_text().strip()
或者从自定义位置读取:
TOKEN=$(cat /path/to/token.txt)
然后使用令牌进行连接:
import dirigera
hub = dirigera.Hub(token=token, ip_address="<dirigera-ip>")
替代方案:手动命令
供手动使用(不建议代理使用):
generate-token <dirigera-ip-address>
此操作需要交互式终端访问,且不会自动保存输出。
故障排除
如果找不到集线器IP地址:
- 请检查路由器/DHCP列表,并查找"Dirigera"。
- 如果名称缺失,请将集线器的MAC地址标签与新设备条目进行匹配。
- 确保集线器和客户端在同一网络中。
- 如果您有候选IP地址,请对它们运行
generate-token命令,直到其中一个成功。 - 如果您已拥有令牌,请运行
python scripts/find_dirigera_ip.py --token <dirigera-token>。 - 如果其他所有方法都失败,请运行
python scripts/find_dirigera_ip.py --try-generate-token并按照提示操作。
集线器连接
import dirigera
hub = dirigera.Hub(
token="token",
ip_address="ip_address"
)
重要:属性访问
设备状态位于.attributes属性中。,非顶层。
# CORRECT
light.attributes.is_on
light.attributes.light_level
# WRONG - raises AttributeError
light.is_on
light.light_level
顶层:device.id,device.is_reachable,device.room状态:device.attributes.is_on,device.attributes.light_level
快捷命令
发现
lights = hub.get_lights()
outlets = hub.get_outlets()
controllers = hub.get_controllers()
scenes = hub.get_scenes()
灯光控制
light = hub.get_light_by_name(lamp_name="bedroom light")
# Check reachability first
if light.is_reachable:
light.set_light(lamp_on=True)
light.set_light_level(light_level=75)
light.set_color_temperature(color_temp=2700) # Warm white
# Reload after changes
light.reload()
插座控制
outlet = hub.get_outlet_by_name(outlet_name="living room")
outlet.set_on(outlet_on=True)
outlet.reload()
场景触发
scene = hub.get_scene_by_name(scene_name="Sove tid")
scene.trigger()
检查功能
# Verify device supports feature before using
if 'colorTemperature' in light.capabilities.can_receive:
light.set_color_temperature(color_temp=3000)
常见模式
参见references/patterns.md以了解基于房间的控制、批量操作、状态报告和电池监控。
辅助脚本
使用scripts/helpers.py常见操作:按房间获取灯光、检查电池电量、查找不可达设备。
完整参考
请参见references/api.md以获取:
- 完整的属性参考
- 所有控制方法
- 设备能力
- 色温/色调值
- 故障排除
最佳实践
- 始终在控制前检查
device.is_reachable控制后调用 - device.reload()
使用.attributes - 进行所有状态访问
在快速命令之间添加0.5秒延迟使用功能前检查设备能力 - Add 0.5s delays between rapid commands
- Check capabilities before using features
文章底部电脑广告
手机广告位-内容正文底部
上一篇:PlanSuite
下一篇:agentskills-io


微信扫一扫,打赏作者吧~