Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
proto_sizes.h File Reference

Fundamental IO-Homecontrol frame and crypto size constants. More...

#include <cstdint>
Include dependency graph for proto_sizes.h:
This graph shows which files directly or indirectly include this file:

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.

Detailed Description

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.