mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +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:
		| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user