#api-client #aware #environment #websocket-client #heatmiser #websocket-token

neohub

Heatmiser neoHub v3 API客户端(websocket/token感知)

7次发布

0.3.3 2023年12月25日
0.3.2 2023年10月13日
0.3.1 2023年2月18日
0.3.0 2022年10月4日
0.1.0 2022年9月23日

#75WebSocket

每月40次下载

MIT/Apache

21KB
457

Heatmiser neohub "v3"(websocket/token)客户端

对neoHub websocket API的(目前)低级包装。

上游文档可以从https://dev.heatmiser.com/(需要免费账户)获得。它们并不完整也不准确。

警告

所有证书信息都被忽略。该中心没有有效的证书,客户端被设置为接受这一点。您不应信任通过不受信任的网络传输的数据。

用法

找到您的中心地址。据称它们对广播做出响应,但我的不会

echo -n "hubseek" | nc -b -u 255.255.255.255 19790

我从路由器的仪表板上拉取了IP地址。假设IP地址是 192.168.13.37

接下来,在移动应用程序中创建一个令牌。名字不重要。它看起来像 uuidv4

将这两个都导出为环境变量

export NEOHUB_URL=wss://192.168.13.37:4243
export NEOHUB_TOKEN=69696969-6969-4969-6969-696969696969

然后,您可以使用库

let mut client = Client::from_env()?;
let result: Value = client.command_void(commands::GET_LIVE_DATA).await?;
println!("{}", result.to_string()));

或者其中一个示例

cargo run --example neohub-cli
>> GET_LIVE_DATA
{
  "CLOSE_DELAY": 0,
  "COOL_INPUT": false,
  "HOLIDAY_END": 0,
  "HUB_AWAY": false,
  "HUB_HOLIDAY": false,

示例

  • dump-live-data 持续将 GET_LIVE_DATA 输出到 zstdjsonlines 文件中。

贡献/未来

我认为API还不够稳定,不能提供结构体,例如(生成的)LiveData 结构体,因此我认为将这些添加到crate的API中不是一个好主意。

请通过Github问题或PR提出。

许可证

MIT OR Apache-2.0

依赖关系

~12–21MB
~381K SLoC