|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
Hub orchestration, exchange state machines, pairing, and runtime operations. More...
Topics | |
| Pairing/Radio Diagnostics Tuning | |
| Runtime-tunable pairing and radio diagnostics layer and its Home Assistant entities. | |
Files | |
| file | components/home_io_control/device_registry.cpp |
| DeviceRegistry implementation. | |
| file | components/home_io_control/device_registry.h |
| Per-hub device table, update-callback fan-out, and linked-remote map. | |
| file | components/home_io_control/entity_helpers.h |
| Conversions and renderers shared by the hub and its Home Assistant entities. | |
| file | components/home_io_control/exchange_engine.cpp |
| Authenticated exchange engine — outbound and inbound protocol flows. | |
| file | components/home_io_control/exchange_engine.h |
| Self-contained authenticated exchange engine for IO-Homecontrol 2W. | |
| file | components/home_io_control/hub_core.cpp |
| Component lifecycle and main-loop scheduling. | |
| file | components/home_io_control/hub_core.h |
| IO-Homecontrol ESPHome component — protocol controller. | |
| file | components/home_io_control/hub_decisions.h |
| Pure transition helpers for hub-owned exchange and pairing frame decisions. | |
| file | components/home_io_control/hub_exchange.h |
| Internal exchange-state model for hub-owned authenticated non‑pairing flows. | |
| file | components/home_io_control/hub_hooks.h |
| Injected-capability callback aliases shared by the hub's collaborator objects. | |
| file | components/home_io_control/hub_internal.h |
| Helpers shared only by the hub's own implementation files (hub_*.cpp). | |
| file | components/home_io_control/hub_operations.cpp |
| High-level command execution and queued operation dispatch. | |
| file | components/home_io_control/hub_pairing.cpp |
| Thin hub wrapper delegating all pairing logic to PairingEngine. | |
| file | components/home_io_control/hub_pairing.h |
| Internal pairing-state model for hub‑owned discovery and key‑exchange flows. | |
| file | components/home_io_control/hub_status.cpp |
| Inbound status handling and passive receive-side state updates. | |
| file | components/home_io_control/key_extraction_responder.cpp |
| "Recover System Key" (key extraction) — device-role responder collaborator. | |
| file | components/home_io_control/key_extraction_responder.h |
| "Recover System Key" (key extraction) — device-role responder collaborator. | |
| file | components/home_io_control/log_helpers.h |
| Hub-layer log tag and log/format helpers shared by the hub and its collaborators. | |
| file | components/home_io_control/lr1121_firmware_update_controller.h |
| LR1121 transceiver-firmware-update feature — orchestration collaborator. | |
| file | components/home_io_control/management_actions.cpp |
| Hub-level management actions such as device rename, identify, and force-open. | |
| file | components/home_io_control/management_actions.h |
| Hub-level management operations exposed as Home Assistant actions. | |
| file | components/home_io_control/oneway_key_adoption.cpp |
| Opt-in, receive-only adoption of a 1W installation's controller key. | |
| file | components/home_io_control/oneway_key_adoption.h |
| Opt-in, receive-only adoption of a 1W installation's controller key. | |
| file | components/home_io_control/oneway_sequence_store.cpp |
| Persistent rolling-sequence counters for one-way (1W) transmit. | |
| file | components/home_io_control/oneway_sequence_store.h |
| Persistent rolling-sequence counters for one-way (1W) transmit. | |
| file | components/home_io_control/oneway_transmitter.cpp |
| One-way (1W) transmit collaborator. | |
| file | components/home_io_control/oneway_transmitter.h |
| One-way (1W) transmit collaborator. | |
| file | components/home_io_control/operation_queue.cpp |
| OperationQueue implementation. | |
| file | components/home_io_control/operation_queue.h |
| Pending-operation queue with per-type coalescing and deduplication. | |
| file | components/home_io_control/pairing_advisor.cpp |
| Read-only advisor that turns PairingTelemetry into actionable diagnostics. | |
| file | components/home_io_control/pairing_advisor.h |
| Read-only advisor that turns PairingTelemetry into actionable diagnostics. | |
| file | components/home_io_control/pairing_engine.cpp |
| Device pairing orchestration — discovery, key exchange, and finalization. | |
| file | components/home_io_control/pairing_engine.h |
| Device discovery and key-exchange engine for IO-Homecontrol pairing. | |
| file | components/home_io_control/pairing_responder.cpp |
| Pure decision logic for the device-role key-extraction responder. | |
| file | components/home_io_control/pairing_responder.h |
| Pure decision logic for the device-role "Accept Foreign Pairing" (system-key extraction) responder. | |
| file | components/home_io_control/pairing_telemetry.cpp |
| Structured per-attempt telemetry recorder implementation. | |
| file | components/home_io_control/pairing_telemetry.h |
| Structured per-attempt telemetry recorder for the pairing flow. | |
| file | components/home_io_control/status_poll_policy.cpp |
| StatusPollPolicy implementation. | |
| file | components/home_io_control/status_poll_policy.h |
| Per-device poll scheduling, failure backoff, and follow-up-poll state machine. | |
| file | components/home_io_control/transmit_observer.h |
| Observer interface for every frame the exchange engine puts on air. | |
Classes | |
| class | esphome::home_io_control::DeviceRegistry |
| Owns the per-hub device table, update callbacks, and linked-remote associations. More... | |
| class | esphome::home_io_control::IOHomeControlComponent |
| The main IO-Homecontrol component. More... | |
| class | esphome::home_io_control::KeyExtractionResponder |
| Device-role responder for the "Recover System Key" feature. More... | |
| class | esphome::home_io_control::ManagementActions |
| Encapsulates hub-level management operations exposed as Home Assistant actions. More... | |
| class | esphome::home_io_control::OnewayKeyAdoption |
| Opt-in, receive-only listener that adopts an overheard 1W controller key. More... | |
| class | esphome::home_io_control::OneWaySequenceStore |
| Per-controller-identity rolling sequence counters, persisted across reboots. More... | |
| struct | esphome::home_io_control::OneWayCommandReport |
| What a 1W command attempt did — the only feedback this feature can ever produce. More... | |
| class | esphome::home_io_control::OneWayTransmitter |
| Sends 1W commands as the repeated bursts real remotes send. More... | |
| class | esphome::home_io_control::PairingEngine |
| Owns and drives all three phases of the IO-Homecontrol device pairing flow. More... | |
| class | esphome::home_io_control::PairingTelemetry |
| Fixed-size per-attempt telemetry recorder for the pairing flow. More... | |
Functions | |
| uint16_t | esphome::home_io_control::oneway_copy_preamble_bytes (OneWayCopyShape shape, uint16_t normal_start_preamble) |
| Resolve one copy's shape (oneway_burst_copy_shape()) to the actual preamble byte count. | |
| std::string | esphome::home_io_control::format_oneway_preamble_list (OneWayPowerClass power_class, uint16_t normal_start_preamble) |
| Render the preamble bytes each copy of a burst will use, e.g. | |
Hub orchestration, exchange state machines, pairing, and runtime operations.
| std::string esphome::home_io_control::format_oneway_preamble_list | ( | OneWayPowerClass | power_class, |
| uint16_t | normal_start_preamble ) |
Render the preamble bytes each copy of a burst will use, e.g.
"1024/32/32/32".
Built from oneway_burst_copy_shape() and oneway_copy_preamble_bytes() — the exact functions send_burst() itself calls per copy — so the TX log line can never disagree with what actually went on air. Pure and free-standing so it is unit-testable: the host ESP_LOG stub discards its arguments, so a formatter buried in the log call could not be asserted on at all.
| power_class | The identity's power class. |
| normal_start_preamble | Live tuning value a NORMAL-shaped copy resolves to. |
Definition at line 28 of file oneway_transmitter.cpp.
| uint16_t esphome::home_io_control::oneway_copy_preamble_bytes | ( | OneWayCopyShape | shape, |
| uint16_t | normal_start_preamble ) |
Resolve one copy's shape (oneway_burst_copy_shape()) to the actual preamble byte count.
The one place OneWayPreamble::WAKE -> LONG_PREAMBLE / OneWayPreamble::NORMAL -> normal_start_preamble is written — send_burst(), format_oneway_preamble_list(), and this header's tests all go through it, so the burst, the TX log line describing it, and anything asserting on it can never resolve the mapping three different ways.
| shape | A copy's shape, from oneway_burst_copy_shape(). |
| normal_start_preamble | Live tuning value a NORMAL-shaped copy resolves to. |
Definition at line 24 of file oneway_transmitter.cpp.