#devices #ikea #manage #light #time #scene #trådfri

bin+lib dirigera

使用 Rust 管理您的 IKEA Trådfri 设备

2 个不稳定版本

0.2.0 2024 年 2 月 22 日
0.1.0 2023 年 12 月 3 日

#1 in #ikea

MIT 许可证

41KB
772

dirigera - 管理您的 IKEA 设备

此 crate 正在开发中,可能会随时更改!请勿立即使用!

[!NOTE]
我只有少数几款 IKEA 设备,所以我尝试的大部分端点都是针对灯具的。我也没有广泛使用场景,但尝试设置和配置所有可用的场景以研究 API。如果您有其他设备并希望为代码做出贡献,将非常感激!

设置

要与 Dirigera 设备通信,您需要知道其 IP 地址并获取一个令牌。我无法帮助您找到 IP 地址,但通常您可以通过查看路由器的设备列表来查看。

一旦您搞清楚这一点,运行 generate-token 二进制文件以生成一个名为 config.toml 的文件,该文件将存储设备的 IP 地址和获取的令牌。

cargo run --bin generate-token --features binary <your-ip-address>

当您拥有有效的配置文件时,您可以使用 Hub 的默认 trait 生成一个实例,该实例将使用配置的令牌调用配置的 IP 地址。

let hub = dirigera::hub::Hub::default();

注意 由于配置文件依赖于 toml 支持,因此该支持被隐藏在名为 config 的功能标志之后。要跳过使用 toml,只需使用 new 构造函数并传递 IP 和令牌。

配置文件

如果您想手动创建配置文件,它看起来是这样的

ip-address = 192.168.1.101
token = "abc123..."

用法

请参阅 示例 了解如何使用此 crate。

手动测试

只需使用您获得的令牌和您最喜欢的 HTTP 客户端即可。

 http --verify=no \
  "https://[ip]:8443/v1/devices" \
  "Authorization: Bearer $TOKEN"

致谢

  • Leggin/dirigera 提供了灵感和大部分 API 信息,包括令牌生成。

依赖项

~13–26MB
~484K SLoC