1. Installation

Sinergym relies on several dependencies, the specifics of which vary by version. The table below provides a summary of the versions supported by Sinergym across its various releases:

Sinergym version

Ubuntu version

Python version

EnergyPlus version

Building model file

0.0

18.04 LTS

3.6

8.3.0

IDF

1.1.0

18.04 LTS

3.6

9.5.0

IDF

1.7.0

18.04 LTS

3.9

9.5.0

IDF

1.9.5

22.04 LTS

3.10.6

9.5.0

IDF

2.4.0

22.04 LTS

3.10.6

9.5.0

epJSON

2.5.0

22.04 LTS

3.10.6

23.1.0

epJSON

We recommend always using the latest version of Sinergym that is supported by the container. This approach helps you avoid the complexities of the installation process. However, if you prefer to manually install Sinergym on your computer, we provide the necessary documentation in the subsequent sections.

1.1. Docker container

We provide a Dockerfile to install all dependencies and prepare the image for running Sinergym.

By default, the Dockerfile executes pip install -e .[extras]. If you wish to install a different setup, you need to execute the following command in the root repository:

$ docker build -t <tag_name> --build-arg SINERGYM_EXTRAS=[<setup_tag(s)>] .

For instance, to create a container with only the documentation libraries and testing, use:

$ docker build -t example1/sinergym:latest --build-arg SINERGYM_EXTRAS=[doc,test] .

If you do not require any extra libraries, specify an empty value as follows:

$ docker build -t example1/sinergym:latest --build-arg SINERGYM_EXTRAS= .

Note

Our container can also be directly installed from the Docker Hub repository. It contains all the project’s releases.

Note

For Visual Studio Code users, simply open the root directory and click on the Reopen in container pop-up button. This action will automatically install all dependencies and enable you to run Sinergym in an isolated environment. For more details on this feature, refer to the VSCode Containers extension documentation.

1.2. Manual installation

To manually install Sinergym (although using the container is recommended), follow these steps:

1.2.1. Configure Python Environment

  • Begin by cloning this repository:

$ git clone https://github.com/ugr-sail/sinergym.git
$ cd sinergym
  • Next, we recommend creating a virtual environment as follows:

$ sudo apt-get install python-virtualenv virtualenv
$ virtualenv env_sinergym --python=python3.10
$ source env_sinergym/bin/activate
$ pip install -e .[extras]

Alternatively, you can use conda environments (recommended). Conda is user-friendly and we provide a file for automatic configuration:

$ cd sinergym
$ conda env create -f python_environment.yml
$ conda activate sinergym

With this, you have the correct Python version and the necessary modules to run Sinergym. Let’s proceed with the installation of other required programs outside of Python to run the simulations:

1.2.2. Install EnergyPlus 23.1.0

You need to install EnergyPlus. We have tested and confirmed compatibility with version 23.1.0. The code might work with other versions, but we have not tested them.

Follow the instructions here to install it for Linux (we only support Ubuntu). You can choose any location for the installation. After installation, a folder named Energyplus-23-1-0 should appear in the chosen location.

1.2.3. Include Energyplus Python API in Python Path

Sinergym uses the Energyplus Python API as its backend. The modules of this API are located in the Energyplus folder that you installed in the previous step. You must add this installation path to the PYTHONPATH environment variable so that the interpreter can access these modules.

1.3. About Sinergym package

As we have told you in section Manual installation, Python environment can be set up using python_environment.yml with conda. This will install the virtual environment with Python version required and all packages used all-in-one. However, we can make an installation using the Github repository in a python environment directly, like we have shown with virtualenv:

$ source env_sinergym/bin/activate
$ cd sinergym
$ pip install -e .

Extra libraries can be installed by typing pip install -e .[extras]. extras include all optional libraries which have been considered in this project such as testing, visualization, Deep Reinforcement Learning, monitoring , etc. It’s possible to select a subset of these libraries instead of ‘extras’ tag in which we select all optional libraries, for example:

$ cd sinergym
$ pip install -e .[test,doc]

In order to check all our tag list, visit setup.py in Sinergym root repository. In any case, they are not a requirement of the package.

You can also install from official PyPi repository with last stable version by default:

$ pip install sinergym[extras]

1.4. Verify Installation

This project is automatically monitored using tests specifically developed for it. To verify that Sinergym has been installed correctly, execute pytest tests/ -vv in the repository root.

Furthermore, each time the Sinergym repository is updated, the tests are automatically executed in a remote container built using the Dockerfile. This task is performed by Github Action (refer to the Github Actions section for more details).

1.5. Cloud Computing

You also have the option to run your experiments in the Cloud. We utilize Google Cloud for this purpose. Our team is working on setting up an account to run our Sinergym container with remote storage and Weights&Biases tracking. For more information on installation and preparing the Google Cloud SDK to run your experiments, please visit our Preparing Google Cloud section.