Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
home_io_control.tuning Namespace Reference

Functions

 _id_key (param_key)
 _one_of_string (param_name, options, coerce_number=False)
 _parse_destination_to_bytes (value)
 _parse_payload (value)
 _inject_tuning_companion_ids (config)
 _cpp_bool (value)
 _assign (struct, field, value)
 _apply_tuning_config (config, var)
 _create_tuning_entities (config, var)
 _create_number (config, var, key, min_value, max_value, step, unit="")
 _create_select (config, var, key, options)
 to_code (config, var)

Variables

 home_io_control_ns = cg.esphome_ns.namespace("home_io_control")
str CONF_TUNING = "tuning"
str CONF_UI_CONTROLS = "ui_controls"
str _COMPANION_ID_BASE = "home_io_control"
str CONF_SX1262_RX_BANDWIDTH = "sx1262_rx_bandwidth"
str CONF_SX1262_RESPONSE_PREAMBLE = "sx1262_response_preamble"
str CONF_SX1262_POST_TX_SETTLE_US = "sx1262_post_tx_settle_us"
str CONF_SX1276_RX_BANDWIDTH = "sx1276_rx_bandwidth"
str CONF_SX1276_RESPONSE_PREAMBLE = "sx1276_response_preamble"
str CONF_SX1276_DISCOVERY_HOP_SLICE_MS = "sx1276_discovery_hop_slice_ms"
str CONF_SX1262_DISCOVERY_HOP_SLICE_MS = "sx1262_discovery_hop_slice_ms"
str CONF_LR1121_RX_BANDWIDTH = "lr1121_rx_bandwidth"
str CONF_LR1121_RESPONSE_PREAMBLE = "lr1121_response_preamble"
str CONF_LR1121_POST_TX_SETTLE_US = "lr1121_post_tx_settle_us"
str CONF_LR1121_DISCOVERY_HOP_SLICE_MS = "lr1121_discovery_hop_slice_ms"
str CONF_LBT_MAX_RETRIES = "lbt_max_retries"
str CONF_LBT_RSSI_THRESHOLD_DBM = "lbt_rssi_threshold_dbm"
str CONF_EXCHANGE_START_RESPONSE_WAIT_MS = "exchange_start_response_wait_ms"
str CONF_EXCHANGE_RESPONSE_WAIT_MS = "exchange_response_wait_ms"
str CONF_PAIRING_DISCOVERY_COMMANDS = "pairing_discovery_commands"
str CONF_PAIRING_DISCOVERY_DESTINATION = "pairing_discovery_destination"
str CONF_PAIRING_DISCOVERY_PAYLOAD = "pairing_discovery_payload"
str CONF_PAIRING_DISCOVERY_LOW_POWER = "pairing_discovery_low_power"
str CONF_PAIRING_DISCOVERY_WAIT_MS = "pairing_discovery_wait_ms"
str CONF_PAIRING_DISCOVERY_INITIAL_DWELL_MS = "pairing_discovery_initial_dwell_ms"
str CONF_PAIRING_KEY_EXCHANGE_RETRIES = "pairing_key_exchange_retries"
 TuningConfig = home_io_control_ns.class_("TuningConfig")
 IOHomeTuningNumber
 IOHomeTuningSelect
 SX1262RxBandwidth = home_io_control_ns.enum("SX1262RxBandwidth", is_class=True)
 SX1276RxBandwidth = home_io_control_ns.enum("SX1276RxBandwidth", is_class=True)
 LR1121RxBandwidth = home_io_control_ns.enum("LR1121RxBandwidth", is_class=True)
 DiscoveryCommand = home_io_control_ns.enum("DiscoveryCommand", is_class=True)
dict SX1262_BANDWIDTH_OPTIONS
dict SX1276_BANDWIDTH_OPTIONS
dict LR1121_BANDWIDTH_OPTIONS
dict DISCOVERY_COMMAND_OPTIONS
list DISCOVERY_COMMAND_PRESETS
list DISCOVERY_DESTINATION_OPTIONS = ["auto", "0x00003B", "0x00003F"]
list PAIRING_DISCOVERY_PAYLOAD_OPTIONS = ["none", "0x00"]
dict UI_NAMES
dict _NUMBER_PARAMS
dict _SELECT_OPTIONS
 _validate_bandwidth
 _validate_sx1276_bandwidth
 _validate_lr1121_bandwidth
 _validate_discovery_command
 _validate_discovery_destination
 _validate_discovery_payload
 TUNING_SCHEMA
 TUNING_CONFIG_SCHEMA = cv.All(TUNING_SCHEMA, _inject_tuning_companion_ids)

