Using addAccis() to apply adaptive setpoint temperatures

We are going to apply the adaptive setpoint temperatures to the idf “TestModel_onlyGeometryForVRFsystem_2zones_CalcVent_V2310”, that can be found in the path accim/sample_files/sample IDFs/input_IDFs. However, for clarity purposes, has been renamed to “TestModel.idf”.

First of all, let’s see what files we do have in the folder:

[1]:
import os
os.listdir()
[1]:
['.ipynb_checkpoints', 'TestModel.idf', 'using_addAccis.ipynb', '__init__.py']

You can see there is/are a/some IDF file/files there, which is/are:

[2]:
input_idf = [i for i in os.listdir() if i.endswith('.idf')]
print(*input_idf, sep='\n')
TestModel.idf

So, let’s apply adaptive setpoint temperatures.

1. General use

1.1 Short version

First, let’s do this using the short version. When we run the code below (not entering any argument), accim will request some information to generate the output idfs. We are going to enter the following information in bold:

Enter the ScriptType ( for VRFsystem with full air-conditioning mode: vrf_ac; for VRFsystem with mixed-mode: vrf_mm; for ExistingHVAC with mixed mode: ex_mm; for ExistingHVAC with full air-conditioning mode: ex_ac ): vrf_mm

Enter the SupplyAirTempInputMethod ( for Supply Air Temperature: supply air temperature; for Temperature Difference: temperature difference; ): temperature difference

Do you want to keep the existing outputs (true or false)?: false

Enter the Output type (standard, simplified or detailed): standard

Enter the Output frequencies separated by space (timestep, hourly, daily, monthly, runperiod): hourly runperiod

Do you want to generate a dataframe to see all outputs? (true or false): false

Enter the EnergyPlus version (9.1 to 23.1): 23.1

Enter the Temperature Control method (temperature or pmv): temperature

Then, accim will report the information we just entered, and will start generating a generic idf file, which will be modified based on the remaining arguments accim will request in a second stage. Again, we are going to enter the following information in bold:

Enter the Comfort Standard numbers separated by space (…): 1 14

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the Category numbers separated by space (…): 1 2 3 80 90

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the Comfort Mode numbers separated by space (…): 0 0.1 0.2 0.3 0.4 0.5 1 1.1 1.2 1.3 1.4 1.5 2 3

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the setpoint accuracy number (any number greater than 0): 100

Are you sure the number is correct? [y or [] / n]: (just hit enter)

Enter the start of the cooling season in numeric date format dd/mm or the day of the year: 01/11

Are you sure the number is correct? [y or [] / n]: (just hit enter)

Enter the end of the cooling season in numeric date format dd/mm or the day of the year: 01/03

Are you sure the number is correct? [y or [] / n]: (just hit enter)

Enter the HVAC Mode numbers separated by space (…): 2

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the Ventilation Control numbers separated by space (…): 2

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the maximum temperature difference number for Ventilation Opening Factor (any number larger than 0): 20

Are you sure the number is correct? [y or [] / n]: (just hit enter)

Enter the minimum temperature difference number for Ventilation Opening Factor (any number larger than 0 and smaller than the maximum temperature difference number): 1

Are you sure the number is correct? [y or [] / n]: (just hit enter)

Enter the multiplier number for Ventilation Opening Factor (any number between 0 and 1): 0.2

Are you sure the number is correct? [y or [] / n]: (just hit enter)

Enter the VSToffset numbers separated by space (if omitted, will be 0): (just hit enter)

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the MinOToffset numbers separated by space (if omitted, will be 50): (just hit enter)

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the MaxWindSpeed numbers separated by space (if omitted, will be 50): (just hit enter)

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the ASTtol value from (if omitted, will be 0.1): (just hit enter)

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the ASTtol value to (if omitted, will be 0.1): (just hit enter)

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

Enter the ASTtol value steps (if omitted, will be 0.1): (just hit enter)

Are you sure the numbers are correct? [y or [] / n]: (just hit enter)

And finally:

Do you still want to run ACCIS? [y/n]: y

[ ]:
from accim.sim import accis
accis.addAccis()

--------------------------------------------------------
Adaptive-Comfort-Control-Implemented Model (ACCIM) v0.7.5
--------------------------------------------------------

This tool allows to apply adaptive setpoint temperatures.
For further information, please read the documentation:
https://accim.readthedocs.io/en/master/
For a visual understanding of the tool, please visit the following jupyter notebooks:
-    Using addAccis() to apply adaptive setpoint temperatures
https://accim.readthedocs.io/en/master/jupyter_notebooks/addAccis/using_addAccis.html
-    Using rename_epw_files() to rename the EPWs for proper data analysis after simulation
https://accim.readthedocs.io/en/master/jupyter_notebooks/rename_epw_files/using_rename_epw_files.html
-    Using runEp() to directly run simulations with EnergyPlus
https://accim.readthedocs.io/en/master/jupyter_notebooks/runEp/using_runEp.html
-    Using the class Table() for data analysis
https://accim.readthedocs.io/en/master/jupyter_notebooks/Table/using_Table.html
-    Full example
https://accim.readthedocs.io/en/master/jupyter_notebooks/full_example/full_example.html

Starting with the process.

Now, you are going to be asked to enter some information for different arguments to generate the output IDFs with adaptive setpoint temperatures.
If you are not sure about how to use these parameters, please take a look at the documentation in the following link:
https://accim.readthedocs.io/en/master/4_detailed%20use.html

Please, enter the following information:

Enter the ScriptType (
for VRFsystem with full air-conditioning mode: vrf_ac;
for VRFsystem with mixed-mode: vrf_mm;
for ExistingHVAC with mixed mode: ex_mm;
for ExistingHVAC with full air-conditioning mode: ex_ac
):  vrf_mm

Enter the SupplyAirTempInputMethod (
for Supply Air Temperature: supply air temperature;
for Temperature Difference: temperature difference;
):  temperature difference

Do you want to keep the existing outputs (true or false)?:  false

Enter the Output type (standard, simplified, detailed or custom):  standard

Enter the Output frequencies separated by space (timestep, hourly, daily, monthly, runperiod):  hourly runperiod

Do you want to generate a dataframe to see all outputs? (true or false):  false

Enter the EnergyPlus version (9.1 to 25.1, or auto):  25.1

