Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
esphome::home_io_control::exchange Namespace Reference

Classes

struct  OutboundExchangeContext
 Context carried across one outbound authenticated exchange. More...
struct  InboundAuthContext
 Context for a single inbound authentication (device‑initiated command). More...

Enumerations

enum class  OutboundExchangeState : uint8_t {
  IDLE , TX_REQUEST , WAIT_FIRST_RESPONSE , BUILD_AUTH_RESPONSE ,
  TX_AUTH_RESPONSE , WAIT_FINAL_RESPONSE , SUCCESS , FAILED
}
 State machine for an outbound authenticated exchange (non‑pairing). More...
enum class  InboundAuthState : uint8_t {
  IDLE , TX_CHALLENGE , WAIT_CHALLENGE_RESPONSE , VERIFIED ,
  FAILED
}
 State machine for inbound authentication (device‑initiated commands). More...

Enumeration Type Documentation

◆ InboundAuthState

State machine for inbound authentication (device‑initiated commands).

Enumerator
IDLE 

No inbound authentication in progress.

TX_CHALLENGE 

Challenge (0x3C) sent to device; awaiting 0x3D response.

WAIT_CHALLENGE_RESPONSE 

Timer running; waiting for device's HMAC proof (0x3D).

VERIFIED 

Device successfully authenticated; command is trusted.

FAILED 

Authentication failed (timeout or HMAC mismatch).

Definition at line 49 of file hub_exchange.h.

◆ OutboundExchangeState

State machine for an outbound authenticated exchange (non‑pairing).

Enumerator
IDLE 

No active exchange; idle state.

TX_REQUEST 

Request frame transmitted; awaiting first response from device.

WAIT_FIRST_RESPONSE 

Listening for first response. This may be a challenge (0x3C) or the final response.

BUILD_AUTH_RESPONSE 

Building the 0x3D challenge response after receiving 0x3C.

TX_AUTH_RESPONSE 

Auth response (0x3D) transmitted; awaiting device's final reply.

WAIT_FINAL_RESPONSE 

Listening for the authenticated final response (e.g., status frame).

SUCCESS 

Exchange completed successfully; device acknowledged.

FAILED 

Exchange failed (timeout, retries exhausted, or radio error).

Definition at line 37 of file hub_exchange.h.