Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

EnergyPlus output variables are updated at two time scales, zone timestep and HVAC timestep. Within EMS programs, one must be careful to use the proper calling point in order to update values at the correct timestep, and with custom output variables, these must align with the underlying values that are feeding into it.

In this case, the sensor variables for ACConsumption are "Air System Electric Energy" and "Zone Packaged Terminal Heat Pump Electric Energy". These values both change at the HVAC timestep. You can check any output variable's update frequency by consulting the rdd output:

HVAC,Sum,Zone Packaged Terminal Heat Pump Electric Energy [J]
HVAC,Sum,Air System Electric Energy [J]

In the EMS program, the calling point is EndOfZoneTimestepBeforeZoneReporting and the new output variables are specified as ZoneTimestep. That's why you got good agreement with "Zone Mean Air Temperature" which is a zone timestep variable, but not with "Zone Air Temperature" which is a system timstep variable.

So, for this to work:

  1. For EnergyManagementSystem:OutputVariable, ACConsumption, change the "Update Frequency" to SystemTimestep.
  2. For EnergyManagementSystem:ProgramCallingManager, ACconsumptionProgram, change the "EnergyPlus Model Calling Point" to EndOfSystemTimestepAfterHVACReporting.