Enter the Temperature Control method (temperature or pmv):  temperature
Basic input data:
ScriptType is: vrf_mm
Supply Air Temperature Input Method is: temperature difference
Output type is: standard
Output frequencies are:
['hourly', 'runperiod']
EnergyPlus version is: 25.1
Temperature Control method is: temperature

=======================START OF GENERIC IDF FILE GENERATION PROCESS=======================

Starting with file:
TestModel
IDD location is: C:/EnergyPlusV25-1-0/Energy+.idd
The occupied zones in the model TestModel are:
BLOCK1:ZONE2
BLOCK1:ZONE1
The windows and doors in the model TestModel are:
Block1_Zone2_Wall_3_0_0_0_0_0_Win
Block1_Zone2_Wall_4_0_0_0_0_0_Win
Block1_Zone2_Wall_5_0_0_0_0_0_Win
Block1_Zone1_Wall_2_0_0_0_0_0_Win
Block1_Zone1_Wall_3_0_0_0_0_0_Win
Block1_Zone1_Wall_5_0_0_0_0_0_Win
The zones in the model TestModel are:
BLOCK1_ZONE2
BLOCK1_ZONE1
The people objects in the model have been amended.
BLOCK1:ZONE2 Thermostat has been added
BLOCK1:ZONE1 Thermostat has been added
On Schedule already was in the model
TypOperativeTempControlSch Schedule already was in the model
All ZoneHVAC:IdealLoadsAirSystem Heating and Cooling availability schedules has been set to on
On 24/7 Schedule already was in the model
Control type schedule: Always 4 Schedule has been added
Relative humidity setpoint schedule: Always 50.00 Schedule has been added
Heating Fanger comfort setpoint: Always -0.5 Schedule has been added
Cooling Fanger comfort setpoint: Always  0.1 Schedule has been added
Zone CO2 setpoint: Always 900ppm Schedule has been added
Min CO2 concentration: Always 600ppm Schedule has been added
Generic contaminant setpoint: Always 0.5ppm Schedule has been added
Air distribution effectiveness (always 1) Schedule has been added
VRF Heating Cooling (Northern Hemisphere) Schedule has been added
DefaultFanEffRatioCurve Curve:Cubic Object has been added
VRFTUCoolCapFT Curve:Cubic Object has been added
VRFTUHeatCapFT Curve:Cubic Object has been added
VRFCoolCapFTBoundary Curve:Cubic Object has been added
VRFCoolEIRFTBoundary Curve:Cubic Object has been added
CoolingEIRLowPLR Curve:Cubic Object has been added
VRFHeatCapFTBoundary Curve:Cubic Object has been added
VRFHeatEIRFTBoundary Curve:Cubic Object has been added
HeatingEIRLowPLR Curve:Cubic Object has been added
DefaultFanPowerRatioCurve Curve:Exponent Object has been added
DXHtgCoilDefrostEIRFT Curve:Biquadratic Object has been added
VRFCoolCapFT Curve:Biquadratic Object has been added
VRFCoolCapFTHi Curve:Biquadratic Object has been added
VRFCoolEIRFT Curve:Biquadratic Object has been added
VRFCoolEIRFTHi Curve:Biquadratic Object has been added
VRFHeatCapFT Curve:Biquadratic Object has been added
VRFHeatCapFTHi Curve:Biquadratic Object has been added
VRFHeatEIRFT Curve:Biquadratic Object has been added
VRFHeatEIRFTHi Curve:Biquadratic Object has been added
CoolingLengthCorrectionFactor Curve:Biquadratic Object has been added
VRF Piping Correction Factor for Length in Heating Mode Curve:Biquadratic Object has been added
VRF Heat Recovery Cooling Capacity Modifier Curve:Biquadratic Object has been added
VRF Heat Recovery Cooling Energy Modifier Curve:Biquadratic Object has been added
VRF Heat Recovery Heating Capacity Modifier Curve:Biquadratic Object has been added
VRF Heat Recovery Heating Energy Modifier Curve:Biquadratic Object has been added
VRFACCoolCapFFF Curve:Quadratic Object has been added
CoolingEIRHiPLR Curve:Quadratic Object has been added
VRFCPLFFPLR Curve:Quadratic Object has been added
HeatingEIRHiPLR Curve:Quadratic Object has been added
CoolingCombRatio Curve:Linear Object has been added
HeatingCombRatio Curve:Linear Object has been added
VRF Outdoor Unit_BLOCK1:ZONE2 AirConditioner:VariableRefrigerantFlow Object has been added
VRF Outdoor Unit_BLOCK1:ZONE1 AirConditioner:VariableRefrigerantFlow Object has been added
VRF Outdoor Unit_BLOCK1:ZONE2 Outdoor Air Node Object has been added
VRF Outdoor Unit_BLOCK1:ZONE2 Zone List Object has been added
VRF Outdoor Unit_BLOCK1:ZONE1 Outdoor Air Node Object has been added
VRF Outdoor Unit_BLOCK1:ZONE1 Zone List Object has been added
BLOCK1:ZONE2 Sizing:Zone Object has been added
BLOCK1:ZONE1 Sizing:Zone Object has been added
BLOCK1:ZONE2 Design Specification Outdoor Air Object has been added
BLOCK1:ZONE1 Design Specification Outdoor Air Object has been added
BLOCK1:ZONE2 Design Specification Zone Air Distribution Object has been added
BLOCK1:ZONE1 Design Specification Zone Air Distribution Object has been added
BLOCK1:ZONE2 Nodelist Objects has been added
BLOCK1:ZONE1 Nodelist Objects has been added
BLOCK1:ZONE2 ZoneHVAC:EquipmentConnections Objects has been added
BLOCK1:ZONE1 ZoneHVAC:EquipmentConnections Objects has been added
BLOCK1:ZONE2 ZoneHVAC:EquipmentList Objects has been added
BLOCK1:ZONE1 ZoneHVAC:EquipmentList Objects has been added
BLOCK1:ZONE2 ZoneHVAC:TerminalUnit:VariableRefrigerantFlow Object has been added
BLOCK1:ZONE1 ZoneHVAC:TerminalUnit:VariableRefrigerantFlow Object has been added
BLOCK1:ZONE2 Coil:Cooling:DX:VariableRefrigerantFlow Object has been added
BLOCK1:ZONE1 Coil:Cooling:DX:VariableRefrigerantFlow Object has been added
BLOCK1:ZONE2 Coil:Heating:DX:VariableRefrigerantFlow Object has been added
BLOCK1:ZONE1 Coil:Heating:DX:VariableRefrigerantFlow Object has been added
BLOCK1:ZONE2 Fan:ConstantVolume Object has been added
BLOCK1:ZONE1 Fan:ConstantVolume Object has been added
Vent_SP_temp Schedule has been added
AHST_Sch_BLOCK1_ZONE2 Schedule has been added
ACST_Sch_BLOCK1_ZONE2 Schedule has been added
AHST_Sch_BLOCK1_ZONE1 Schedule has been added
ACST_Sch_BLOCK1_ZONE1 Schedule has been added
Added - SetComfTemp Program
Added - CountHours_BLOCK1_ZONE2 Program
Added - CountHours_BLOCK1_ZONE1 Program
Added - SetAppLimits Program
Added - ApplyCAT Program
Added - SetAST Program
Added - SetASTnoTol Program
Added - CountHoursNoApp_BLOCK1_ZONE2 Program
Added - SetGeoVarBLOCK1_ZONE2 Program
Added - CountHoursNoApp_BLOCK1_ZONE1 Program
Added - SetGeoVarBLOCK1_ZONE1 Program
Added - SetInputData Program
Added - SetVOFinputData Program
Added - SetVST Program
Added - ApplyAST_BLOCK1_ZONE2 Program
Added - ApplyAST_BLOCK1_ZONE1 Program
Added - SetMyVOF_Block1_Zone2_Wall_3_0_0_0_0_0_Win Program
Added - SetWindowOperation_Block1_Zone2_Wall_3_0_0_0_0_0_Win Program
Added - SetMyVOF_Block1_Zone2_Wall_4_0_0_0_0_0_Win Program
Added - SetWindowOperation_Block1_Zone2_Wall_4_0_0_0_0_0_Win Program
Added - SetMyVOF_Block1_Zone2_Wall_5_0_0_0_0_0_Win Program
Added - SetWindowOperation_Block1_Zone2_Wall_5_0_0_0_0_0_Win Program
Added - SetMyVOF_Block1_Zone1_Wall_2_0_0_0_0_0_Win Program
Added - SetWindowOperation_Block1_Zone1_Wall_2_0_0_0_0_0_Win Program
Added - SetMyVOF_Block1_Zone1_Wall_3_0_0_0_0_0_Win Program
Added - SetWindowOperation_Block1_Zone1_Wall_3_0_0_0_0_0_Win Program
Added - SetMyVOF_Block1_Zone1_Wall_5_0_0_0_0_0_Win Program
Added - SetWindowOperation_Block1_Zone1_Wall_5_0_0_0_0_0_Win Program
Added - Comfort Temperature Output Variable
Added - Adaptive Cooling Setpoint Temperature Output Variable
Added - Adaptive Heating Setpoint Temperature Output Variable
Added - Adaptive Cooling Setpoint Temperature_No Tolerance Output Variable
Added - Adaptive Heating Setpoint Temperature_No Tolerance Output Variable
Added - z_test_ComfStand Output Variable
Added - z_test_ACSTaul Output Variable
Added - z_test_ACSTall Output Variable
Added - z_test_AHSTaul Output Variable
Added - z_test_AHSTall Output Variable
Added - z_test_CAT Output Variable
Added - z_test_ACSToffset Output Variable
Added - z_test_AHSToffset Output Variable
Added - z_test_ComfMod Output Variable
Added - z_test_ACSTtol Output Variable
Added - z_test_SetpointAcc Output Variable
Added - z_test_CustAST_m Output Variable
Added - z_test_CustAST_n Output Variable
Added - z_test_AHSTtol Output Variable
Added - Ventilation Setpoint Temperature Output Variable
Added - Minimum Outdoor Temperature for ventilation Output Variable
Added - Minimum Outdoor Temperature Difference for ventilation Output Variable
Added - Maximum Outdoor Temperature Difference for ventilation Output Variable
Added - Multiplier for Ventilation Opening Factor Output Variable
Added - Comfortable Hours_No Applicability_BLOCK1_ZONE2 Output Variable
Added - Comfortable Hours_No Applicability_BLOCK1_ZONE1 Output Variable
Added - Comfortable Hours_Applicability_BLOCK1_ZONE2 Output Variable
Added - Comfortable Hours_Applicability_BLOCK1_ZONE1 Output Variable
Added - Occupied Comfortable Hours_No Applicability_BLOCK1_ZONE2 Output Variable
Added - Occupied Comfortable Hours_No Applicability_BLOCK1_ZONE1 Output Variable
Added - Occupied Discomfortable Hours_No Applicability_BLOCK1_ZONE2 Output Variable
Added - Occupied Discomfortable Hours_No Applicability_BLOCK1_ZONE1 Output Variable
Added - Occupied Hours_BLOCK1_ZONE2 Output Variable
Added - Occupied Hours_BLOCK1_ZONE1 Output Variable
Added - Discomfortable Applicable Hot Hours_BLOCK1_ZONE2 Output Variable
Added - Discomfortable Applicable Hot Hours_BLOCK1_ZONE1 Output Variable
Added - Discomfortable Applicable Cold Hours_BLOCK1_ZONE2 Output Variable
Added - Discomfortable Applicable Cold Hours_BLOCK1_ZONE1 Output Variable
Added - Discomfortable Non Applicable Hot Hours_BLOCK1_ZONE2 Output Variable
Added - Discomfortable Non Applicable Hot Hours_BLOCK1_ZONE1 Output Variable
Added - Discomfortable Non Applicable Cold Hours_BLOCK1_ZONE2 Output Variable
Added - Discomfortable Non Applicable Cold Hours_BLOCK1_ZONE1 Output Variable
Added - Zone Floor Area_BLOCK1_ZONE2 Output Variable
Added - Zone Floor Area_BLOCK1_ZONE1 Output Variable
Added - Zone Air Volume_BLOCK1_ZONE2 Output Variable
Added - Zone Air Volume_BLOCK1_ZONE1 Output Variable
Added - People Occupant Count_BLOCK1_ZONE2 Output Variable
Added - People Occupant Count_BLOCK1_ZONE1 Output Variable
Added - Ventilation Hours_BLOCK1_ZONE2 Output Variable
Added - Ventilation Hours_BLOCK1_ZONE1 Output Variable
Global variables objects have been added
Internal variables objects have been added
Added - RMOT Sensor
Added - PMOT Sensor
Added - Occ_count_BLOCK1_ZONE2 Sensor
Added - Occ_count_BLOCK1_ZONE1 Sensor
Added - BLOCK1_ZONE2_OpT Sensor
Added - BLOCK1_ZONE2_WindSpeed Sensor
Added - BLOCK1_ZONE2_OutT Sensor
Added - BLOCK1_ZONE1_OpT Sensor
Added - BLOCK1_ZONE1_WindSpeed Sensor
Added - BLOCK1_ZONE1_OutT Sensor
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_OpT Sensor
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_WindSpeed Sensor
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_OutT Sensor
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_Occ_count Sensor
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_OpT Sensor
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_WindSpeed Sensor
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_OutT Sensor
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_Occ_count Sensor
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_OpT Sensor
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_WindSpeed Sensor
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_OutT Sensor
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_Occ_count Sensor
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_OpT Sensor
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_WindSpeed Sensor
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_OutT Sensor
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_Occ_count Sensor
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_OpT Sensor
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_WindSpeed Sensor
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_OutT Sensor
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_Occ_count Sensor
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_OpT Sensor
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_WindSpeed Sensor
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_OutT Sensor
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_Occ_count Sensor
Added - OutT Sensor
Added - AHST_Act_BLOCK1_ZONE2 Actuator
Added - ACST_Act_BLOCK1:ZONE2 Actuator
Added - AHST_Act_BLOCK1_ZONE1 Actuator
Added - ACST_Act_BLOCK1:ZONE1 Actuator
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_VentOpenFact Actuator
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_VentOpenFact Actuator
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_VentOpenFact Actuator
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_VentOpenFact Actuator
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_VentOpenFact Actuator
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_VentOpenFact Actuator
Added - BLOCK1_ZONE2_CoolCoil Sensor
Added - BLOCK1_ZONE2_HeatCoil Sensor
Added - BLOCK1_ZONE1_CoolCoil Sensor
Added - BLOCK1_ZONE1_HeatCoil Sensor
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_CoolCoil Sensor
Added - Block1_Zone2_Wall_3_0_0_0_0_0_Win_HeatCoil Sensor
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_CoolCoil Sensor
Added - Block1_Zone2_Wall_4_0_0_0_0_0_Win_HeatCoil Sensor
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_CoolCoil Sensor
Added - Block1_Zone2_Wall_5_0_0_0_0_0_Win_HeatCoil Sensor
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_CoolCoil Sensor
Added - Block1_Zone1_Wall_2_0_0_0_0_0_Win_HeatCoil Sensor
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_CoolCoil Sensor
Added - Block1_Zone1_Wall_3_0_0_0_0_0_Win_HeatCoil Sensor
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_CoolCoil Sensor
Added - Block1_Zone1_Wall_5_0_0_0_0_0_Win_HeatCoil Sensor
Added - SetComfTemp Program Calling Manager
Added - CountHours_BLOCK1_ZONE2 Program Calling Manager
Added - CountHours_BLOCK1_ZONE1 Program Calling Manager
Added - SetAppLimits Program Calling Manager
Added - ApplyCAT Program Calling Manager
Added - SetAST Program Calling Manager
Added - SetASTnoTol Program Calling Manager
Added - CountHoursNoApp_BLOCK1_ZONE2 Program Calling Manager
Added - SetGeoVarBLOCK1_ZONE2 Program Calling Manager
Added - CountHoursNoApp_BLOCK1_ZONE1 Program Calling Manager
Added - SetGeoVarBLOCK1_ZONE1 Program Calling Manager
Added - SetInputData Program Calling Manager
Added - SetVOFinputData Program Calling Manager
Added - SetVST Program Calling Manager
Added - ApplyAST_BLOCK1_ZONE2 Program Calling Manager
Added - ApplyAST_BLOCK1_ZONE1 Program Calling Manager
Added - SetMyVOF_Block1_Zone2_Wall_3_0_0_0_0_0_Win Program Calling Manager
Added - SetWindowOperation_Block1_Zone2_Wall_3_0_0_0_0_0_Win Program Calling Manager
Added - SetMyVOF_Block1_Zone2_Wall_4_0_0_0_0_0_Win Program Calling Manager
Added - SetWindowOperation_Block1_Zone2_Wall_4_0_0_0_0_0_Win Program Calling Manager
Added - SetMyVOF_Block1_Zone2_Wall_5_0_0_0_0_0_Win Program Calling Manager
Added - SetWindowOperation_Block1_Zone2_Wall_5_0_0_0_0_0_Win Program Calling Manager
Added - SetMyVOF_Block1_Zone1_Wall_2_0_0_0_0_0_Win Program Calling Manager
Added - SetWindowOperation_Block1_Zone1_Wall_2_0_0_0_0_0_Win Program Calling Manager
Added - SetMyVOF_Block1_Zone1_Wall_3_0_0_0_0_0_Win Program Calling Manager
Added - SetWindowOperation_Block1_Zone1_Wall_3_0_0_0_0_0_Win Program Calling Manager
Added - SetMyVOF_Block1_Zone1_Wall_5_0_0_0_0_0_Win Program Calling Manager
Added - SetWindowOperation_Block1_Zone1_Wall_5_0_0_0_0_0_Win Program Calling Manager
Added - OutputControl:Files object
Added - Output:VariableDictionary object
Added - Comfort Temperature Reporting FrequencyHourly Output:Variable data
Added - Adaptive Cooling Setpoint Temperature Reporting FrequencyHourly Output:Variable data
Added - Adaptive Heating Setpoint Temperature Reporting FrequencyHourly Output:Variable data
Added - Adaptive Cooling Setpoint Temperature_No Tolerance Reporting FrequencyHourly Output:Variable data
Added - Adaptive Heating Setpoint Temperature_No Tolerance Reporting FrequencyHourly Output:Variable data
Added - z_test_ComfStand Reporting FrequencyHourly Output:Variable data
Added - z_test_ACSTaul Reporting FrequencyHourly Output:Variable data
Added - z_test_ACSTall Reporting FrequencyHourly Output:Variable data
Added - z_test_AHSTaul Reporting FrequencyHourly Output:Variable data
Added - z_test_AHSTall Reporting FrequencyHourly Output:Variable data
Added - z_test_CAT Reporting FrequencyHourly Output:Variable data
Added - z_test_ACSToffset Reporting FrequencyHourly Output:Variable data
Added - z_test_AHSToffset Reporting FrequencyHourly Output:Variable data
Added - z_test_ComfMod Reporting FrequencyHourly Output:Variable data
Added - z_test_ACSTtol Reporting FrequencyHourly Output:Variable data
Added - z_test_SetpointAcc Reporting FrequencyHourly Output:Variable data
Added - z_test_CustAST_m Reporting FrequencyHourly Output:Variable data
Added - z_test_CustAST_n Reporting FrequencyHourly Output:Variable data
Added - z_test_AHSTtol Reporting FrequencyHourly Output:Variable data
Added - Ventilation Setpoint Temperature Reporting FrequencyHourly Output:Variable data
Added - Minimum Outdoor Temperature for ventilation Reporting FrequencyHourly Output:Variable data
Added - Minimum Outdoor Temperature Difference for ventilation Reporting FrequencyHourly Output:Variable data
Added - Maximum Outdoor Temperature Difference for ventilation Reporting FrequencyHourly Output:Variable data
Added - Multiplier for Ventilation Opening Factor Reporting FrequencyHourly Output:Variable data
Added - Comfortable Hours_No Applicability_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Comfortable Hours_No Applicability_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Comfortable Hours_Applicability_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Comfortable Hours_Applicability_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Occupied Comfortable Hours_No Applicability_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Occupied Comfortable Hours_No Applicability_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Occupied Discomfortable Hours_No Applicability_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Occupied Discomfortable Hours_No Applicability_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Occupied Hours_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Occupied Hours_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Applicable Hot Hours_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Applicable Hot Hours_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Applicable Cold Hours_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Applicable Cold Hours_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Non Applicable Hot Hours_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Non Applicable Hot Hours_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Non Applicable Cold Hours_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Discomfortable Non Applicable Cold Hours_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Zone Floor Area_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Zone Floor Area_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Zone Air Volume_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Zone Air Volume_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - People Occupant Count_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - People Occupant Count_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Ventilation Hours_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - Ventilation Hours_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - Zone Thermostat Operative Temperature Reporting FrequencyHourly Output:Variable data
Added - Zone Thermostat Air Temperature Reporting FrequencyHourly Output:Variable data
Added - Zone Operative Temperature Reporting FrequencyHourly Output:Variable data
Added - Zone Thermal Comfort CEN 15251 Adaptive Model Running Average Outdoor Air Temperature Reporting FrequencyHourly Output:Variable data
Added - Zone Thermal Comfort ASHRAE 55 Adaptive Model Running Average Outdoor Air Temperature Reporting FrequencyHourly Output:Variable data
Added - Cooling Coil Total Cooling Rate Reporting FrequencyHourly Output:Variable data
Added - Heating Coil Heating Rate Reporting FrequencyHourly Output:Variable data
Added - Facility Total HVAC Electric Demand Power Reporting FrequencyHourly Output:Variable data
Added - Facility Total HVAC Electricity Demand Rate Reporting FrequencyHourly Output:Variable data
Added - AFN Surface Venting Window or Door Opening Factor Reporting FrequencyHourly Output:Variable data
Added - AFN Zone Infiltration Air Change Rate Reporting FrequencyHourly Output:Variable data
Added - AFN Zone Infiltration Volume Reporting FrequencyHourly Output:Variable data
Added - AFN Zone Ventilation Air Change Rate Reporting FrequencyHourly Output:Variable data
Added - AFN Zone Ventilation Volume Reporting FrequencyHourly Output:Variable data
Added - Site Outdoor Air Drybulb Temperature Reporting FrequencyHourly Output:Variable data
Added - Site Wind Speed Reporting FrequencyHourly Output:Variable data
Added - Site Outdoor Air Relative Humidity Reporting FrequencyHourly Output:Variable data
Added - AHST_Sch_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - ACST_Sch_BLOCK1_ZONE2 Reporting FrequencyHourly Output:Variable data
Added - AHST_Sch_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - ACST_Sch_BLOCK1_ZONE1 Reporting FrequencyHourly Output:Variable data
Added - VRF Heat Pump Cooling Electricity Energy Reporting FrequencyHourly Output:Variable data
Added - VRF Heat Pump Heating Electricity Energy Reporting FrequencyHourly Output:Variable data
Added - BLOCK1_ZONE2 VRF Indoor Unit DX Cooling Coil Reporting FrequencyHourly Output:Variable data
Added - BLOCK1_ZONE2 VRF Indoor Unit DX Heating Coil Reporting Frequency Hourly Output:Variable data
Added - BLOCK1_ZONE1 VRF Indoor Unit DX Cooling Coil Reporting FrequencyHourly Output:Variable data
Added - BLOCK1_ZONE1 VRF Indoor Unit DX Heating Coil Reporting Frequency Hourly Output:Variable data
Added - Comfort Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Adaptive Cooling Setpoint Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Adaptive Heating Setpoint Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Adaptive Cooling Setpoint Temperature_No Tolerance Reporting FrequencyRunperiod Output:Variable data
Added - Adaptive Heating Setpoint Temperature_No Tolerance Reporting FrequencyRunperiod Output:Variable data
Added - z_test_ComfStand Reporting FrequencyRunperiod Output:Variable data
Added - z_test_ACSTaul Reporting FrequencyRunperiod Output:Variable data
Added - z_test_ACSTall Reporting FrequencyRunperiod Output:Variable data
Added - z_test_AHSTaul Reporting FrequencyRunperiod Output:Variable data
Added - z_test_AHSTall Reporting FrequencyRunperiod Output:Variable data
Added - z_test_CAT Reporting FrequencyRunperiod Output:Variable data
Added - z_test_ACSToffset Reporting FrequencyRunperiod Output:Variable data
Added - z_test_AHSToffset Reporting FrequencyRunperiod Output:Variable data
Added - z_test_ComfMod Reporting FrequencyRunperiod Output:Variable data
Added - z_test_ACSTtol Reporting FrequencyRunperiod Output:Variable data
Added - z_test_SetpointAcc Reporting FrequencyRunperiod Output:Variable data
Added - z_test_CustAST_m Reporting FrequencyRunperiod Output:Variable data
Added - z_test_CustAST_n Reporting FrequencyRunperiod Output:Variable data
Added - z_test_AHSTtol Reporting FrequencyRunperiod Output:Variable data
Added - Ventilation Setpoint Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Minimum Outdoor Temperature for ventilation Reporting FrequencyRunperiod Output:Variable data
Added - Minimum Outdoor Temperature Difference for ventilation Reporting FrequencyRunperiod Output:Variable data
Added - Maximum Outdoor Temperature Difference for ventilation Reporting FrequencyRunperiod Output:Variable data
Added - Multiplier for Ventilation Opening Factor Reporting FrequencyRunperiod Output:Variable data
Added - Comfortable Hours_No Applicability_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Comfortable Hours_No Applicability_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Comfortable Hours_Applicability_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Comfortable Hours_Applicability_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Occupied Comfortable Hours_No Applicability_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Occupied Comfortable Hours_No Applicability_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Occupied Discomfortable Hours_No Applicability_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Occupied Discomfortable Hours_No Applicability_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Occupied Hours_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Occupied Hours_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Applicable Hot Hours_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Applicable Hot Hours_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Applicable Cold Hours_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Applicable Cold Hours_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Non Applicable Hot Hours_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Non Applicable Hot Hours_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Non Applicable Cold Hours_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Discomfortable Non Applicable Cold Hours_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Zone Floor Area_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Zone Floor Area_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Zone Air Volume_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Zone Air Volume_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - People Occupant Count_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - People Occupant Count_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Ventilation Hours_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - Ventilation Hours_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - Zone Thermostat Operative Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Zone Thermostat Air Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Zone Operative Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Zone Thermal Comfort CEN 15251 Adaptive Model Running Average Outdoor Air Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Zone Thermal Comfort ASHRAE 55 Adaptive Model Running Average Outdoor Air Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Cooling Coil Total Cooling Rate Reporting FrequencyRunperiod Output:Variable data
Added - Heating Coil Heating Rate Reporting FrequencyRunperiod Output:Variable data
Added - Facility Total HVAC Electric Demand Power Reporting FrequencyRunperiod Output:Variable data
Added - Facility Total HVAC Electricity Demand Rate Reporting FrequencyRunperiod Output:Variable data
Added - AFN Surface Venting Window or Door Opening Factor Reporting FrequencyRunperiod Output:Variable data
Added - AFN Zone Infiltration Air Change Rate Reporting FrequencyRunperiod Output:Variable data
Added - AFN Zone Infiltration Volume Reporting FrequencyRunperiod Output:Variable data
Added - AFN Zone Ventilation Air Change Rate Reporting FrequencyRunperiod Output:Variable data
Added - AFN Zone Ventilation Volume Reporting FrequencyRunperiod Output:Variable data
Added - Site Outdoor Air Drybulb Temperature Reporting FrequencyRunperiod Output:Variable data
Added - Site Wind Speed Reporting FrequencyRunperiod Output:Variable data
Added - Site Outdoor Air Relative Humidity Reporting FrequencyRunperiod Output:Variable data
Added - AHST_Sch_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - ACST_Sch_BLOCK1_ZONE2 Reporting FrequencyRunperiod Output:Variable data
Added - AHST_Sch_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - ACST_Sch_BLOCK1_ZONE1 Reporting FrequencyRunperiod Output:Variable data
Added - VRF Heat Pump Cooling Electricity Energy Reporting FrequencyRunperiod Output:Variable data
Added - VRF Heat Pump Heating Electricity Energy Reporting FrequencyRunperiod Output:Variable data
Added - BLOCK1_ZONE2 VRF Indoor Unit DX Cooling Coil Reporting FrequencyRunperiod Output:Variable data
Added - BLOCK1_ZONE2 VRF Indoor Unit DX Heating Coil Reporting Frequency Runperiod Output:Variable data
Added - BLOCK1_ZONE1 VRF Indoor Unit DX Cooling Coil Reporting FrequencyRunperiod Output:Variable data
Added - BLOCK1_ZONE1 VRF Indoor Unit DX Heating Coil Reporting Frequency Runperiod Output:Variable data
IDF has been saved
Ending with file:
TestModel

