First time here? Check out the Help page!
1 | initial version |
The first severe error message indicates that the construction assembly name referenced by the EMS Construction Index Variable EMS_Cons_High_Abs is not found in the model. In DesignBuilder, you need to create a construction assembly named High Absorptance Construction to match what the EMS Construction Index Variable is referencing. While you're doing that, you should also make sure that there is a construction assembly named Low Absorptance Construction that the EMS_Cons_Low_Abs EMS Construction Index Variable is referencing.
Besides that fix, another issue that I see is that in your EMS Program, you are setting the Actuator for each surface to the name of a Material object instead of the name of the EMS Construction Index Variable. Your program should be updated like below (assuming you want high absorptance when surface temperature is < 28 C):
EnergyManagementSystem:Program,
Thermo,
<ForAllExternalSurfaces>
if Surface_Outside_Face_Temperature_<LoopSurfaceVariableName> < 28,
set Surface_Cons_State_<LoopSurfaceVariableName> = EMS_Cons_High_Abs, ! High absorptance (darker)
elseif Surface_Outside_Face_Temperature_<LoopSurfaceVariableName> > 28,
set Surface_Cons_State_<LoopSurfaceVariableName> = EMS_Cons_Low_Abs, ! Low absorptance (lighter)
endif,
<LoopNextSurface>
;
2 | No.2 Revision |
The first severe error message indicates that the construction assembly name referenced by the EMS Construction Index Variable EMS Construction Index Variable EMS_Cons_High_Abs is not found in the model. In DesignBuilder, you need to create a construction assembly named High Absorptance Construction to match what the EMS Construction Index Variable is referencing. While you're doing that, you should also make sure that there is a construction assembly named Low Absorptance Construction that the EMS_Cons_Low_Abs EMS Construction Index Variable is referencing.
For more background, you can see an example of using EMS to apply thermochromic windows here.
Besides that fix, another issue that I see is that in your EMS Program, you are setting the Actuator for each surface to the name of a Material object instead of the name of the EMS Construction Index Variable. Your program should be updated like below (assuming you want high absorptance when surface temperature is < 28 C):
EnergyManagementSystem:Program,
Thermo,
<ForAllExternalSurfaces>
if Surface_Outside_Face_Temperature_<LoopSurfaceVariableName> < 28,
set Surface_Cons_State_<LoopSurfaceVariableName> = EMS_Cons_High_Abs, ! High absorptance (darker)
elseif Surface_Outside_Face_Temperature_<LoopSurfaceVariableName> > 28,
set Surface_Cons_State_<LoopSurfaceVariableName> = EMS_Cons_Low_Abs, ! Low absorptance (lighter)
endif,
<LoopNextSurface>
;