Function Documentation

◆ _apply_tuning_config()

home_io_control.tuning._apply_tuning_config ( config,
var )
protected
Generate C++ code that builds a TuningConfig from the validated YAML.

Only keys the user actually provided are emitted; every omitted key keeps the
default baked into the C++ TuningConfig struct (sourced from proto_frame.h), so
the defaults are never restated here.

Definition at line 318 of file tuning.py.

Here is the call graph for this function:

◆ _assign()

home_io_control.tuning._assign ( struct,
field,
value )
protected
Emit a `struct.field = value;` C++ assignment statement at codegen time.

ESPHome's MockObj does not support Python attribute assignment, so struct fields
are populated with raw assignment statements. `value` must already be valid C++
(an int, or a string such as an enum value or brace-init list).

Definition at line 308 of file tuning.py.

◆ _cpp_bool()

home_io_control.tuning._cpp_bool ( value)
protected
Format a Python bool as a C++ boolean literal.

Definition at line 303 of file tuning.py.

◆ _create_number()

home_io_control.tuning._create_number ( config,
var,
key,
min_value,
max_value,
step,
unit = "" )
protected
Create a single IOHomeTuningNumber entity.

The bare {id, name} dict is normalized through number_schema()+COMPONENT_SCHEMA so it
carries the entity/component defaults (disabled_by_default, setup_priority, ...) that
register_number()/register_component() require.

Definition at line 416 of file tuning.py.

Here is the call graph for this function:

◆ _create_select()

home_io_control.tuning._create_select ( config,
var,
key,
options )
protected
Create a single IOHomeTuningSelect entity.

The bare {id, name} dict is normalized through select_schema()+COMPONENT_SCHEMA so it
carries the entity/component defaults that register_select()/register_component() require.

Definition at line 447 of file tuning.py.

Here is the call graph for this function:

◆ _create_tuning_entities()

home_io_control.tuning._create_tuning_entities ( config,
var )
protected
Generate number/select entities for the tuning parameters when enabled.

Definition at line 400 of file tuning.py.

Here is the call graph for this function:

◆ _id_key()

home_io_control.tuning._id_key ( param_key)
protected
Config-dict key under which a parameter's injected companion entity ID is stored.

Definition at line 122 of file tuning.py.

◆ _inject_tuning_companion_ids()

home_io_control.tuning._inject_tuning_companion_ids ( config)
protected
Declare companion entity IDs for tuning UI controls.

ESPHome 2026.x sizes the runtime component vector from the number of IDs
declared during validation. If UI entities were created only in to_code(),
they could be silently dropped. This post-validator injects declared IDs
before the vector is sized.

Definition at line 276 of file tuning.py.

Here is the call graph for this function:

◆ _one_of_string()

home_io_control.tuning._one_of_string ( param_name,
options,
coerce_number = False )
protected
Build a validator that requires a string value present in `options`.

Works for both list and dict `options` (dict membership tests the keys), so a single
factory replaces a hand-written validator per option set while keeping a per-parameter
error message. With `coerce_number`, a numeric YAML value (e.g. ``117.3``) is accepted and
normalized to its string form, so bare-number options do not force the user to quote them.

Definition at line 197 of file tuning.py.

◆ _parse_destination_to_bytes()

home_io_control.tuning._parse_destination_to_bytes ( value)
protected
Convert an explicit destination string like '0x00003B' to a list of 3 byte values.

Definition at line 237 of file tuning.py.

◆ _parse_payload()

home_io_control.tuning._parse_payload ( value)
protected
Convert a payload option string like '0x00' to its numeric byte value.

Definition at line 243 of file tuning.py.

◆ to_code()

home_io_control.tuning.to_code ( config,
var )
Generate code for the tuning block.

