|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
| build | |
| docs | |
| components | |
| home_io_control | |
| __init__.py | ESPHome hub schema and code generation for Home IO Control |
| button.py | ESPHome pairing-button schema and code generation |
| cover.py | ESPHome cover platform schema and code generation |
| device_registry.cpp | DeviceRegistry implementation |
| device_registry.h | Per-hub device table, update-callback fan-out, and linked-remote map |
| doxygen_groups.h | Doxygen group definitions for the Home IO Control component |
| exchange_engine.cpp | Authenticated exchange engine — outbound and inbound protocol flows |
| exchange_engine.h | Self-contained authenticated exchange engine for IO-Homecontrol 2W |
| hub_core.cpp | Component lifecycle and main-loop scheduling |
| hub_core.h | IO-Homecontrol ESPHome component — protocol controller |
| hub_decisions.h | Pure transition helpers for hub-owned exchange and pairing frame decisions |
| hub_exchange.h | Internal exchange-state model for hub-owned authenticated non‑pairing flows |
| hub_internal.h | Internal helpers shared by the hub implementation .cpp files |
| hub_key_extraction.cpp | "Accept Foreign Pairing (Key Extraction)" — device-role responder hub wiring |
| hub_lr1121_firmware_update.cpp | |
| hub_management.cpp | Thin hub wrapper delegating management actions to ManagementActions |
| hub_operations.cpp | High-level command execution and queued operation dispatch |
| hub_pairing.cpp | Thin hub wrapper delegating all pairing logic to PairingEngine |
| hub_pairing.h | Internal pairing-state model for hub‑owned discovery and key‑exchange flows |
| hub_status.cpp | Inbound status handling and passive receive-side state updates |
| light.py | ESPHome binary/dimmable light platform schema and code generation |
| lock.py | ESPHome lock platform schema and code generation |
| log_frame.h | Shared frame logging helpers for IO-Homecontrol |
| lr1121_firmware.py | Fetch, verify, and interpret a user-referenced LR1121 transceiver firmware image |
| lr1121_firmware_decisions.h | Pure decision logic for the LR1121 transceiver-firmware-update feature |
| management_actions.cpp | Hub-level management actions such as device rename, identify, and force-open |
| management_actions.h | Hub-level management operations exposed as Home Assistant actions |
| operation_queue.cpp | OperationQueue implementation |
| operation_queue.h | Pending-operation queue with per-type coalescing and deduplication |
| pairing_advisor.cpp | Read-only advisor that turns PairingTelemetry into actionable diagnostics |
| pairing_advisor.h | Read-only advisor that turns PairingTelemetry into actionable diagnostics |
| pairing_engine.cpp | Device pairing orchestration — discovery, key exchange, and finalization |
| pairing_engine.h | Device discovery and key-exchange engine for IO-Homecontrol pairing |
| pairing_responder.cpp | Pure decision logic for the device-role key-extraction responder |
| pairing_responder.h | Pure decision logic for the device-role "Accept Foreign Pairing" (system-key extraction) responder |
| pairing_telemetry.cpp | Structured per-attempt telemetry recorder implementation |
| pairing_telemetry.h | Structured per-attempt telemetry recorder for the pairing flow |
| platform_accept_foreign_pairing_switch.cpp | Hub-level "Accept Foreign Pairing (Key Extraction)" switch entity |
| platform_accept_foreign_pairing_switch.h | Hub-level switch that arms/disarms the "Accept Foreign Pairing" (key-extraction) responder |
| platform_active_issue_text_sensor.cpp | Diagnostic text sensor exposing a device's currently outstanding CMD_ERROR_RESP reason |
| platform_active_issue_text_sensor.h | Diagnostic text sensor exposing a device's currently outstanding CMD_ERROR_RESP reason |
| platform_common.py | Shared ESPHome codegen for IO-Homecontrol device-bound platforms |
| platform_cover.cpp | ESPHome cover entity for IO-Homecontrol devices |
| platform_cover.h | ESPHome cover entity for IO‑Homecontrol devices |
| platform_cover_favorite_button.cpp | Generated favorite-position button for position-capable cover entities |
| platform_cover_favorite_button.h | Generated favorite-position button for position-capable cover entities |
| platform_cover_vent_button.cpp | Generated ventilation-position button for window-type cover entities |
| platform_cover_vent_button.h | Generated ventilation-position button for window-type cover entities |
| platform_device_name_text_sensor.cpp | Diagnostic text sensor exposing the stored IO-Homecontrol device name |
| platform_device_name_text_sensor.h | Diagnostic text sensor exposing the stored IO-Homecontrol device name |
| platform_discover_button.h | Button entity that triggers device discovery and pairing |
| platform_entity_base.h | Shared device-binding mixins for IO-Homecontrol entity platforms |
| platform_exchange_failures_sensor.cpp | Diagnostic sensor exposing a device's cumulative exchange-timeout count |
| platform_exchange_failures_sensor.h | Diagnostic sensor exposing a device's cumulative exchange-timeout count |
| platform_last_contact_sensor.cpp | Diagnostic sensor exposing seconds elapsed since a device's last received frame |
| platform_last_contact_sensor.h | Diagnostic sensor exposing seconds elapsed since a device's last received frame |
| platform_light.cpp | Binary or dimmable light entity for IO-Homecontrol devices |
| platform_light.h | Binary or dimmable light entity for IO‑Homecontrol devices |
| platform_lock.cpp | Experimental lock entity for IO-Homecontrol lock devices |
| platform_lock.h | Experimental lock entity for IO-Homecontrol lock-capable devices |
| platform_lr1121_bootloader_rewrite_switch.cpp | Hub-level "Allow LR1121 Bootloader Rewrite (Irreversible)" switch entity |
| platform_lr1121_bootloader_rewrite_switch.h | Hub-level arming switch for the LR1121 bootloader-rewrite (three-stage) sequence |
| platform_lr1121_firmware_update_button.h | Hub-level button that triggers the LR1121 transceiver-firmware flash sequence |
| platform_pairing_result_text_sensor.cpp | Diagnostic text sensor exposing the "Last Pairing Result" string |
| platform_pairing_result_text_sensor.h | Diagnostic text sensor exposing the machine-readable "Last Pairing Result" string |
| platform_rssi_sensor.cpp | Diagnostic sensor exposing a device's smoothed RSSI |
| platform_rssi_sensor.h | Diagnostic sensor exposing a device's smoothed RSSI |
| platform_switch.cpp | Experimental binary switch entity for IO-Homecontrol devices |
| platform_switch.h | Experimental binary switch entity for IO‑Homecontrol devices |
| proto_codecs.cpp | Device-name, address-classification and 1W-frame codec implementations |
| proto_codecs.h | Device-name, address-classification and 1W-frame codecs |
| proto_commands.cpp | Command builders for the IO-Homecontrol protocol |
| proto_commands.h | Command builders for the IO‑Homecontrol protocol |
| proto_constants.cpp | Name/description lookups for IO-Homecontrol commands, results and enumerations |
| proto_constants.h | IO-Homecontrol command IDs, result codes and protocol enumerations |
| proto_crypto.cpp | Cryptographic helpers for the IO-Homecontrol protocol |
| proto_crypto.h | Cryptographic helpers for the IO‑Homecontrol protocol |
| proto_device_model.cpp | Device-type capabilities, packed-metadata decoding and position reports |
| proto_device_model.h | IO-Homecontrol device-type model, capabilities and runtime device state |
| proto_frame.cpp | IO-Homecontrol 2W frame container implementation |
| proto_frame.h | IO-Homecontrol 2W frame container: control bytes, IoFrame and (de)serialization |
| proto_sizes.h | Fundamental IO-Homecontrol frame and crypto size constants |
| proto_timing.h | Physical-layer radio and timing parameters for the IO-Homecontrol protocol |
| radio_interface.cpp | Implementation of non-inline RadioDriver methods |
| radio_interface.h | Radio abstraction layer for IO-Homecontrol |
| radio_lr1121.cpp | LR1121 radio driver implementation for IO-Homecontrol |
| radio_lr1121.h | LR1121 radio driver for IO-Homecontrol |
| radio_lr1121_firmware_updater.cpp | LR1121 bootloader-mode SPI transport implementation |
| radio_lr1121_firmware_updater.h | LR1121 bootloader-mode-*and*-loader-mode SPI transport, standalone from the running RadioDriver |
| radio_soft_phy.cpp | Software PHY implementation for radios without IoHomeOn hardware framing |
| radio_soft_phy.h | Software PHY for radios without IoHomeOn hardware framing |
| radio_soft_phy_driver_base.cpp | Shared driver flow implementation for the software-PHY radios |
| radio_soft_phy_driver_base.h | Shared driver flow for radios using the software PHY (SX1262, LR1121) |
| radio_sx1262.cpp | SX1262 radio driver implementation for IO-Homecontrol |
| radio_sx1262.h | SX1262 radio driver for IO-Homecontrol |
| radio_sx1276.cpp | SX1276 radio driver implementation for IO-Homecontrol |
| radio_sx1276.h | SX1276 radio driver for IO-Homecontrol |
| redaction.h | Key-material redaction helpers shared by every surface that can emit frame bytes or debug text (frame logging today; telemetry and diagnostic reports later) |
| status_poll_policy.cpp | StatusPollPolicy implementation |
| status_poll_policy.h | Per-device poll scheduling, failure backoff, and follow-up-poll state machine |
| switch.py | ESPHome binary switch platform schema and code generation |
| tuning.py | ESPHome tuning schema and code generation for Home IO Control |
| tuning_config.cpp | Runtime tuning configuration helpers and snapshot formatting |
| tuning_config.h | Runtime tuning configuration for pairing and radio diagnostics |
| tuning_entities.cpp | Home Assistant number and select tuning entity implementations |
| tuning_entities.h | Home Assistant number and select entities that control runtime tuning parameters |
| tuning_registry.cpp | Parameter tables and lookup helpers for the tuning registry |
| tuning_registry.h | Table-driven registry of runtime tuning parameters |