First time here? Check out the Help page!
1 | initial version |
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:
EnergyManagementSystem:OutputVariable, ACConsumption
, change the "Update Frequency" to SystemTimestep.EnergyManagementSystem:ProgramCallingManager, ACconsumptionProgram
, change the "EnergyPlus Model Calling Point" to EndOfSystemTimestepAfterHVACReporting.