[][src]Module enocean::enocean

Enocean implementation for the Rust Programming Language

Enocean : (official website) is a Radio protocol for Smart Home / Buildings devices.

This lib is a rust implementation of Enocean Serial Protocol, which you can find here: ESP3 You can use this library with any compatible EnOcean Radio Gateway (eg. [USB300 gateway]https://www.enocean.com/en/enocean-modules/details/usb-300-oem/)).

:warning: This lib is still under construction :warning:

Feature Overview

Enocean Radio protocol for Smart Homes rust implementation (official website)

EnOcean is a Radio protocol for SmartHome devices. More informations about EnOcean : Official website This lib allow you to play with Enocean Serial Protocol, which is defined here: ESP3 You can use this library with any compatible EnOcean Radio Gateway eg. USB300 gateway.

For now this lib allow you to create an ESP struct from an incomming bytes vector.

Supported packet type : [x] Radio ERP1 : 0x01
[x] Response : 0x02
[ ] radio_sub_tel : 0x03
[ ] event : 0x04
[ ] common_command : 0x05
[ ] smart_ack_command : 0x06
[ ] remote_man_command : 0x07
[ ] radio_message : 0x09
[ ] radio_advanced : 0x0a

License

This library is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Structs

ESP3

Main structure that represent an EnOcean Serial Packet according to ESP3 :

Enums

DataType

Depending on packet_type, data and opt_data part of an ESP3 is implemented differently

OptDataType

Depending on packet_type, data and opt_data part of an ESP3 is implemented differently

ReturnCode

Simple implementation of possible Return codes for a response packet (from EnOcean ESP3)

Rorg

Simple implementation of possible Radio Organization for a Radio ERP1 packet (from EnOcean ESP3)

Functions

compute_crc8

Simple implementation as described in the ESP3 protocol Allow to check the integrity of a message

esp3_of_enocean_message

Main function which convert an u8 vector of incoming byte into an ESP3 variable :

get_raw_message

Simply clone the given u8 vector in an EnoceaMessage type variable