网淘吧来吧,欢迎您!

Dirigera Control (IKEA smart home)

2026-04-01 新闻来源:网淘吧 围观:5
电脑广告
手机广告

宜家Dirigera智能家居控制

通过Dirigera集线器控制灯光、插座、场景模式及其他宜家智能家居设备。

前提条件

pip install dirigera

集线器设置

查找集线器IP地址

在路由器/DHCP客户端列表中查找"Dirigera"并记录其IP地址。

Dirigera Control (IKEA smart home)

若代理程序位于同一局域网内,可尝试使用IP发现脚本。该脚本能够:

  1. 扫描子网中的可能候选地址(无需令牌)。
  2. 若已有令牌,可验证确切的集线器IP地址。
  3. 作为最终手段,可尝试对候选地址执行生成令牌操作(交互式)。
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:结束您的回合并通知用户

重要:启动脚本后,您必须:

  1. 立即结束您的回合- 不要等待或继续处理
  2. 告诉用户:“我已启动令牌生成过程。请立即按下您 Dirigera 集线器底部的操作按钮。按下后请告诉我。”

步骤 3:等待用户确认

用户将:

  1. 物理按下其 Dirigera 集线器上的按钮
  2. 回复您确认已按下按钮(例如,“完成”或“已按下”)

脚本将自动检测按钮按下操作并将令牌保存到文件中。

步骤 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地址:

  1. 请检查路由器/DHCP列表,并查找"Dirigera"。
  2. 如果名称缺失,请将集线器的MAC地址标签与新设备条目进行匹配。
  3. 确保集线器和客户端在同一网络中。
  4. 如果您有候选IP地址,请对它们运行generate-token命令,直到其中一个成功。
  5. 如果您已拥有令牌,请运行python scripts/find_dirigera_ip.py --token <dirigera-token>
  6. 如果其他所有方法都失败,请运行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.iddevice.is_reachabledevice.room状态:device.attributes.is_ondevice.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以获取:

  • 完整的属性参考
  • 所有控制方法
  • 设备能力
  • 色温/色调值
  • 故障排除

最佳实践

  1. 始终在控制前检查device.is_reachable控制后调用
  2. device.reload()使用.attributes
  3. 进行所有状态访问在快速命令之间添加0.5秒延迟使用功能前检查设备能力
  4. Add 0.5s delays between rapid commands
  5. Check capabilities before using features

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部
上一篇:PlanSuite 下一篇:agentskills-io

相关文章

您是本站第364325名访客 今日有76篇新文章/评论