import esphome.codegen as cg import esphome.config_validation as cv from esphome.components import text from . import AP2Hub, ap2_hub_ns CONF_AP2_HUB_ID = "ap2_hub_id" CONF_SLOT = "slot" AP2MacText = ap2_hub_ns.class_("AP2MacText", text.Text, cg.Component) # "AA:BB:CC:DD:EE:FF" is 17 chars; allow empty to clear. CONFIG_SCHEMA = text.text_schema(AP2MacText).extend( { cv.GenerateID(CONF_AP2_HUB_ID): cv.use_id(AP2Hub), cv.Required(CONF_SLOT): cv.int_range(min=0, max=1), } ).extend(cv.COMPONENT_SCHEMA) async def to_code(config): var = await text.new_text(config, min_length=0, max_length=17) await cg.register_component(var, config) parent = await cg.get_variable(config[CONF_AP2_HUB_ID]) cg.add(var.set_hub(parent)) cg.add(var.set_slot(config[CONF_SLOT]))