Definition at line 470 of file tuning.py.

Here is the call graph for this function:

Variable Documentation

◆ _COMPANION_ID_BASE

str home_io_control.tuning._COMPANION_ID_BASE = "home_io_control"
protected

Definition at line 22 of file tuning.py.

◆ _NUMBER_PARAMS

dict home_io_control.tuning._NUMBER_PARAMS
protected
Initial value:
1= {
2 # Floor is 8, not an arbitrary round number: it's SHORT_PREAMBLE, the protocol's own nominal
3 # preamble length and the lowest value that makes sense to transmit (below it there isn't # enough preamble left for the peer's detector to lock on at all). Same floor as
4 # sx1276_response_preamble below.
5 CONF_SX1262_RESPONSE_PREAMBLE: (8, 256, 1, "B"),
6 CONF_SX1262_POST_TX_SETTLE_US: (0, 2000, 10, "µs"),
7 CONF_SX1276_RESPONSE_PREAMBLE: (8, 256, 1, "B"),
8 CONF_SX1276_DISCOVERY_HOP_SLICE_MS: (5, 200, 1, "ms"),
9 CONF_SX1262_DISCOVERY_HOP_SLICE_MS: (50, 500, 1, "ms"),
10 # LR1121 numeric ranges reuse the SX1262 bounds — same chip-family physical constraints
11 # (design doc §3.2: "seed every timing/tuning default from the validated SX1262 values").
12 CONF_LR1121_RESPONSE_PREAMBLE: (8, 256, 1, "B"),
13 CONF_LR1121_POST_TX_SETTLE_US: (0, 2000, 10, "µs"),
14 CONF_LR1121_DISCOVERY_HOP_SLICE_MS: (50, 500, 1, "ms"),
15 CONF_LBT_MAX_RETRIES: (0, 10, 1, ""),
16 CONF_LBT_RSSI_THRESHOLD_DBM: (-95, -70, 1, "dBm"),
17 # Ceilings are generous because the right value is a property of the target device, not of
18 # the radio: measured RS100 solar reply latencies reach ~3 s (see RESPONSE_START_WAIT_MS).
19 # Every millisecond here is loop-blocking time on a *failed* exchange only (ADR 0013).
20 CONF_EXCHANGE_START_RESPONSE_WAIT_MS: (200, 4000, 50, "ms"),
21 CONF_EXCHANGE_RESPONSE_WAIT_MS: (200, 4000, 50, "ms"),
22 CONF_PAIRING_DISCOVERY_WAIT_MS: (500, 5000, 50, "ms"),
23 CONF_PAIRING_DISCOVERY_INITIAL_DWELL_MS: (0, 500, 10, "ms"),
24 CONF_PAIRING_KEY_EXCHANGE_RETRIES: (1, 5, 1, ""),
25}

Definition at line 157 of file tuning.py.

◆ _SELECT_OPTIONS

dict home_io_control.tuning._SELECT_OPTIONS
protected
Initial value:
1= {
2 CONF_PAIRING_DISCOVERY_COMMANDS: DISCOVERY_COMMAND_PRESETS,
3 CONF_PAIRING_DISCOVERY_DESTINATION: DISCOVERY_DESTINATION_OPTIONS,
4 CONF_PAIRING_DISCOVERY_PAYLOAD: PAIRING_DISCOVERY_PAYLOAD_OPTIONS,
5 CONF_PAIRING_DISCOVERY_LOW_POWER: ["Off", "On"],
6 CONF_SX1262_RX_BANDWIDTH: list(SX1262_BANDWIDTH_OPTIONS),
7 CONF_SX1276_RX_BANDWIDTH: list(SX1276_BANDWIDTH_OPTIONS),
8 CONF_LR1121_RX_BANDWIDTH: list(LR1121_BANDWIDTH_OPTIONS),
9}

Definition at line 186 of file tuning.py.

◆ _validate_bandwidth

home_io_control.tuning._validate_bandwidth
protected
Initial value:
1= _one_of_string(
2 CONF_SX1262_RX_BANDWIDTH, SX1262_BANDWIDTH_OPTIONS, coerce_number=True
3)

