I've been doing this lately using an HeatExchanger:AirToAir:SensibleAndLatent (with zero latent effectiveness) on a 100% outside air loop that I can manipulate to have the relief side of the outdoor air mixer stand in for my exhaust air path. This facilitates workflow entirely in the application or with OpenStudio measures, without needing EMS (yet). The previous external calculation/EMS/plant loop method was based on the flawed assumption of constant thermal effectiveness at various air flow rates. The air-air hx allows for effectiveness to vary linearly based on airflow, which I've confirmed with some manufacturers is valid for run around loops. However, typical constant fluid flow loops will see a reduction of thermal effectiveness at turned down airflow. If your system has variable fluid flow, it's possible to see an effectiveness increase at lower flow rates. Another advantage of the Air to Air HX is it can support the effect of adding adiabatic cooling of the exhaust air with an evaporative cooler to increase cooling effectiveness.
The original work was done in OpenStudio, but using EnergyPlus measures to insert the EMS code. Neither of those two tasks are exceedingly complicated in themselves: reference the 'EnergyPlus measures' section of the measure writing guide, the Application Guide for EMS, and with some digging you can find handy examples of energyplus measures that use EMS.