=======================END OF GENERIC IDF FILE GENERATION PROCESS=======================

The following IDFs will not work, and therefore these will be deleted:
None

=======================START OF OUTPUT IDF FILES GENERATION PROCESS=======================

The information you will be required to enter below will be used to generate the customised output IDFs:

Let’s see what files we do have now in the folder:

[ ]:
os.listdir()

We can see there are new IDFs, as stated previously in the python console:

[ ]:
output_idfs = [i for i in os.listdir() if not(any(i in j for j in input_idf)) and i.endswith('.idf')]
print(*output_idfs, sep='\n')

Now, these are ready for simulation with any EPW file, although it is recommended to have previously renamed them with the class rename_epw_files().

Let’s remove the new output IDFs for clarity purposes:

[ ]:
for i in os.listdir():
    if i.endswith('.idf') and input_idf[0] not in i:
        os.remove(i)

1.2 Longer version

Let’s double check we only have the initial idf we used in the short version:

[ ]:
input_idf = [i for i in os.listdir() if i.endswith('.idf')]
print(*input_idf, sep='\n')

Now, let’s do the same, but using the longer version:

[ ]:
from accim.sim import accis
accis.addAccis(
    ScriptType='vrf_mm',
    SupplyAirTempInputMethod='temperature difference',
    Output_keep_existing=False,
    Output_type='standard',
    Output_freqs=['hourly', 'runperiod'],
    Output_gen_dataframe=False,
    EnergyPlus_version='23.1',
    TempCtrl='temperature',
    ComfStand=[1, 14],
    CAT=[1, 2, 3, 80, 90],
    ComfMod=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 2, 3],
    SetpointAcc=100,
    CoolSeasonStart='01/11',
    CoolSeasonEnd='01/03',
    HVACmode=[2],
    VentCtrl=[2],
    MaxTempDiffVOF=20,
    MinTempDiffVOF=1,
    MultiplierVOF=0.2,
    VSToffset=[0],
    MinOToffset=[50],
    MaxWindSpeed=[50],
    ASTtol_steps=0.1,
    ASTtol_start=0.1,
    ASTtol_end_input=0.1,
    confirmGen=True
)

