Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
esphome::home_io_control::TuningConfig Struct Reference

All runtime tunable parameters for pairing and radio diagnostics. More...

#include <tuning_config.h>

Collaboration diagram for esphome::home_io_control::TuningConfig:

Public Attributes

SX1262RxBandwidth sx1262_rx_bandwidth {SX1262RxBandwidth::BW_58_6_KHZ}
 SX1262 RX bandwidth selector.
uint16_t sx1262_response_preamble {SX1262_RESPONSE_PREAMBLE}
 SX1262 response preamble in bytes.
uint16_t sx1262_post_tx_settle_us {SX1262_POST_TX_SETTLE_US}
 Delay after SX1262 TX before RX (µs).
SX1276RxBandwidth sx1276_rx_bandwidth {SX1276RxBandwidth::BW_41_7_KHZ}
 SX1276 RX bandwidth selector.
uint16_t sx1276_response_preamble {SX1276_RESPONSE_PREAMBLE}
 SX1276 response preamble in bytes.
uint16_t sx1276_discovery_hop_slice_ms
 Per-channel dwell while SX1276 discovery hops.
uint16_t sx1262_discovery_hop_slice_ms
 Per-channel dwell while SX1262 discovery hops.
LR1121RxBandwidth lr1121_rx_bandwidth {LR1121RxBandwidth::BW_117_3_KHZ}
 LR1121 RX bandwidth selector.
uint16_t lr1121_response_preamble {LR1121_RESPONSE_PREAMBLE}
 LR1121 response preamble in bytes.
uint16_t lr1121_post_tx_settle_us {LR1121_POST_TX_SETTLE_US}
 Delay after LR1121 TX before RX (µs).
uint16_t lr1121_discovery_hop_slice_ms
 Per-channel dwell while LR1121 discovery hops.
uint16_t cold_broadcast_reply_preamble
 Preamble for a start-flagged key-extraction broadcast reply (0x29).
uint16_t normal_start_preamble
 Preamble for a directed start frame to a non-low-power target.
bool normal_start_preamble_from_yaml {false}
 True when normal_start_preamble: appeared in YAML.
uint8_t lbt_max_retries {LBT_MAX_RETRIES}
 LBT retries before forced TX.
int16_t lbt_rssi_threshold_dbm {LBT_RSSI_THRESHOLD_DBM}
 LBT channel-free threshold (dBm).
bool low_power_wake_belief {true}
 Order a low_power device's start-frame tries by its wake belief (short preamble first when it is believed awake).
uint16_t exchange_start_response_wait_ms
 Reply window for a start frame (wakes a sleeping device).
uint16_t exchange_response_wait_ms
 Reply window for continuation frames and the post-auth final response.
uint16_t exchange_total_budget_ms {EXCHANGE_TOTAL_BUDGET_MS}
 Ceiling on one whole exchange, retries included.
std::vector< DiscoveryCommand > pairing_discovery_commands
 Ordered discovery commands.
std::vector< uint8_t > pairing_discovery_destination {0x00, 0x00, 0x00}
 Destination when auto=false.
bool pairing_discovery_destination_auto {true}
 When true, map commands to conventional addresses.
uint8_t pairing_discovery_payload {0}
 Optional payload byte (used for 0x2E).
bool pairing_discovery_payload_enabled {false}
 Whether the optional payload is enabled.
bool pairing_discovery_low_power {false}
 Set LOW_POWER flag in discovery frames.
bool pairing_discovery_ack_capable {false}
 Set ACK (CTRL1_ACK) on the discovery broadcast only.
uint16_t pairing_discovery_preamble
 Preamble for the discovery broadcast (0x28/0x2E) start frame.
uint16_t pairing_discovery_wait_ms
 Total wait window after sending discovery commands.
uint16_t pairing_discovery_initial_dwell_ms
 Initial dwell on CH2 before discovery hopping begins.
uint8_t pairing_key_exchange_retries
 Retries for the authenticated key exchange phase.
ScanPowerClasses scan_power_classes
 Power classes the scan_paired_devices roll-call calls.
