#matter #smart-home #iot #smart #esp32 #data-model

no-std rs-matter

Native Rust 实现的 Matter (智能家居) 生态系统

1 个不稳定版本

0.1.0 2023年7月28日

嵌入式开发 中排名 #1697

Apache-2.0

795KB
19K SLoC

rs-matter:Matter 库的 Rust 实现

这是实际的 rs-matter 库包。有关更多信息,请参阅 主 README 文件


lib.rs:

Matter (智能家居) 的本地 Rust 实现

此包实现了 Matter 规范,可在嵌入式设备上运行,用于构建兼容 Matter 的智能家居/IoT 设备。

目前支持基于以太网的传输。

示例

TODO:在新 API 稳定后修复一次 use rs_matter::{Matter, CommissioningData}; use rs_matter::data_model::device_types::device_type_add_on_off_light; use rs_matter::data_model::cluster_basic_information::BasicInfoConfig; use rs_matter::secure_channel::spake2p::VerifierData;

use rs_matter::data_model::sdm::dev_att::{DataType, DevAttDataFetcher};

use rs_matter::error::Error;

pub struct DevAtt{}

impl DevAttDataFetcher for DevAtt{

fn get_devatt_data(&self, data_type: DataType, data: &mut [u8]) -> Result<usize, Error> { Ok(0) }

}

let dev_att = Box::new(DevAtt{});

/// 此设备的配置数据 let comm_data = CommissioningData { verifier: VerifierData::new_with_pw(123456), discriminator: 250, };

/// 此设备的基本信息 let dev_info = BasicInfoConfig { vid: 0x8000, pid: 0xFFF1, hw_ver: 2, sw_ver: 1, sw_ver_str: "1".to_string(), serial_no: "aabbcc".to_string(), device_name: "OnOff Light".to_string(), };

/// 获取 Matter 对象 /// dev_att 是实现 DevAttDataFetcher 特性的对象。 let mut matter = Matter::new(dev_info, dev_att, comm_data).unwrap(); let dm = matter.get_data_model(); { let mut node = dm.node.write().unwrap(); /// 添加我们的设备类型 let endpoint = device_type_add_on_off_light(&mut node).unwrap(); } // 启动 Matter 守护进程 // matter.start_daemon().unwrap();

从 [Matter] 对象开始探索。

依赖关系

~18–33MB
~541K SLoC