Let’s see what files we do have now in the folder:

[ ]:
os.listdir()

We can see there are new IDFs, as stated previously in the python console:

[ ]:
output_idfs = [i for i in os.listdir() if not(any(i in j for j in input_idf)) and i.endswith('.idf')]
print(*output_idfs, sep='\n')

Now, these are ready for simulation with any EPW file, although it is recommended to have previously renamed them with the class rename_epw_files().

Let’s remove the new output IDFs for clarity purposes:

[ ]:
for i in os.listdir():
    if i.endswith('.idf') and input_idf[0] not in i:
        os.remove(i)

2. Other uses

2.1 Storing the addAccis() class and inspecting the output IDFs

Addittionally to just run addAccis() (i.e. instantiate the class), the user can also store the instance and inspect some variables. So let’s store the instance in the variable add_accis_instance and then we’ll take a look what’s inside:

[ ]:
from accim.sim import accis
add_accis_instance = accis.addAccis(
    ScriptType='vrf_mm',
    SupplyAirTempInputMethod='temperature difference',
    Output_keep_existing=False,
    Output_type='standard',
    Output_freqs=['hourly', 'runperiod'],
    Output_gen_dataframe=False,
    EnergyPlus_version='23.1',
    TempCtrl='temperature',
    ComfStand=[1, 14],
    CAT=[1, 2, 3, 80, 90],
    ComfMod=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 2, 3],
    SetpointAcc=100,
    CoolSeasonStart='01/11',
    CoolSeasonEnd='01/03',
    HVACmode=[2],
    VentCtrl=[2],
    MaxTempDiffVOF=20,
    MinTempDiffVOF=1,
    MultiplierVOF=0.2,
    VSToffset=[0],
    MinOToffset=[50],
    MaxWindSpeed=[50],
    ASTtol_steps=0.1,
    ASTtol_start=0.1,
    ASTtol_end_input=0.1,
    confirmGen=True
)

