#smart-home #domotic

enocean

EnOcean串行协议实现

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

Download history 51/week @ 2024-07-26 7/week @ 2024-08-02

每月 58 次下载

MIT和Apache-2.0

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-APACHELICENSE-MIT

依赖项

~1.7–2.5MB
~48K SLoC