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

Revision history [back]

click to hide/show revision 1
initial version

May I try it first again :).

If you created a dummy zone with a water convector I would set up an availability schedule for a water convector to 0 and than overwrite it by EMS as a function of loop temperature (for example you can use pump leaving temperature as a sensor node). EMS code should not be complex. It should look something like:

Schedule:Constant,AvailOff,On/Off,0; !- baseboard heater availability schedule

EnergyManagementSystem:Sensor, !- pump leaving water temperature node         
   PumpTemp,      
   HW Pump Out Node,   
   System Node Temperature;

EnergyManagementSystem:Actuator,
   AvailSCH_Overwrite,   
   AvailOff,       
   Schedule:Constant,     
   Schedule Value;       

EnergyManagementSystem:ProgramCallingManager,
   Overwrite Example,      
   BeginTimestepBeforePredictor, !- You might need to use different EMS calling point here
   OverwriteProg;        

EnergyManagementSystem:Program,
   OverwriteProg,       
   IF PumpTemp > 85.5,  !- I'm not sure what is the loop limit in your case, but you can add 0.5C over the limit to make a dummy heater switched on 
   Set AvailSCH_Overwrite = 1,
   ELSE,                 
   Set AvailSCH_Overwrite = 0, 
   ENDIF;

Cheers, IK

May I try it first again :).

If you created a dummy zone with a water convector I would set up an availability schedule for a water convector to 0 and than overwrite it by EMS as a function of loop temperature (for example you can use pump leaving temperature as a sensor node). EMS code should not be complex. It should look something like:

Schedule:Constant,AvailOff,On/Off,0; !- baseboard heater availability schedule

EnergyManagementSystem:Sensor, !- pump leaving water temperature node         
   PumpTemp,      
   HW Pump Out Node,   
   System Node Temperature;

EnergyManagementSystem:Actuator,
   AvailSCH_Overwrite,   
   AvailOff,       
   Schedule:Constant,     
   Schedule Value;       

EnergyManagementSystem:ProgramCallingManager,
   Overwrite Example,      
   BeginTimestepBeforePredictor, !- You might need to use different EMS calling point here
   OverwriteProg;        

EnergyManagementSystem:Program,
   OverwriteProg,       
   IF PumpTemp > 85.5, 80.5,  !- I'm not sure what is the loop limit in your case, but you can add 0.5C over the limit to make a dummy heater switched on 
   Set AvailSCH_Overwrite = 1,
   ELSE,                 
   Set AvailSCH_Overwrite = 0, 
   ENDIF;

Cheers, IK