mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 21:44:55 +01:00
uart: allow setting the UART id in final_validate_device_schema (#6923)
This commit is contained in:
parent
4c313bc198
commit
7d642147c1
1 changed files with 8 additions and 7 deletions
|
@ -258,6 +258,7 @@ KEY_UART_DEVICES = "uart_devices"
|
||||||
def final_validate_device_schema(
|
def final_validate_device_schema(
|
||||||
name: str,
|
name: str,
|
||||||
*,
|
*,
|
||||||
|
uart_bus: str = CONF_UART_ID,
|
||||||
baud_rate: Optional[int] = None,
|
baud_rate: Optional[int] = None,
|
||||||
require_tx: bool = False,
|
require_tx: bool = False,
|
||||||
require_rx: bool = False,
|
require_rx: bool = False,
|
||||||
|
@ -268,7 +269,7 @@ def final_validate_device_schema(
|
||||||
def validate_baud_rate(value):
|
def validate_baud_rate(value):
|
||||||
if value != baud_rate:
|
if value != baud_rate:
|
||||||
raise cv.Invalid(
|
raise cv.Invalid(
|
||||||
f"Component {name} requires baud rate {baud_rate} for the uart bus"
|
f"Component {name} requires baud rate {baud_rate} for the uart referenced by {uart_bus}"
|
||||||
)
|
)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@ -287,21 +288,21 @@ def final_validate_device_schema(
|
||||||
def validate_data_bits(value):
|
def validate_data_bits(value):
|
||||||
if value != data_bits:
|
if value != data_bits:
|
||||||
raise cv.Invalid(
|
raise cv.Invalid(
|
||||||
f"Component {name} requires {data_bits} data bits for the uart bus"
|
f"Component {name} requires {data_bits} data bits for the uart referenced by {uart_bus}"
|
||||||
)
|
)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def validate_parity(value):
|
def validate_parity(value):
|
||||||
if value != parity:
|
if value != parity:
|
||||||
raise cv.Invalid(
|
raise cv.Invalid(
|
||||||
f"Component {name} requires parity {parity} for the uart bus"
|
f"Component {name} requires parity {parity} for the uart referenced by {uart_bus}"
|
||||||
)
|
)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def validate_stop_bits(value):
|
def validate_stop_bits(value):
|
||||||
if value != stop_bits:
|
if value != stop_bits:
|
||||||
raise cv.Invalid(
|
raise cv.Invalid(
|
||||||
f"Component {name} requires {stop_bits} stop bits for the uart bus"
|
f"Component {name} requires {stop_bits} stop bits for the uart referenced by {uart_bus}"
|
||||||
)
|
)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@ -316,14 +317,14 @@ def final_validate_device_schema(
|
||||||
hub_schema[
|
hub_schema[
|
||||||
cv.Required(
|
cv.Required(
|
||||||
CONF_TX_PIN,
|
CONF_TX_PIN,
|
||||||
msg=f"Component {name} requires this uart bus to declare a tx_pin",
|
msg=f"Component {name} requires uart referenced by {uart_bus} to declare a tx_pin",
|
||||||
)
|
)
|
||||||
] = validate_pin(CONF_TX_PIN, device)
|
] = validate_pin(CONF_TX_PIN, device)
|
||||||
if require_rx and uart_id_type_str in NATIVE_UART_CLASSES:
|
if require_rx and uart_id_type_str in NATIVE_UART_CLASSES:
|
||||||
hub_schema[
|
hub_schema[
|
||||||
cv.Required(
|
cv.Required(
|
||||||
CONF_RX_PIN,
|
CONF_RX_PIN,
|
||||||
msg=f"Component {name} requires this uart bus to declare a rx_pin",
|
msg=f"Component {name} requires uart referenced by {uart_bus} to declare a rx_pin",
|
||||||
)
|
)
|
||||||
] = validate_pin(CONF_RX_PIN, device)
|
] = validate_pin(CONF_RX_PIN, device)
|
||||||
if baud_rate is not None:
|
if baud_rate is not None:
|
||||||
|
@ -337,7 +338,7 @@ def final_validate_device_schema(
|
||||||
return cv.Schema(hub_schema, extra=cv.ALLOW_EXTRA)(hub_config)
|
return cv.Schema(hub_schema, extra=cv.ALLOW_EXTRA)(hub_config)
|
||||||
|
|
||||||
return cv.Schema(
|
return cv.Schema(
|
||||||
{cv.Required(CONF_UART_ID): fv.id_declaration_match_schema(validate_hub)},
|
{cv.Required(uart_bus): fv.id_declaration_match_schema(validate_hub)},
|
||||||
extra=cv.ALLOW_EXTRA,
|
extra=cv.ALLOW_EXTRA,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue