9个版本 (重大更新)
0.7.1 | 2023年9月2日 |
---|---|
0.7.0 | 2023年1月18日 |
0.6.0 | 2022年6月15日 |
0.5.0 | 2021年10月2日 |
0.1.0 | 2020年10月30日 |
在 硬件支持 中排名 446
每月 108 次下载
在 mijia-homie 中使用
41KB
872 行
米家传感器库
用于连接小米米家2蓝牙温度/湿度传感器的库。
目前仅支持在Linux上运行,因为它依赖于BlueZ进行蓝牙操作。
使用方法
// Create a new session. This establishes the D-Bus connection. In this case we ignore the join
// handle, as we don't intend to run indefinitely.
let (_, session) = MijiaSession::new().await?;
// Start scanning for Bluetooth devices, and wait a few seconds for some to be discovered.
session.bt_session.start_discovery().await?;
time::sleep(Duration::from_secs(5)).await;
// Get the list of sensors which are currently known.
let sensors = session.get_sensors().await?;
for sensor in sensors {
// Connect to the sensor
session.bt_session.connect(&sensor.id).await?;
// Print some properties of the sensor.
let sensor_time: DateTime<Utc> = session.get_time(&sensor.id).await?.into();
let temperature_unit = session.get_temperature_unit(&sensor.id).await?;
let comfort_level = session.get_comfort_level(&sensor.id).await?;
println!(
"Time: {}, Unit: {}, Comfort level: {}",
sensor_time, temperature_unit, comfort_level
);
// Subscribe to readings from the sensor.
session.start_notify_sensor(&sensor.id).await?;
}
// Print readings from all the sensors we subscribed to.
let mut events = session.event_stream().await?;
while let Some(event) = events.next().await {
if let MijiaEvent::Readings { id, readings } = event {
println!("{}: {}", id, readings);
}
}
有关更完整的示例,请参阅 示例 目录。
许可
许可方式为以下之一
任选其一。
贡献
除非你明确表示,否则,根据Apache-2.0许可证定义的,任何有意提交给作品并由你包含的贡献,将按上述方式双许可,不附加任何额外条款或条件。
依赖项
~10–22MB
~285K SLoC