|
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 |
| climate.py | ESPHome climate platform 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_hooks.h | Injected-capability callback aliases shared by the hub's collaborator objects |
| hub_internal.h | Internal helpers shared by the hub implementation .cpp files |
| 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 |
| key_extraction_responder.cpp | "Recover System Key" (key extraction) — device-role responder collaborator |
| key_extraction_responder.h | "Recover System Key" (key extraction) — device-role responder collaborator |
| 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 |
| lr1121_firmware_update_controller.cpp | |
| lr1121_firmware_update_controller.h | LR1121 transceiver-firmware-update feature — orchestration collaborator |
| 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 |
| oneway_controller.cpp | Controller identities for the one-way (1W) protocol |
| oneway_controller.h | Controller identities for the one-way (1W) protocol |
| oneway_key_adoption.cpp | Opt-in, receive-only adoption of a 1W installation's controller key |
| oneway_key_adoption.h | Opt-in, receive-only adoption of a 1W installation's controller key |
| oneway_sequence_store.cpp | Persistent rolling-sequence counters for one-way (1W) transmit |
| oneway_sequence_store.h | Persistent rolling-sequence counters for one-way (1W) transmit |
| oneway_transmitter.cpp | One-way (1W) transmit collaborator |
| oneway_transmitter.h | One-way (1W) transmit collaborator |
| 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_climate.cpp | Experimental climate entity for IO-Homecontrol heating devices (CMD_WRITE_PRIVATE 0x20) |
| platform_climate.h | Experimental climate entity for IO-Homecontrol heating devices (CMD_WRITE_PRIVATE 0x20) |
| platform_common.py | Shared ESPHome codegen for IO-Homecontrol device-bound platforms |
| platform_companion_sensors.cpp | The seven auto-generated per-device diagnostic companion sensors |
| platform_companion_sensors.h | The seven auto-generated per-device diagnostic companion sensors |
| platform_cover.cpp | ESPHome cover entity for IO-Homecontrol devices |
| platform_cover.h | ESPHome cover entity for IO‑Homecontrol devices |
| platform_cover_controls.cpp | Generated per-cover auxiliary controls: command button and silent-operation toggle |
| platform_cover_controls.h | Generated per-cover auxiliary controls: the command button (favorite / ventilation) and the silent-operation toggle |
| platform_entity_base.h | Shared device-binding mixins for IO-Homecontrol entity platforms |
| platform_hub_controls.cpp | Hub-level control entities: arming switches and the pairing-result text sensor |
| platform_hub_controls.h | Hub-level control entities: the discovery button, the scan-paired-devices button, the two arming switches, and the pairing-result diagnostic text sensor |
| 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_controls.cpp | Hub-level LR1121 firmware-update entities: out-of-line bodies for the bootloader-rewrite arming switch |
| platform_lr1121_controls.h | Hub-level LR1121 firmware-update entities: the transceiver-flash button and the bootloader-rewrite arming switch |
| platform_oneway_entities.cpp | The per-identity 1W entities: command buttons, enrollment button, last-command sensor |
| platform_oneway_entities.h | The per-identity 1W entities: command buttons, the enrollment button, and the "Last 1W Command" diagnostic text sensor |
| 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_heating.cpp | Pure codec for IO-Homecontrol 2W heating/climate functions (CMD_WRITE_PRIVATE 0x20) |
| proto_heating.h | Pure codec for IO-Homecontrol 2W heating/climate functions (CMD_WRITE_PRIVATE 0x20) |
| 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 |