Definition at line 217 of file tuning.py.

◆ _validate_discovery_command

home_io_control.tuning._validate_discovery_command
protected
Initial value:
1= _one_of_string(
2 f"{CONF_PAIRING_DISCOVERY_COMMANDS} entries", DISCOVERY_COMMAND_OPTIONS
3)

Definition at line 226 of file tuning.py.

◆ _validate_discovery_destination

home_io_control.tuning._validate_discovery_destination
protected
Initial value:
1= _one_of_string(
2 CONF_PAIRING_DISCOVERY_DESTINATION, DISCOVERY_DESTINATION_OPTIONS
3)

Definition at line 229 of file tuning.py.

◆ _validate_discovery_payload

home_io_control.tuning._validate_discovery_payload
protected
Initial value:
1= _one_of_string(
2 CONF_PAIRING_DISCOVERY_PAYLOAD, PAIRING_DISCOVERY_PAYLOAD_OPTIONS
3)

Definition at line 232 of file tuning.py.

◆ _validate_lr1121_bandwidth

home_io_control.tuning._validate_lr1121_bandwidth
protected
Initial value:
1= _one_of_string(
2 CONF_LR1121_RX_BANDWIDTH, LR1121_BANDWIDTH_OPTIONS, coerce_number=True
3)

Definition at line 223 of file tuning.py.

◆ _validate_sx1276_bandwidth

home_io_control.tuning._validate_sx1276_bandwidth
protected
Initial value:
1= _one_of_string(
2 CONF_SX1276_RX_BANDWIDTH, SX1276_BANDWIDTH_OPTIONS, coerce_number=True
3)

Definition at line 220 of file tuning.py.

◆ CONF_EXCHANGE_RESPONSE_WAIT_MS

str home_io_control.tuning.CONF_EXCHANGE_RESPONSE_WAIT_MS = "exchange_response_wait_ms"

Definition at line 39 of file tuning.py.

◆ CONF_EXCHANGE_START_RESPONSE_WAIT_MS

str home_io_control.tuning.CONF_EXCHANGE_START_RESPONSE_WAIT_MS = "exchange_start_response_wait_ms"

Definition at line 38 of file tuning.py.

◆ CONF_LBT_MAX_RETRIES

str home_io_control.tuning.CONF_LBT_MAX_RETRIES = "lbt_max_retries"

Definition at line 36 of file tuning.py.

◆ CONF_LBT_RSSI_THRESHOLD_DBM

str home_io_control.tuning.CONF_LBT_RSSI_THRESHOLD_DBM = "lbt_rssi_threshold_dbm"

Definition at line 37 of file tuning.py.

◆ CONF_LR1121_DISCOVERY_HOP_SLICE_MS

str home_io_control.tuning.CONF_LR1121_DISCOVERY_HOP_SLICE_MS = "lr1121_discovery_hop_slice_ms"

Definition at line 35 of file tuning.py.

◆ CONF_LR1121_POST_TX_SETTLE_US

str home_io_control.tuning.CONF_LR1121_POST_TX_SETTLE_US = "lr1121_post_tx_settle_us"

Definition at line 34 of file tuning.py.

◆ CONF_LR1121_RESPONSE_PREAMBLE

str home_io_control.tuning.CONF_LR1121_RESPONSE_PREAMBLE = "lr1121_response_preamble"

Definition at line 33 of file tuning.py.

◆ CONF_LR1121_RX_BANDWIDTH

str home_io_control.tuning.CONF_LR1121_RX_BANDWIDTH = "lr1121_rx_bandwidth"

Definition at line 32 of file tuning.py.

◆ CONF_PAIRING_DISCOVERY_COMMANDS

str home_io_control.tuning.CONF_PAIRING_DISCOVERY_COMMANDS = "pairing_discovery_commands"

Definition at line 42 of file tuning.py.

◆ CONF_PAIRING_DISCOVERY_DESTINATION

str home_io_control.tuning.CONF_PAIRING_DISCOVERY_DESTINATION = "pairing_discovery_destination"

Definition at line 43 of file tuning.py.

◆ CONF_PAIRING_DISCOVERY_INITIAL_DWELL_MS