Now, let’s take a look into the variables within the addAccis() instance add_accis_instance:

[ ]:
[i for i in dir(add_accis_instance) if '__' not in i]
For instance, we can take a look at the arguments we have requested when ``addAccis`` was called:
[ ]:
add_accis_instance.arguments

Also, we can see the list of occupied zones and windows and doors in each model, considering the original names and the new names needed by accim:

[ ]:
add_accis_instance.occupied_zones
[ ]:
add_accis_instance.occupied_zones_original_name
[ ]:
add_accis_instance.windows_and_doors
[ ]:
add_accis_instance.windows_and_doors_original_name

As you can see, these variables are dictionaries following the pattern: {'input idf filename': [list]}

Also, we can inspect both the input and output idf files using eppy. In both cases, the variables input_idfs and output_idfs contains a dictionary following the pattern {'idf filename': eppy.modeleditor.IDF object}. For instance, let’s take a look at the input_idfs variable.

[ ]:
add_accis_instance.input_idfs

So let’s read the eppy.modeleditor.IDF object of the idf TestModel. For instance, let’s see which zones are in the IDF by reading it, and if these are the same as previously seen in add_accis_instance.occupied_zones_original_name:

[ ]:
testmodel = add_accis_instance.input_idfs['TestModel']
testmodel.idfobjects['ZONE']

