18#include "esphome/core/hal.h"
142 void handle_discover_(
const IoFrame &frame);
144 void handle_discover_confirm_(
const IoFrame &frame);
146 void handle_key_init_(
const IoFrame &frame);
148 void handle_key_transfer_(
const IoFrame &frame);
152 void handle_address_req_(
const IoFrame &frame);
157 void handle_address_challenge_(
const IoFrame &frame);
164 void broadcast_reply_(
const IoFrame &frame);
169 const uint8_t *node_id_;
175 std::function<void(
bool)> armed_callback_;
Owns the per-hub device table, update callbacks, and linked-remote associations.
Abstract radio driver for IO-Homecontrol.
Injected-capability callback aliases shared by the hub's collaborator objects.
@ ARMED_IDLE
Armed, listening for a discovery request (0x28).
@ DISARMED
Not armed; 0x28/0x2C/0x31/0x32 traffic is ignored.
static constexpr uint8_t NODE_ID_SIZE
Device/node addresses are 3 bytes (e.g., "123ABC").
std::function< bool(const IoFrame &frame, uint32_t freq_hz, uint16_t preamble)> TransmitFrameFn
Puts a frame on air on a given channel via the hub's protected transmit_frame_().
std::function< void(const char *name, uint32_t delay_ms, std::function< void()> callback)> NamedTimeoutFn
Schedules a named, replace-on-same-name timeout on the hub's ESPHome scheduler.
Pure decision logic for the device-role "Accept Foreign Pairing" (system-key extraction) responder.
IO-Homecontrol 2W frame container: control bytes, IoFrame and (de)serialization.
Parsed IO‑Homecontrol frame (CTRL0/1 + addresses + command + data).
All runtime tunable parameters for pairing and radio diagnostics.
Context for one key-extraction arm cycle.