str home_io_control.tuning.CONF_PAIRING_DISCOVERY_INITIAL_DWELL_MS = "pairing_discovery_initial_dwell_ms"

Definition at line 47 of file tuning.py.

◆ CONF_PAIRING_DISCOVERY_LOW_POWER

str home_io_control.tuning.CONF_PAIRING_DISCOVERY_LOW_POWER = "pairing_discovery_low_power"

Definition at line 45 of file tuning.py.

◆ CONF_PAIRING_DISCOVERY_PAYLOAD

str home_io_control.tuning.CONF_PAIRING_DISCOVERY_PAYLOAD = "pairing_discovery_payload"

Definition at line 44 of file tuning.py.

◆ CONF_PAIRING_DISCOVERY_WAIT_MS

str home_io_control.tuning.CONF_PAIRING_DISCOVERY_WAIT_MS = "pairing_discovery_wait_ms"

Definition at line 46 of file tuning.py.

◆ CONF_PAIRING_KEY_EXCHANGE_RETRIES

str home_io_control.tuning.CONF_PAIRING_KEY_EXCHANGE_RETRIES = "pairing_key_exchange_retries"

Definition at line 48 of file tuning.py.

◆ CONF_SX1262_DISCOVERY_HOP_SLICE_MS

str home_io_control.tuning.CONF_SX1262_DISCOVERY_HOP_SLICE_MS = "sx1262_discovery_hop_slice_ms"

Definition at line 31 of file tuning.py.

◆ CONF_SX1262_POST_TX_SETTLE_US

str home_io_control.tuning.CONF_SX1262_POST_TX_SETTLE_US = "sx1262_post_tx_settle_us"

Definition at line 27 of file tuning.py.

◆ CONF_SX1262_RESPONSE_PREAMBLE

str home_io_control.tuning.CONF_SX1262_RESPONSE_PREAMBLE = "sx1262_response_preamble"

Definition at line 26 of file tuning.py.

◆ CONF_SX1262_RX_BANDWIDTH

str home_io_control.tuning.CONF_SX1262_RX_BANDWIDTH = "sx1262_rx_bandwidth"

Definition at line 25 of file tuning.py.

◆ CONF_SX1276_DISCOVERY_HOP_SLICE_MS

str home_io_control.tuning.CONF_SX1276_DISCOVERY_HOP_SLICE_MS = "sx1276_discovery_hop_slice_ms"

Definition at line 30 of file tuning.py.

◆ CONF_SX1276_RESPONSE_PREAMBLE

str home_io_control.tuning.CONF_SX1276_RESPONSE_PREAMBLE = "sx1276_response_preamble"

Definition at line 29 of file tuning.py.

◆ CONF_SX1276_RX_BANDWIDTH

str home_io_control.tuning.CONF_SX1276_RX_BANDWIDTH = "sx1276_rx_bandwidth"

Definition at line 28 of file tuning.py.

◆ CONF_TUNING

str home_io_control.tuning.CONF_TUNING = "tuning"

Definition at line 18 of file tuning.py.

◆ CONF_UI_CONTROLS

str home_io_control.tuning.CONF_UI_CONTROLS = "ui_controls"

Definition at line 19 of file tuning.py.

◆ DISCOVERY_COMMAND_OPTIONS

dict home_io_control.tuning.DISCOVERY_COMMAND_OPTIONS
Initial value:
1= {
2 "0x28": DiscoveryCommand.DISCOVER,
3 "0x2E": DiscoveryCommand.DISCOVER_ALT,
4}

Definition at line 99 of file tuning.py.

◆ DISCOVERY_COMMAND_PRESETS

list home_io_control.tuning.DISCOVERY_COMMAND_PRESETS
Initial value:
1= [
2 "0x28", # default 2W discovery
3 "0x2E", # alternate discovery (the most common thing to try for a stuck device)
4 "0x28,0x2E", # both broadcasts
5]

Definition at line 112 of file tuning.py.

◆ DISCOVERY_DESTINATION_OPTIONS

list home_io_control.tuning.DISCOVERY_DESTINATION_OPTIONS = ["auto", "0x00003B", "0x00003F"]

Definition at line 118 of file tuning.py.