DiscoverConfirmMode pairing_discover_confirm
 Whether/how to send CMD_DISCOVER_CONFIRM (0x2C) during pairing.
DiscoveryListenChannels pairing_discovery_listen_channels
 Channels the discovery response wait covers.
uint16_t pairing_key_init_delay_ms
 Pause after the discover-confirm step, before CMD_KEY_INIT (0x31).
bool active {false}
 True when the YAML tuning: block is present.

Detailed Description

All runtime tunable parameters for pairing and radio diagnostics.

Values reset to their defaults on every boot. Each field initializes from a canonical constant — chip-neutral defaults live in proto_timing.h, chip-specific defaults in this header — shared with the ESPHome YAML schema. The hub stores a single TuningConfig instance and passes it to the radio driver and pairing flow. UI callbacks update the hub instance directly; the snapshot helpers emit the current values in YAML-compatible form so a working combination can be copied back into the configuration file.

Definition at line 242 of file tuning_config.h.

Member Data Documentation

◆ active

bool esphome::home_io_control::TuningConfig::active {false}

True when the YAML tuning: block is present.

Definition at line 323 of file tuning_config.h.

◆ cold_broadcast_reply_preamble

uint16_t esphome::home_io_control::TuningConfig::cold_broadcast_reply_preamble
Initial value:
{
COLD_BROADCAST_REPLY_PREAMBLE}

Preamble for a start-flagged key-extraction broadcast reply (0x29).

Definition at line 266 of file tuning_config.h.

◆ exchange_response_wait_ms

uint16_t esphome::home_io_control::TuningConfig::exchange_response_wait_ms
Initial value:
{
RESPONSE_WAIT_MS}

Reply window for continuation frames and the post-auth final response.

Definition at line 290 of file tuning_config.h.

◆ exchange_start_response_wait_ms

uint16_t esphome::home_io_control::TuningConfig::exchange_start_response_wait_ms
Initial value:
{
RESPONSE_START_WAIT_MS}

Reply window for a start frame (wakes a sleeping device).

Definition at line 288 of file tuning_config.h.

◆ exchange_total_budget_ms

uint16_t esphome::home_io_control::TuningConfig::exchange_total_budget_ms {EXCHANGE_TOTAL_BUDGET_MS}

Ceiling on one whole exchange, retries included.

Definition at line 292 of file tuning_config.h.

◆ lbt_max_retries

uint8_t esphome::home_io_control::TuningConfig::lbt_max_retries {LBT_MAX_RETRIES}

LBT retries before forced TX.

Definition at line 277 of file tuning_config.h.

◆ lbt_rssi_threshold_dbm

int16_t esphome::home_io_control::TuningConfig::lbt_rssi_threshold_dbm {LBT_RSSI_THRESHOLD_DBM}

LBT channel-free threshold (dBm).

Definition at line 278 of file tuning_config.h.

◆ low_power_wake_belief

bool esphome::home_io_control::TuningConfig::low_power_wake_belief {true}

Order a low_power device's start-frame tries by its wake belief (short preamble first when it is believed awake).

False restores the fixed LONG_PREAMBLE on every try. A diagnostic off-switch, on by default.

Definition at line 279 of file tuning_config.h.

◆ lr1121_discovery_hop_slice_ms

uint16_t esphome::home_io_control::TuningConfig::lr1121_discovery_hop_slice_ms
Initial value:
{
LR1121_DISCOVERY_HOP_SLICE_MS}

Per-channel dwell while LR1121 discovery hops.

Definition at line 264 of file tuning_config.h.

◆ lr1121_post_tx_settle_us

uint16_t esphome::home_io_control::TuningConfig::lr1121_post_tx_settle_us {LR1121_POST_TX_SETTLE_US}

Delay after LR1121 TX before RX (µs).

Definition at line 263 of file tuning_config.h.

◆ lr1121_response_preamble

uint16_t esphome::home_io_control::TuningConfig::lr1121_response_preamble {LR1121_RESPONSE_PREAMBLE}

LR1121 response preamble in bytes.

Definition at line 262 of file tuning_config.h.

