#温度湿度 #蓝牙 #温度 #湿度 #BLE

mijia

用于连接小米米家2蓝牙温度/湿度传感器的库

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

Download history 1/week @ 2024-03-08 1/week @ 2024-03-15 25/week @ 2024-03-29 7/week @ 2024-04-05 1/week @ 2024-05-17 1/week @ 2024-05-24

每月 108 次下载
mijia-homie 中使用

MIT/Apache

41KB
872

米家传感器库

crates.io page docs.rs page

用于连接小米米家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