106 bool send_position(
const std::string &controller_id, uint8_t position);
190 bool send_(
const std::string &controller_id,
192 const char *explicit_intent =
"");
207 void report_attempt_(
const std::string &controller_id,
const std::string &intent,
DeviceType target_type,
208 uint16_t sequence,
bool sequence_reserved,
bool transmitted);
211 void report_failure_(
const std::string &controller_id, uint16_t sequence,
bool sequence_reserved);
The configured 1W controller identities, in YAML declaration order.
Per-controller-identity rolling sequence counters, persisted across reboots.
bool send_position(const std::string &controller_id, uint8_t position)
Send a numeric position as the identity's controller.
void setup()
Open each registered identity's persistent sequence counter.
void set_command_report_callback(OneWayCommandReportFn callback)
Register the callback that receives a report after every command attempt.
void add_identity(const OneWayControllerIdentity &identity)
Register a configured controller identity.
bool send_burst(const IoFrame &frame)
Transmit one already-built, already-signed 1W frame as a burst.
const OneWayControllerRegistry & identities() const
bool send_unenrollment(const std::string &controller_id)
Un-register this identity from every device of its class currently in association mode (CMD 0x39) alo...
bool send_enrollment(const std::string &controller_id)
Register this identity as a controller on every device currently in association mode (a physical PROG...
OneWayTransmitter(OneWayTransmitFn transmit)
bool send_command(const std::string &controller_id, CoverCommand cmd)
Send a named command as the identity's controller.
DeviceType
Device type identifiers reported by IO‑Homecontrol products.
@ UNKNOWN
Unknown/unspecified device.
CoverCommand
Named device commands for cover-type actuators.
std::function< void(const OneWayCommandReport &report)> OneWayCommandReportFn
Invoked once per attempted 1W command, successful or not.
std::function< bool(const IoFrame &frame, uint32_t freq, uint16_t preamble)> OneWayTransmitFn
How the transmitter puts a frame on air.
Controller identities for the one-way (1W) protocol.
Persistent rolling-sequence counters for one-way (1W) transmit.
IO-Homecontrol device-type model, capabilities and runtime device state.
IO-Homecontrol 2W frame container: control bytes, IoFrame and (de)serialization.
Parsed IO‑Homecontrol frame (CTRL0/1 + addresses + command + data).
What a 1W command attempt did — the only feedback this feature can ever produce.
std::string intent
Decoded intent, e.g. "STOP" or "CLOSE".
bool sequence_reserved
True if a sequence was consumed (0 is a valid sequence).
DeviceType target_type
Device class addressed.
bool transmitted
True if at least one copy reached the radio.
std::string controller_id
Identity that transmitted (empty if unresolved).
uint16_t sequence
Sequence consumed; meaningless unless sequence_reserved.
One configured 1W controller identity.