async def METHOD_NAME(config, action_id, template_args, args):
    paren = await cg.get_variable(config[CONF_ID])
    var = cg.new_Pvariable(action_id, template_args, paren)
    template_ = await cg.templatable(config[CONF_LENGTH], args, cg.uint16)
    cg.add(var.set_length(template_))
    template_ = await cg.templatable(config[CONF_PROTOCOL], args, cg.uint16)
    cg.add(var.set_protocol(template_))
    template_ = await cg.templatable(config[CONF_CODE], args, cg.std_string)
    cg.add(var.set_code(template_))
    return var