And we can see these are the same. Also, you can take a look at the variable output_idfs, which is another dictionary similar to input_idfs but with the output files.

[ ]:
add_accis_instance.output_idfs

Let’s read the last one. Let’s see, for instance, the Schedule:Compact objects for the thermostats:

[ ]:
ast_testmodel = add_accis_instance.output_idfs[
    'TestModel[CS_AUS DeDear[CA_90[CM_3[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf'
]
ast_testmodel.idfobjects['ThermostatSetpoint:DualSetpoint']

And now let’s compare this with the input idf:

[ ]:
testmodel.idfobjects['ThermostatSetpoint:DualSetpoint']

Therefore, we can confirm the Schedule:Compact objects for output idf stored in variable ast_testmodel are AHST and ACST, and thus, adaptive setpoint temperatures have been applied. However, this is different in the original idf, stored in variable testmodel, in which setpoint temperatures are static.

For more information about the use of eppy, please refer to the documentation at https://eppy.readthedocs.io/en/latest/ or https://eppy.readthedocs.io/en/latest/Main_Tutorial.html

Let’s delete all the output idf files so that we can re-run the notebook.

[ ]:
for i in os.listdir():
    if i.endswith('.idf') and input_idf[0] not in i:
        os.remove(i)

2.2 Specifying the outputs in the IDF