◆ lr1121_rx_bandwidth

LR1121RxBandwidth esphome::home_io_control::TuningConfig::lr1121_rx_bandwidth {LR1121RxBandwidth::BW_117_3_KHZ}

LR1121 RX bandwidth selector.

Definition at line 261 of file tuning_config.h.

◆ normal_start_preamble

uint16_t esphome::home_io_control::TuningConfig::normal_start_preamble
Initial value:
{
NORMAL_START_PREAMBLE}

Preamble for a directed start frame to a non-low-power target.

Resolved at setup from RadioDriver::default_start_preamble() unless normal_start_preamble_from_yaml says the user set it.

Definition at line 268 of file tuning_config.h.

◆ normal_start_preamble_from_yaml

bool esphome::home_io_control::TuningConfig::normal_start_preamble_from_yaml {false}

True when normal_start_preamble: appeared in YAML.

Codegen emits this alongside the value; it exists so setup() can tell "the user chose 32" from "nobody chose anything", which decides whether the driver's default applies (ADR 0042). Only read once, at setup — a later change through the Home Assistant number simply sets the value.

Definition at line 276 of file tuning_config.h.

◆ pairing_discover_confirm

DiscoverConfirmMode esphome::home_io_control::TuningConfig::pairing_discover_confirm
Initial value:

Whether/how to send CMD_DISCOVER_CONFIRM (0x2C) during pairing.

Definition at line 315 of file tuning_config.h.

◆ pairing_discovery_ack_capable

bool esphome::home_io_control::TuningConfig::pairing_discovery_ack_capable {false}

Set ACK (CTRL1_ACK) on the discovery broadcast only.

Opt-in — see the init_frame() doc in proto_frame.h; default off.

Definition at line 302 of file tuning_config.h.

◆ pairing_discovery_commands