◆ DiscoveryCommand

home_io_control.tuning.DiscoveryCommand = home_io_control_ns.enum("DiscoveryCommand", is_class=True)

Definition at line 65 of file tuning.py.

◆ home_io_control_ns

home_io_control.tuning.home_io_control_ns = cg.esphome_ns.namespace("home_io_control")

Definition at line 16 of file tuning.py.

◆ IOHomeTuningNumber

home_io_control.tuning.IOHomeTuningNumber
Initial value:
1= home_io_control_ns.class_(
2 "IOHomeTuningNumber", number.Number, cg.Component
3)

Definition at line 52 of file tuning.py.

◆ IOHomeTuningSelect

home_io_control.tuning.IOHomeTuningSelect
Initial value:
1= home_io_control_ns.class_(
2 "IOHomeTuningSelect", select.Select, cg.Component
3)

Definition at line 55 of file tuning.py.

◆ LR1121_BANDWIDTH_OPTIONS

dict home_io_control.tuning.LR1121_BANDWIDTH_OPTIONS
Initial value:
1= {
2 "39.0": LR1121RxBandwidth.BW_39_0_KHZ,
3 "46.9": LR1121RxBandwidth.BW_46_9_KHZ,
4 "58.6": LR1121RxBandwidth.BW_58_6_KHZ,
5 "78.2": LR1121RxBandwidth.BW_78_2_KHZ,
6 "117.3": LR1121RxBandwidth.BW_117_3_KHZ,
7 "156.2": LR1121RxBandwidth.BW_156_2_KHZ,
8 "187.2": LR1121RxBandwidth.BW_187_2_KHZ,
9}

Definition at line 89 of file tuning.py.

◆ LR1121RxBandwidth

home_io_control.tuning.LR1121RxBandwidth = home_io_control_ns.enum("LR1121RxBandwidth", is_class=True)

Definition at line 64 of file tuning.py.

◆ PAIRING_DISCOVERY_PAYLOAD_OPTIONS

list home_io_control.tuning.PAIRING_DISCOVERY_PAYLOAD_OPTIONS = ["none", "0x00"]

Definition at line 120 of file tuning.py.

◆ SX1262_BANDWIDTH_OPTIONS

dict home_io_control.tuning.SX1262_BANDWIDTH_OPTIONS
Initial value:
1= {
2 "58.6": SX1262RxBandwidth.BW_58_6_KHZ,
3 "78.2": SX1262RxBandwidth.BW_78_2_KHZ,
4 "117.3": SX1262RxBandwidth.BW_117_3_KHZ,
5 "156.2": SX1262RxBandwidth.BW_156_2_KHZ,
6 "187.2": SX1262RxBandwidth.BW_187_2_KHZ,
7}

Definition at line 69 of file tuning.py.

◆ SX1262RxBandwidth

home_io_control.tuning.SX1262RxBandwidth = home_io_control_ns.enum("SX1262RxBandwidth", is_class=True)

Definition at line 62 of file tuning.py.

◆ SX1276_BANDWIDTH_OPTIONS

dict home_io_control.tuning.SX1276_BANDWIDTH_OPTIONS
Initial value:
1= {
2 "20.8": SX1276RxBandwidth.BW_20_8_KHZ,
3 "41.7": SX1276RxBandwidth.BW_41_7_KHZ,
4 "62.5": SX1276RxBandwidth.BW_62_5_KHZ,
5 "83.3": SX1276RxBandwidth.BW_83_3_KHZ,
6 "125.0": SX1276RxBandwidth.BW_125_0_KHZ,
7}

Definition at line 77 of file tuning.py.

◆ SX1276RxBandwidth

home_io_control.tuning.SX1276RxBandwidth = home_io_control_ns.enum("SX1276RxBandwidth", is_class=True)

Definition at line 63 of file tuning.py.

◆ TUNING_CONFIG_SCHEMA

home_io_control.tuning.TUNING_CONFIG_SCHEMA = cv.All(TUNING_SCHEMA, _inject_tuning_companion_ids)

Definition at line 300 of file tuning.py.

◆ TUNING_SCHEMA

