4. Creating an FMU¶
This chapter describes how to create a Functional Mockup Unit, starting from an EnergyPlus IDF file. It assumes you have followed the Installation and Configuration instructions, and that you have created an IDF file following the Best Practice guidelines.
4.1. Command-line use¶
To create an FMU, open a command-line window (see Notation). The standard invocation of the EnergyPlusToFMU tool is:
> python <path-to-scripts-subdir>EnergyPlusToFMU.py -i <path-to-idd-file> \
-w <path-to-weather-file> -a <fmi-version> <path-to-idf-file>
For example:
# Windows:
> python scriptDir\EnergyPlusToFMU.py -i C:\eplus\Energy+.idd -w test.epw -a 2 test.idf
# Linux, MacOS:
> python scriptDir/EnergyPlusToFMU.py -i ~/eplus/Energy+.idd -w test.epw -a 2 test.idf
where scriptDir
is the path to the scripts directory of EnergyPlusToFMU.
Typically this is the Scripts/
subdirectory of the installation directory.
See Installation and Configuration for details.
All file paths, including those to the weather, IDD, and IDF files, can be absolute or relative. For readability, the rest of these instructions omit the paths to the script and input files.
Note
If any file path contains spaces, then it must be surrounded with double quotes.
Script EnergyPlusToFMU.py
supports the following command-line switches:
option <argument> | Purpose |
---|---|
-i <path-to-idd-file> | Use the named Input Data Dictionary (required). |
-w <path-to-weather-file> | Add the named weather file to the FMU [optional]. |
-a <fmi-version> | Use the FMI version specified. Version 1 and version 2 are supported. Default is FMI version 2. |
-d | Print diagnostics [optional]. Produces a status line for every major action taken by the EnergyPlusToFMU tools. This option may be helpful for debugging. |
-L | Litter, that is, do not clean up intermediate files [optional]. Typically the EnergyPlusToFMU tools delete most of the intermediate files that ultimately get packaged into the FMU. This option lets you inspect intermediate output. |
The switches may be given in any order.
However, all must appear before the name of the IDF file.
For repeated switches such as -i
or -w
, the last one specified will be used.
For example:
# Windows:
> python EnergyPlusToFMU.py -d -i C:\eplus\Energy+.idd -a 2 test.idf
4.2. Output¶
The main output from running EnergyPlusToFMU.py
consists of an FMU, named after the IDF file (e.g., test.fmu
in the examples given above).
The FMU is written to the current working directory, that is, in the directory from which you entered the command.
The FMU is complete and self-contained. Any secondary output from running the EnergyPlusToFMU tools can be deleted safely. Secondary output includes:
A utility executable, with the base name
idf-to-fmu-export-prep
. This executable will appear in your current working directory. If deleted, it will be rebuilt on the next run of EnergyPlusToFMU. Note that the full name of this executable depends on the operating system. This allows users with dual-boot or virtual machines to work in the same directory. The full names are:idf-to-fmu-export-prep-win.exe
on Windows.idf-to-fmu-export-prep-linux
on Linux.idf-to-fmu-export-prep-darwin
on Macintosh OS X.
Compiled Python files, with the extension “
.pyc
”. They are written to the script directory. These files speed up Python the next time you run the EnergyPlusToFMU tools, and may be deleted.
If the EnergyPlusToFMU tool fails, you may also see intermediate files, including:
- The configuration files for the FMU,
variables.cfg
andmodelDescription.xml
. - A utility executable
util-get-address-size.exe
. This program is rebuilt every time you run the EnergyPlusToFMU tools (to ensure it uses the most recent compiler/linker batch files, as described in Installation and Configuration). - Build directories, named like
bld-*
. - A shared library, named like
*.dll
or*.so
or*.dylib
, depending on the system. - A log file,
output.log
, containing error messages fromidf-to-fmu-export-prep
.
All these intermediate files can be deleted.
Note that the FMU is a zip file.
This means you can open and inspect its contents.
To do so, it may help to change the “.fmu
” extension to “.zip
”.
4.3. Troubleshooting¶
To check whether EnergyPlusToFMU.py
has run correctly, look for an FMU in your current working directory.
If you do not get an FMU, there will be some error output, indicating the nature of the problem.
The error message should be explicit enough to guide you to the source of the problem. If not, consider the following hints.
If you have successfully made an FMU in the past, the problem is most likely with your IDF file. Try running the export-preparation application directly on your IDF file:
# Windows:
> idf-to-fmu-export-prep-win.exe Energy+.idd test.idf
# Linux:
# Note the "./" before the name of the application.
> ./idf-to-fmu-export-prep-linux Energy+.idd test.idf
# MacOS:
# Note the "./" before the name of the application.
> ./idf-to-fmu-export-prep-darwin Energy+.idd test.idf
If running the export-preparation application as shown above works correctly, it produces two files, modelDescription.xml
and variables.cfg
.
Otherwise, it should produce an error message, which should also be echoed to an output file output.log
.
Note that the export-preparation application processes only parts of the IDF file. It does not attempt to identify modeling errors, or problems in IDF sections that do not relate to the FMU. Therefore EnergyPlus may fail to run an IDF file, even if the export-preparation application handles it successfully.
If you do not find the export-preparation application in your working directory, then EnergyPlusToFMU did not advance to creating the application. Therefore you should check the configuration, according to the instructions in Installation and Configuration.
If the export-preparation application runs, then try turning on option -d
when running EnergyPlusToFMU.py
.
By announcing each major step before it is taken, this option helps to localize the problem.