std::vector<DiscoveryCommand> esphome::home_io_control::TuningConfig::pairing_discovery_commands
Initial value:
{
@ DISCOVER
Standard broadcast discovery request (to 0x00003B).

Ordered discovery commands.

Definition at line 295 of file tuning_config.h.

◆ pairing_discovery_destination

std::vector<uint8_t> esphome::home_io_control::TuningConfig::pairing_discovery_destination {0x00, 0x00, 0x00}

Destination when auto=false.

Definition at line 297 of file tuning_config.h.

◆ pairing_discovery_destination_auto

bool esphome::home_io_control::TuningConfig::pairing_discovery_destination_auto {true}

When true, map commands to conventional addresses.

Definition at line 298 of file tuning_config.h.

◆ pairing_discovery_initial_dwell_ms

uint16_t esphome::home_io_control::TuningConfig::pairing_discovery_initial_dwell_ms
Initial value:
{
PAIRING_DISCOVERY_INITIAL_DWELL_MS}

Initial dwell on CH2 before discovery hopping begins.

Definition at line 309 of file tuning_config.h.

◆ pairing_discovery_listen_channels

DiscoveryListenChannels esphome::home_io_control::TuningConfig::pairing_discovery_listen_channels
Initial value:
{
@ SKIP_REQUEST
Default. The two channels that are not the request channel.

Channels the discovery response wait covers.

Definition at line 317 of file tuning_config.h.

◆ pairing_discovery_low_power

bool esphome::home_io_control::TuningConfig::pairing_discovery_low_power {false}

Set LOW_POWER flag in discovery frames.

Definition at line 301 of file tuning_config.h.

◆ pairing_discovery_payload

uint8_t esphome::home_io_control::TuningConfig::pairing_discovery_payload {0}

Optional payload byte (used for 0x2E).

Definition at line 299 of file tuning_config.h.

◆ pairing_discovery_payload_enabled

bool esphome::home_io_control::TuningConfig::pairing_discovery_payload_enabled {false}

Whether the optional payload is enabled.

Definition at line 300 of file tuning_config.h.

◆ pairing_discovery_preamble

uint16_t esphome::home_io_control::TuningConfig::pairing_discovery_preamble
Initial value:
{
PAIRING_DISCOVERY_PREAMBLE}

Preamble for the discovery broadcast (0x28/0x2E) start frame.

Definition at line 305 of file tuning_config.h.

◆ pairing_discovery_wait_ms

uint16_t esphome::home_io_control::TuningConfig::pairing_discovery_wait_ms
Initial value:
{
PAIRING_DISCOVERY_WAIT_MS}

Total wait window after sending discovery commands.

Definition at line 307 of file tuning_config.h.

◆ pairing_key_exchange_retries

uint8_t esphome::home_io_control::TuningConfig::pairing_key_exchange_retries
Initial value:
{
PAIRING_KEY_EXCHANGE_RETRIES}

Retries for the authenticated key exchange phase.

Definition at line 311 of file tuning_config.h.

◆ pairing_key_init_delay_ms

uint16_t esphome::home_io_control::TuningConfig::pairing_key_init_delay_ms
Initial value:
{
PAIRING_KEY_INIT_DELAY_MS}

Pause after the discover-confirm step, before CMD_KEY_INIT (0x31).

Definition at line 319 of file tuning_config.h.

◆ scan_power_classes

ScanPowerClasses esphome::home_io_control::TuningConfig::scan_power_classes
Initial value:
{
@ BOTH
Low-power pass, then always-alive pass (default).

Power classes the scan_paired_devices roll-call calls.

Definition at line 313 of file tuning_config.h.

◆ sx1262_discovery_hop_slice_ms

uint16_t esphome::home_io_control::TuningConfig::sx1262_discovery_hop_slice_ms
Initial value:
{
SX1262_DISCOVERY_HOP_SLICE_MS}

Per-channel dwell while SX1262 discovery hops.

Definition at line 259 of file tuning_config.h.

◆ sx1262_post_tx_settle_us

uint16_t esphome::home_io_control::TuningConfig::sx1262_post_tx_settle_us {SX1262_POST_TX_SETTLE_US}

Delay after SX1262 TX before RX (µs).

Definition at line 254 of file tuning_config.h.

◆ sx1262_response_preamble

uint16_t esphome::home_io_control::TuningConfig::sx1262_response_preamble {SX1262_RESPONSE_PREAMBLE}

SX1262 response preamble in bytes.

Definition at line 253 of file tuning_config.h.

◆ sx1262_rx_bandwidth

SX1262RxBandwidth esphome::home_io_control::TuningConfig::sx1262_rx_bandwidth {SX1262RxBandwidth::BW_58_6_KHZ}

SX1262 RX bandwidth selector.

58.6 kHz (double-sideband). This is below the 76.8 kHz sizing floor for this waveform (see SX1262RxBandwidth), so it trims the edges of even an on-frequency signal; it is the default because it made a real solar shutter (Somfy RS100) respond reliably where 117.3 kHz did not. Because the SX1262 has no GFSK AFC, a peer whose carrier sits off nominal needs a wider setting instead: a Somfy LightVar_Wh_io dimmer went from mostly missed to mostly confirmed replies at 156.2 kHz. The setting is global, so the right value is a per-install trade-off.

Definition at line 252 of file tuning_config.h.

◆ sx1276_discovery_hop_slice_ms

uint16_t esphome::home_io_control::TuningConfig::sx1276_discovery_hop_slice_ms
Initial value:
{
SX1276_DISCOVERY_HOP_SLICE_MS}

Per-channel dwell while SX1276 discovery hops.

Definition at line 257 of file tuning_config.h.

◆ sx1276_response_preamble

uint16_t esphome::home_io_control::TuningConfig::sx1276_response_preamble {SX1276_RESPONSE_PREAMBLE}

SX1276 response preamble in bytes.

Definition at line 256 of file tuning_config.h.

◆ sx1276_rx_bandwidth

SX1276RxBandwidth esphome::home_io_control::TuningConfig::sx1276_rx_bandwidth {SX1276RxBandwidth::BW_41_7_KHZ}

SX1276 RX bandwidth selector.

Definition at line 255 of file tuning_config.h.


The documentation for this struct was generated from the following file: