mirror of
https://github.com/esphome/esphome.git
synced 2025-08-01 16:07:47 +00:00
OpenThread - add Device Type (#9272)
Co-authored-by: mc <mc@debian> Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
parent
56a963dfe6
commit
4cdc804c17
@ -11,6 +11,7 @@ from esphome.const import CONF_CHANNEL, CONF_ENABLE_IPV6, CONF_ID
|
|||||||
import esphome.final_validate as fv
|
import esphome.final_validate as fv
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
|
CONF_DEVICE_TYPE,
|
||||||
CONF_EXT_PAN_ID,
|
CONF_EXT_PAN_ID,
|
||||||
CONF_FORCE_DATASET,
|
CONF_FORCE_DATASET,
|
||||||
CONF_MDNS_ID,
|
CONF_MDNS_ID,
|
||||||
@ -32,6 +33,11 @@ AUTO_LOAD = ["network"]
|
|||||||
CONFLICTS_WITH = ["wifi"]
|
CONFLICTS_WITH = ["wifi"]
|
||||||
DEPENDENCIES = ["esp32"]
|
DEPENDENCIES = ["esp32"]
|
||||||
|
|
||||||
|
CONF_DEVICE_TYPES = [
|
||||||
|
"FTD",
|
||||||
|
"MTD",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def set_sdkconfig_options(config):
|
def set_sdkconfig_options(config):
|
||||||
# and expose options for using SPI/UART RCPs
|
# and expose options for using SPI/UART RCPs
|
||||||
@ -82,7 +88,7 @@ def set_sdkconfig_options(config):
|
|||||||
add_idf_sdkconfig_option("CONFIG_OPENTHREAD_SRP_CLIENT_MAX_SERVICES", 5)
|
add_idf_sdkconfig_option("CONFIG_OPENTHREAD_SRP_CLIENT_MAX_SERVICES", 5)
|
||||||
|
|
||||||
# TODO: Add suport for sleepy end devices
|
# TODO: Add suport for sleepy end devices
|
||||||
add_idf_sdkconfig_option("CONFIG_OPENTHREAD_FTD", True) # Full Thread Device
|
add_idf_sdkconfig_option(f"CONFIG_OPENTHREAD_{config.get(CONF_DEVICE_TYPE)}", True)
|
||||||
|
|
||||||
|
|
||||||
openthread_ns = cg.esphome_ns.namespace("openthread")
|
openthread_ns = cg.esphome_ns.namespace("openthread")
|
||||||
@ -107,6 +113,9 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
cv.GenerateID(): cv.declare_id(OpenThreadComponent),
|
cv.GenerateID(): cv.declare_id(OpenThreadComponent),
|
||||||
cv.GenerateID(CONF_SRP_ID): cv.declare_id(OpenThreadSrpComponent),
|
cv.GenerateID(CONF_SRP_ID): cv.declare_id(OpenThreadSrpComponent),
|
||||||
cv.GenerateID(CONF_MDNS_ID): cv.use_id(MDNSComponent),
|
cv.GenerateID(CONF_MDNS_ID): cv.use_id(MDNSComponent),
|
||||||
|
cv.Optional(CONF_DEVICE_TYPE, default="FTD"): cv.one_of(
|
||||||
|
*CONF_DEVICE_TYPES, upper=True
|
||||||
|
),
|
||||||
cv.Optional(CONF_FORCE_DATASET): cv.boolean,
|
cv.Optional(CONF_FORCE_DATASET): cv.boolean,
|
||||||
cv.Optional(CONF_TLV): cv.string_strict,
|
cv.Optional(CONF_TLV): cv.string_strict,
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
CONF_DEVICE_TYPE = "device_type"
|
||||||
CONF_EXT_PAN_ID = "ext_pan_id"
|
CONF_EXT_PAN_ID = "ext_pan_id"
|
||||||
CONF_FORCE_DATASET = "force_dataset"
|
CONF_FORCE_DATASET = "force_dataset"
|
||||||
CONF_MDNS_ID = "mdns_id"
|
CONF_MDNS_ID = "mdns_id"
|
||||||
|
@ -2,6 +2,7 @@ network:
|
|||||||
enable_ipv6: true
|
enable_ipv6: true
|
||||||
|
|
||||||
openthread:
|
openthread:
|
||||||
|
device_type: FTD
|
||||||
channel: 13
|
channel: 13
|
||||||
network_name: OpenThread-8f28
|
network_name: OpenThread-8f28
|
||||||
network_key: 0xdfd34f0f05cad978ec4e32b0413038ff
|
network_key: 0xdfd34f0f05cad978ec4e32b0413038ff
|
||||||
|
Loading…
x
Reference in New Issue
Block a user