Basically i need to output variables (zone air temperature, zone air humidity, etc) each time step from EnergyPlus, instead of at the end of whole simulation. By that way, external scrip can read the outputs from EnergyPlus each timestep, and make some changes by external scripts and send back to EnergyPlus for next timestep calculations. I know it can be done similarly by EMS objects in EnergyPlus. It is not easy to implement my control logics through EMS.
But I plan to build the coupling platform between Python/C/C++ and EnergyPlus. Current tools can do similar things, but they are all hard to manipulate, like MLE+(no longer supported 4 years ago), BCVTB(lacking detailed manuals and the example files are limited), FMU(Matlab FMU is not free, and Matlab is not free either).