2.2.1 Using Output_type='custom'

Imagine you need to perform a large number of simulations, therefore, using Output_type='standard' would result in a heavy dataset. Using Output_type='simplified' is not an option, since you need more outputs than just the operative temperature, heating coil heating rate and cooling coil total cooling rate. In that case, you can use Output_type='custom'. If you do so, accim will iterate through the existing reporting frequencies and will show you all the existing Output:Variable objects for that frequency, and then, you’ll be asked the following:

  • firstly, you’ll need to say if you want to remove some object or otherwise keep some and remove all others by entering “remove” or “keep”

  • secondly, you’ll have to say all Output:Variable objects you want to remove or keep

So let’s say we want to keep (therefore, enter keep) the following Output:Variable objects (you may not be aware of them, but in that case, you can see the existing objects in the list accim prints), which you’ll need to enter separted by semicolon (;):

Zone Operative Temperature;Adaptive Cooling Setpoint Temperature_No Tolerance;Adaptive Heating Setpoint Temperature_No Tolerance

Also, in this case, we are going to store the addAccis() instance in the variable add_accis_instance (similar to previous section 2.1), so that we can inspect it later.

First of all, let’s see the idfs we do have in this path:

[ ]:
from os import listdir
input_idfs = [i for i in listdir() if i.endswith('.idf')]
input_idfs

Now, we can go for it:

