#devices #tp-link #smart #control #networking #light #query

bin+lib tplinker

接口用于连接 TPLink 智能设备,如 HS100、HS110、LB110、LB120、KL110

9 个版本

0.4.4 2021 年 12 月 13 日
0.4.3 2021 年 5 月 17 日
0.4.2 2020 年 8 月 4 日
0.4.0 2020 年 7 月 7 日
0.1.0 2019 年 11 月 27 日

#4 in #tp-link

每月下载 32 次
用于 2 crates

MIT 许可证

100KB
2.5K SLoC

TPLinker

GitHub Actions crates.io docs.rs

一个 Rust 库,用于查询和控制 TPLink 智能插座和智能灯。

支持设备包括 HS100、HS110、LB110、LB120、KL110。

受到 pyHS100hs100api 的启发和影响。

入口点

要使用设备,您必须引入来自 capabilities 的能力特性。

发现

要查看本地网络上的所有 TPLink 智能设备,请使用 discovery::discover

use tplinker::{
  discovery::discover,
  devices::Device,
  capabilities::Switch,
};

fn main() {
  for (addr, data) in discover().unwrap() {
    let device = Device::from_data(addr, &data);
    let sysinfo = data.sysinfo();
    println!("{}\t{}\t{}", addr, sysinfo.alias, sysinfo.hw_type);
    match device {
      Device::HS110(device) => { device.switch_on().unwrap(); },
      _ => {},
    }
  }
}

直接设备

要连接到特定的 TPLink 设备,请使用 devices 中的特定设备结构。

use tplinker::{
  devices::LB110,
  capabilities::{Switch, Dimmer},
};

let device = LB110::new("192.168.0.99:9999").unwrap();
if device.is_on().unrwap() {
  let brightness = device.brightness().unwrap();
  if brightness < 50 {
    device.set_brightness(brightness + 20).unwrap();
  }
}

能力

要使用设备,您必须引入来自 capabilities 的相关能力特性。

命令行界面

有一个基本的 CLI

tplinker discover

tplinker status 192.168.1.2 192.168.1.3

tplinker switch 192.168.1.4 on

依赖关系

~2.6–4MB
~71K SLoC