|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
Fundamental IO-Homecontrol frame and crypto size constants. More...
#include <cstdint>Go to the source code of this file.
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
Variables | |
| static constexpr uint8_t | esphome::home_io_control::NODE_ID_SIZE = 3 |
| Device/node addresses are 3 bytes (e.g., "123ABC"). | |
| static constexpr uint8_t | esphome::home_io_control::NODE_ID_STRING_SIZE = (NODE_ID_SIZE * 2) + 1 |
| Uppercase hex node ID plus null terminator. | |
| static constexpr uint8_t | esphome::home_io_control::HMAC_SIZE = 6 |
| Authentication HMAC is 6 bytes (truncated AES output). | |
| static constexpr uint8_t | esphome::home_io_control::AES_KEY_SIZE = 16 |
| AES-128 key size. | |
| static constexpr uint8_t | esphome::home_io_control::AES_BLOCK_SIZE = 16 |
| AES block size. | |
| static constexpr uint8_t | esphome::home_io_control::IV_SIZE = 16 |
| Initialization vector size for AES. | |
| static constexpr uint8_t | esphome::home_io_control::IV_PADDING = 0x55 |
| Padding byte used in IV construction. | |
| static constexpr uint8_t | esphome::home_io_control::BITS_PER_BYTE = 8 |
| Number of bits in one protocol byte. | |
| static constexpr uint8_t | esphome::home_io_control::FRAME_MIN_SIZE = 9 |
| Minimum frame: CTRL0+CTRL1+DST(3)+SRC(3)+CMD(1). | |
| static constexpr uint8_t | esphome::home_io_control::FRAME_MAX_SIZE = 32 |
| Maximum frame size (9 header + 23 data). | |
| static constexpr uint8_t | esphome::home_io_control::FRAME_MAX_DATA_SIZE = 23 |
| Maximum data bytes after command ID. | |
| static constexpr uint8_t | esphome::home_io_control::FRAME_CMD_OFFSET = 8 |
| Byte offset of the command ID in a raw wire buffer. | |
| static constexpr uint8_t | esphome::home_io_control::FRAME_CRC_SIZE = 2 |
| CRC-CCITT trailer appended after the frame body. | |
Fundamental IO-Homecontrol frame and crypto size constants.
These sizes are the lowest layer of the protocol model: node-ID widths, AES/HMAC sizes and frame bounds. They live in their own header so the other protocol headers can depend on them without pulling in the full frame API.
Definition in file proto_sizes.h.