14次发布
0.2.58 | 2020年11月27日 |
---|---|
0.2.57 | 2020年11月27日 |
0.2.56 | 2019年11月13日 |
0.2.54 | 2019年6月11日 |
0.1.0 | 2019年1月22日 |
#15 in #smart-home
每月 58 次下载
68KB
1K SLoC
Rust编程语言的Enocean实现
⚠️ 此库仍在建设中,我将其构建为Rust语言培训 ⚠️
Enocean : (官方网站) 是智能家居/建筑设备的无线电协议。
此库是Enocean串行协议的rust实现,您可以在以下位置找到它:ESP3
您可以使用此库与任何兼容的EnOcean无线电网关一起使用,例如:USB300网关 .
⚠️ 此库仍在建设中 ⚠️
示例
cargo run --example listen
NB: 您必须指定与您的enocean串行线对应的串行端口。如果您不想麻烦,只需创建一个UDEV规则(这里针对USB300)
sudo nano /etc/udev/rules.d/99-usb-serial.rules
并附加
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUsb300",MODE ="0666", GROUP="dialout"
注意,您必须将您的用户添加到dialout
组。
最后,您可以使用以下命令触发UDev规则
sudoudevadm control --reload-rules && sudoudevadm trigger
功能概述
此库使用serialport crate与串行/无线电网关交互。
⚠️ 目前,enocean设备ID与其EEP之间的链接在eep.rs文件中是硬编码的。
库文件主要内容:(非详尽,仅快速概述)
- enocean.rs : Enocean串行协议实现(例如,字节向量到Ensocean串行数据包)(...)
- commincator.rs : 与串行端口的接口(使用std::sync::mpsc与您的代码交互以发送/接收数据包)(...)
- eep.rs : 特定于ERP1数据包类型,允许获取无线电电报的内容(...)
- lib.rs : 自定义类型/错误类型(...)
目前支持的Enocean串行数据包类型 :
[x] 无线ERP1 : 0x01
[x] 响应 : 0x02
[ ] 无线子电报 : 0x03
[ ] 事件 : 0x04
[ ] 公共命令 : 0x05
[ ] 智能确认命令 : 0x06
[ ] 远程管理命令 : 0x07
[ ] 无线消息 : 0x09
[ ] 无线高级 : 0x0a
许可
此库主要在MIT许可的条款下分发
以及Apache许可证(版本2.0)。
有关详细信息,请参阅LICENSE-APACHE和LICENSE-MIT。
依赖项
~1.7–2.5MB
~48K SLoC