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

Revision history [back]

I've managed to find a very inelegant way of doing this if anyone else is following along with the same question. I'd prefer a more straightforward method, but here is what I have thus far.

1) Set your heating/cooling setpoints well out of the way of what your system will ever hit.

2) Have an if statement that runs on each timestep which checks an externally managed setpoint and conditions of activation of whichever system you want to run.

3) Directly modify the heating/cooling setpoint within that timestep via the if statment to the externally managed setpoint, if you want to do this at 100-0 then this modification should be extremely high (I'm using 50C and it seems to be working)

4) Use api.exchange.set_actuator_value(state, coolingSch_hndl, 1) to allow the specific actuator you want to allow to run to run.

This will allow the system to function much more similarly to the ON-OFF functions available in actual installations rather than the variable allowances generated by EnergyPlus, though it is limited by the resolution of the timesteps which isn't optimal. There also appears to be some control left over meaning you are never getting 100% application of the system. But this IMO is a much better representation of how a system like this would actually work in the real world (minimal throttling)