[ ]:
from accim.sim import accis
add_accis_instance = accis.addAccis(
    ScriptType='vrf_mm',
    SupplyAirTempInputMethod='temperature difference',
    Output_keep_existing=False,
    Output_type='custom',
    Output_freqs=['hourly', 'runperiod'],
    Output_gen_dataframe=False,
    EnergyPlus_version='23.1',
    TempCtrl='temperature',
    ComfStand=[1, 14],
    CAT=[1, 2, 3, 80, 90],
    ComfMod=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 2, 3],
    SetpointAcc=100,
    CoolSeasonStart='01/11',
    CoolSeasonEnd='01/03',
    HVACmode=[2],
    VentCtrl=[2],
    MaxTempDiffVOF=20,
    MinTempDiffVOF=1,
    MultiplierVOF=0.2,
    VSToffset=[0],
    MinOToffset=[50],
    MaxWindSpeed=[50],
    ASTtol_steps=0.1,
    ASTtol_start=0.1,
    ASTtol_end_input=0.1,
    confirmGen=True
)
TestModel[CS_AUS DeDear[CA_90[CM_0.4[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_0.5[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_1.1[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_1.2[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_1.3[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_1.4[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_1.5[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_2[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf
TestModel[CS_AUS DeDear[CA_90[CM_3[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf

=======================END OF OUTPUT IDF FILES GENERATION PROCESS=======================

Now, let’s inspect the Output:Variable objects in both the input idf and any of the output idfs, for instance, the first one.

[ ]:
input_testmodel = add_accis_instance.input_idfs['TestModel']
input_testmodel.idfobjects['Output:Variable']

We can see there is no Output:Variable object in the input idf. Now let’s see some output idf.

[ ]:
output_testmodel = add_accis_instance.output_idfs[
    'TestModel[CS_INT EN16798[CA_1[CM_0[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf'
]
output_testmodel.idfobjects['Output:Variable']

We can see in this case 6 Output:Variable objects, which are the ones we previously requested:

  • Zone Operative Temperature

  • Adaptive Cooling Setpoint Temperature_No Tolerance

  • Adaptive Heating Setpoint Temperature_No Tolerance

in both Hourly and Runperiod Reporting Frequencies.

As usual, let’s remove all the output idfs, so that we can re-run the notebook.

[ ]:
for i in os.listdir():
    if i.endswith('.idf') and input_idf[0] not in i:
        os.remove(i)

2.2.2 Using Output_gen_dataframe and Output_take_dataframe

Similar to section 2.2.1, imagine you need to perform a large number of simulations. Therefore, using Output_type=’standard’ would result in a heavy dataset. Using Output_type=’simplified’ is not an option, since you need more outputs than just the operative temperature, heating coil heating rate and cooling coil total cooling rate. In that case, you can use Output_gen_dataframe and Output_take_dataframe.

First of all, let’s see the idfs we do have in this path:

[ ]:
from os import listdir
input_idfs = [i for i in listdir() if i.endswith('.idf')]
input_idfs

Now, we can go for it. Let’s apply the adaptive setpoint temperatures. We want to see what outputs we would have if we run this script, therefore, we need to specify Output_gen_dataframe=True. Since we don’t want to generate the output idfs yet, in this case let’s specify confirmGen=False.

[ ]:
from accim.sim import accis
add_accis_instance = accis.addAccis(
    ScriptType='vrf_mm',
    SupplyAirTempInputMethod='temperature difference',
    Output_keep_existing=False,
    Output_type='standard',
    Output_freqs=['hourly', 'runperiod'],
    Output_gen_dataframe=True,
    EnergyPlus_version='23.1',
    TempCtrl='temperature',
    ComfStand=[1, 14],
    CAT=[1, 2, 3, 80, 90],
    ComfMod=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 2, 3],
    SetpointAcc=100,
    CoolSeasonStart='01/11',
    CoolSeasonEnd='01/03',
    HVACmode=[2],
    VentCtrl=[2],
    MaxTempDiffVOF=20,
    MinTempDiffVOF=1,
    MultiplierVOF=0.2,
    VSToffset=[0],
    MinOToffset=[50],
    MaxWindSpeed=[50],
    ASTtol_steps=0.1,
    ASTtol_start=0.1,
    ASTtol_end_input=0.1,
    confirmGen=False
)

We can see no output idf has been generated:

[ ]:
[i for i in listdir() if i.endswith('.idf')]

However, in this case, there is a variable within add_accis_instance named df_outputs, which is a pandas DataFrame that contains all Output:Variable objects. Let’s take a look:

[ ]:
add_accis_instance.df_outputs

Now, let’s save it in a new variable, and let’s filter it to keep only the Output:Variable objects we need.

[ ]:
df_outputs_in = add_accis_instance.df_outputs
df_outputs_in = df_outputs_in[
    (
        df_outputs_in['variable_name'].str.contains('Zone Operative Temperature')
        |
        df_outputs_in['variable_name'].str.contains('Adaptive Cooling Setpoint Temperature_No Tolerance')
        |
        df_outputs_in['variable_name'].str.contains('Adaptive Heating Setpoint Temperature_No Tolerance')
    )
]
df_outputs_in

Now, we can run again addAccis, specifying Output_gen_dataframe=False, entering the pandas DataFrame instance df_outputs_in we just filtered in the argument Output_take_dataframe, and specifying confirmGen=True, since now we’re ready to apply the adaptive setpoints.

[ ]:
from accim.sim import accis
add_accis_instance = accis.addAccis(
    ScriptType='vrf_mm',
    SupplyAirTempInputMethod='temperature difference',
    Output_keep_existing=False,
    Output_type='standard',
    Output_freqs=['hourly', 'runperiod'],
    Output_gen_dataframe=False,
    Output_take_dataframe=df_outputs_in,
    EnergyPlus_version='23.1',
    TempCtrl='temperature',
    ComfStand=[1, 14],
    CAT=[1, 2, 3, 80, 90],
    ComfMod=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 2, 3],
    SetpointAcc=100,
    CoolSeasonStart='01/11',
    CoolSeasonEnd='01/03',
    HVACmode=[2],
    VentCtrl=[2],
    MaxTempDiffVOF=20,
    MinTempDiffVOF=1,
    MultiplierVOF=0.2,
    VSToffset=[0],
    MinOToffset=[50],
    MaxWindSpeed=[50],
    ASTtol_steps=0.1,
    ASTtol_start=0.1,
    ASTtol_end_input=0.1,
    confirmGen=True
)

Now, let’s inspect the Output:Variable objects in both the input idf and any of the output idfs, for instance, the first one.

[ ]:
input_testmodel = add_accis_instance.input_idfs['TestModel']
input_testmodel.idfobjects['Output:Variable']

We can see there is no Output:Variable object in the input idf. Now let’s see some output idf.

[ ]:
output_testmodel = add_accis_instance.output_idfs[
    'TestModel[CS_INT EN16798[CA_1[CM_0[HM_2[VC_2[VO_0.0[MT_50.0[MW_50.0[AT_0.1[NS_X.idf'
]
output_testmodel.idfobjects['Output:Variable']

We can see in this case 6 Output:Variable objects, which are the ones we previously requested:

  • Zone Operative Temperature

  • Adaptive Cooling Setpoint Temperature_No Tolerance

  • Adaptive Heating Setpoint Temperature_No Tolerance

in both Hourly and Runperiod Reporting Frequencies.

As usual, let’s remove all the output idfs, so that we can re-run the notebook.

[ ]:
for i in os.listdir():
    if i.endswith('.idf') and input_idf[0] not in i:
        os.remove(i)