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

Revision history [back]

EnergyPlus Python API vs. EMS for Runtime Window Control

I'm encountering an issue where dynamically changing window constructions at runtime using the EnergyPlus Python API yields significantly different simulation results (e.g., heating coil rates) compared to using EMS for the exact same control logic.

When all the windows are assigned to construction B in FenestrationSurface:Detailed, and then used either EMS or Python API to control the windows to always be construction A, I get different results. EMS controller produces the similar heating coil rates results as the case when all the windows are initially assigned to construction A in FenestrationSurface:Detailed without any controllers. However, the Python API controller yields different results, indicating that the initial Construction B assignment in FenestrationSurface:Detailed still significantly impacts the output, even after the controller attempts to override it to Construction A. This suggests the Python API's controller isn't fully integrating necessary recalculations within the simulation engine. Window transmitted solar radiation and reported construction index indicate the window construction are updated properly.

Has anyone experienced similar issues or have insights into why the Python API's runtime control might differ from EMS in this way?

You can find the detailed GitHub issue report here: (https://github.com/NREL/EnergyPlus/issues/11123)

EnergyPlus Python API vs. EMS for Runtime Window Control

I'm encountering an issue where dynamically changing window constructions at runtime using the EnergyPlus Python API yields significantly different simulation results (e.g., heating coil rates) compared to using EMS for the exact same control logic.

When all the windows are assigned to construction B in FenestrationSurface:Detailed, and then used either EMS or Python API to control the windows to always be construction A, I get different results. EMS controller produces the similar heating coil rates results as the case when all the windows are initially assigned to construction A in FenestrationSurface:Detailed without any controllers. However, the Python API controller yields different results, indicating that the initial Construction B assignment in FenestrationSurface:Detailed still significantly impacts the output, even after the controller attempts to override it to Construction A. This suggests the Python API's controller isn't fully integrating necessary recalculations within the simulation engine. Window transmitted solar radiation and reported construction index indicate the window construction are updated properly.

Has anyone experienced similar issues or have insights into why the Python API's runtime control might differ from EMS in this way?

You can find the detailed GitHub issue report here: (https://github.com/NREL/EnergyPlus/issues/11123)