|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
Physical-layer radio and timing parameters for the IO-Homecontrol protocol. More...
#include <cstdint>Go to the source code of this file.
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
Variables | |
| static constexpr uint32_t | esphome::home_io_control::FREQ_CH1 = 868250000 |
| The protocol uses 3 frequency channels in the 868 MHz ISM band. | |
| static constexpr uint32_t | esphome::home_io_control::FREQ_CH2 = 868950000 |
| Channel 2: 868.95 MHz (1W and 2W, TX channel). | |
| static constexpr uint32_t | esphome::home_io_control::FREQ_CH3 = 869850000 |
| Channel 3: 869.85 MHz (2W only). | |
| static constexpr uint16_t | esphome::home_io_control::LONG_PREAMBLE = 1024 |
| Preamble is a sequence of 0xAA bytes that precedes every frame. | |
| static constexpr uint16_t | esphome::home_io_control::SHORT_PREAMBLE = 8 |
| 8 bytes for response/continuation frames | |
| static constexpr uint16_t | esphome::home_io_control::COLD_BROADCAST_REPLY_PREAMBLE = 80 |
| Default for TuningConfig::cold_broadcast_reply_preamble — preamble for a broadcast reply to a frame the peer caught via a rotating/hopping listen (currently: only the key-extraction responder's 0x29, the sole start=true frame any device-role builder in this codebase produces) — long enough to be reliably caught by a hopping receiver, short enough that broadcasting it across all 3 channels doesn't block the loop the way LONG_PREAMBLE does. | |
| static constexpr uint16_t | esphome::home_io_control::NORMAL_START_PREAMBLE = 32 |
| Default for TuningConfig::normal_start_preamble — the preamble in front of a directed start frame whose target is not a low-power / duty-cycled device (CTRL1_LOW_POWER clear). | |
| static constexpr uint16_t | esphome::home_io_control::PAIRING_DISCOVERY_PREAMBLE = LONG_PREAMBLE |
| Default for TuningConfig::pairing_discovery_preamble — the preamble on the pairing discovery broadcast (CMD_DISCOVER_REQ/CMD_DISCOVER_ALT_REQ, 0x28/0x2E). | |
| static constexpr uint32_t | esphome::home_io_control::PREAMBLE_LINGER_DWELL_MS = 15 |
| Preamble/sync linger extension for a rotating listen (ListenSpec::linger_dwell_ms): how much longer to stay on a channel once a frame is visibly incoming, so a hop doesn't cut it off mid-reception. | |
| static constexpr int32_t | esphome::home_io_control::HOP_TIME_US = 2700 |
| Timing constants for frequency hopping and response waiting. | |
| static constexpr int32_t | esphome::home_io_control::RESPONSE_WAIT_MS = 500 |
| Wait for response to non-start frame. | |
| static constexpr int32_t | esphome::home_io_control::RESPONSE_START_WAIT_MS = 400 |
| Wait for a response to a start frame — the first frame of an exchange, and the one a sleeping device has just been woken by. | |
| static constexpr int32_t | esphome::home_io_control::RESPONSE_AUTH_WAIT_MS |
| Wait for final response after challenge response. | |
| static constexpr int32_t | esphome::home_io_control::EXCHANGE_RETRY_DELAY_MS = 250 |
| Gap between retries within one HA command. | |
| static constexpr uint8_t | esphome::home_io_control::EXCHANGE_RETRY_COUNT = 3 |
| Attempts per command before reporting failure. | |
| static constexpr uint8_t | esphome::home_io_control::SCHEDULED_POLL_MAX_TRIES = 1 |
| Exchange tries for a status poll the scheduler owns — every status poll issued while StatusPollPolicy is tracking the device, which today is every status poll this component can produce (there is no user-facing "refresh status" button or action; if one is ever added, it must not take this branch). | |
| static constexpr uint8_t | esphome::home_io_control::SCHEDULED_POLL_RETRY_GRACE_FIRST_FAILURE = 1 |
| Ladder positions at which a scheduler-owned status poll gets the full EXCHANGE_RETRY_COUNT back. | |
| static constexpr uint8_t | esphome::home_io_control::SCHEDULED_POLL_RETRY_GRACE_LAST_FAILURE = 3 |
| static constexpr uint16_t | esphome::home_io_control::EXCHANGE_TOTAL_BUDGET_MS = 2500 |
| Wall-clock ceiling on one whole exchange, retries included. | |
| static constexpr uint8_t | esphome::home_io_control::ONEWAY_BURST_REPEATS = 4 |
| One-way (1W) transmit cadence. | |
| static constexpr uint32_t | esphome::home_io_control::ONEWAY_BURST_INTERVAL_MS = 40 |
| Gap between those copies. | |
| static constexpr int16_t | esphome::home_io_control::LBT_RSSI_THRESHOLD_DBM = -90 |
| Listen-before-talk (LBT) parameters for ETSI EN 300 220 compliance. | |
| static constexpr uint8_t | esphome::home_io_control::LBT_MAX_RETRIES = 5 |
| Max carrier-sense attempts before TX anyway. | |
| static constexpr uint8_t | esphome::home_io_control::LBT_RETRY_DELAY_MS = 5 |
| Backoff between LBT checks (≥ 5ms per ETSI). | |
| static constexpr uint16_t | esphome::home_io_control::PAIRING_DISCOVERY_WAIT_MS = 2000 |
| Canonical defaults for the chip-neutral runtime-tunable pairing/discovery parameters. | |
| static constexpr uint16_t | esphome::home_io_control::PAIRING_DISCOVERY_INITIAL_DWELL_MS = 300 |
| Dwell on CH2 before discovery hopping begins. | |
| static constexpr uint8_t | esphome::home_io_control::PAIRING_KEY_EXCHANGE_RETRIES = 3 |
| Retries for the authenticated key-exchange phase. | |
Physical-layer radio and timing parameters for the IO-Homecontrol protocol.
Definition in file proto_timing.h.