home_io_control.tuning.TUNING_SCHEMA
Initial value:
1= cv.Schema(
2 {
3 cv.Optional(CONF_UI_CONTROLS, default=False): cv.boolean,
4 cv.Optional(CONF_SX1262_RX_BANDWIDTH): _validate_bandwidth,
5 cv.Optional(CONF_SX1276_RX_BANDWIDTH): _validate_sx1276_bandwidth,
6 cv.Optional(CONF_LR1121_RX_BANDWIDTH): _validate_lr1121_bandwidth,
7 cv.Optional(CONF_PAIRING_DISCOVERY_COMMANDS): cv.All(
8 cv.ensure_list(_validate_discovery_command),
9 cv.Length(min=1),
10 ),
11 cv.Optional(CONF_PAIRING_DISCOVERY_DESTINATION): _validate_discovery_destination,
12 cv.Optional(CONF_PAIRING_DISCOVERY_PAYLOAD): _validate_discovery_payload,
13 cv.Optional(CONF_PAIRING_DISCOVERY_LOW_POWER): cv.boolean,
14 # Numeric parameters share their range with the number-entity bounds via _NUMBER_PARAMS.
15 **{
16 cv.Optional(key): cv.int_range(min=lo, max=hi)
17 for key, (lo, hi, _step, _unit) in _NUMBER_PARAMS.items()
18 },
19 }
20)

Definition at line 254 of file tuning.py.

◆ TuningConfig

home_io_control.tuning.TuningConfig = home_io_control_ns.class_("TuningConfig")

Definition at line 51 of file tuning.py.

◆ UI_NAMES

dict home_io_control.tuning.UI_NAMES
Initial value:
1= {
2 CONF_SX1262_RX_BANDWIDTH: "Radio SX1262 RX Bandwidth (kHz)",
3 CONF_SX1262_RESPONSE_PREAMBLE: "Radio SX1262 Response Preamble",
4 CONF_SX1262_POST_TX_SETTLE_US: "Radio SX1262 Post-TX Settle",
5 CONF_SX1276_RX_BANDWIDTH: "Radio SX1276 RX Bandwidth (kHz)",
6 CONF_SX1276_RESPONSE_PREAMBLE: "Radio SX1276 Response Preamble",
7 CONF_SX1276_DISCOVERY_HOP_SLICE_MS: "Radio SX1276 Discovery Hop Slice",
8 CONF_SX1262_DISCOVERY_HOP_SLICE_MS: "Radio SX1262 Discovery Hop Slice",
9 CONF_LR1121_RX_BANDWIDTH: "Radio LR1121 RX Bandwidth (kHz)",
10 CONF_LR1121_RESPONSE_PREAMBLE: "Radio LR1121 Response Preamble",
11 CONF_LR1121_POST_TX_SETTLE_US: "Radio LR1121 Post-TX Settle",
12 CONF_LR1121_DISCOVERY_HOP_SLICE_MS: "Radio LR1121 Discovery Hop Slice",
13 CONF_LBT_MAX_RETRIES: "Radio LBT Max Retries",
14 CONF_LBT_RSSI_THRESHOLD_DBM: "Radio LBT RSSI Threshold",
15 CONF_EXCHANGE_START_RESPONSE_WAIT_MS: "Exchange Start Response Wait",
16 CONF_EXCHANGE_RESPONSE_WAIT_MS: "Exchange Response Wait",
17 CONF_PAIRING_DISCOVERY_COMMANDS: "Pairing Discovery Commands",
18 CONF_PAIRING_DISCOVERY_DESTINATION: "Pairing Discovery Destination",
19 CONF_PAIRING_DISCOVERY_PAYLOAD: "Pairing Discovery Payload",
20 CONF_PAIRING_DISCOVERY_LOW_POWER: "Pairing Discovery Low Power",
21 CONF_PAIRING_DISCOVERY_WAIT_MS: "Pairing Discovery Wait",
22 CONF_PAIRING_DISCOVERY_INITIAL_DWELL_MS: "Pairing Discovery Initial Dwell",
23 CONF_PAIRING_KEY_EXCHANGE_RETRIES: "Pairing Key Exchange Retries",
24}

Definition at line 130 of file tuning.py.