Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
(v3.0.0) - Energyplus Python API integrated as Sinergym simulator eng…
…ine (#351) * Dockerfile: Deleted BCVTB dependency in container and added pyenergyplus package in PYTHONPATH * Version of Sinergym updated from 2.5.2 to 3.0.0 * Modeling: Deleting and updating unusued methods in abstract class * Modeling: ModelJSON class constructor update; Deleting variables XML tree and action definition functionality, checkert observation variables deleted too * Modeling: adapt_variables_to_cfg_and_building, apply_action_definition and save_variables_cfg deleted. These functionalities will not be required anymore * Modeling: Update _get_eplus_run_info to _get_eplus_runperiod and deleted get_current_time_info (it could be calculated with E+ API). _get_one_epi_len is now _get_runperiod_len * Modeling: Set set_experiment_working_dir as private method (only called once in ModelJSON constructor) * Modeling: Deleted action definition asserts in ModelJSON checker and updating class properties * Simulator: Simulator PARADIGM change. Deleted BCVTB structure and integrating E+ API, threading structure to stop the simulation step by step with queues * Common: Create_variable_weather deleted * Common: Updated name export_actuators_to_excel to export_schedulers_to_excel * Deleted sinergym/data/variables (RDD files is not required with E+ API) * Environment: Updated import module dependencies * Environment: Updating Sinergym constructor; observation and action variables subtituted by time_variables,variables,meters and actuators, observation_space is not neccesary to be specified, model and simulator are attributes of the environment, queues to simulator E+ API communication are defined * Environment: Reset update. Adapting to new simulator structure. * Environment: Step update. Adapting to new simulator structure. * Environment: close update. Adapting to new simulator structure. * Environment: Updating sinergym env checker and deleting get_schedulers method * Environment: Updating Sinergym env properties, in order to extract all useful information from simulator and model layers directly * Reward: Fix obs_dict key name (day is now day_of_month) * utils.constants: Updating terminal logger format and stablishing a level for each layer * Updating terminal logger in environment layer and added properties to the class * Simulator: Configured Thread with daemon True value, added empty print in order to not overwrite progress bar * Fixed simulation complete if statement when we early stop an episode from environment * Simulator: Added code to write handles data available when simulator initialize handles (impossible to do it before) * Simulator: Updated and configured the terminal logger in simulator layer * Modeling: Updated and configured the terminal logger in modeling layer * changing error message by warning message when action in step is not contained in environment action space. * Added message colors in Sinergym terminal logger * [Simulator] Deleted unused progress_value attribute * Set up env, sim and modeling loggers as class attribute * Simulator: Changed flags to system ready and reformulated in callbacks * Simulator: Commentted debug simulator in queues states * Simulator: Update start() and stop() functionality in order to initilize handles only once. Flags must be stablished correctly in stop method * Environment: Updated constructor and reset method to adapt to new simulator structure * [ci-skip] Fixed timestep and terminated flag issue * Merging obs and info queue write in the same energyplus callback * Simulator: Fixed assertion error bug for actuators * Environemnt: Action sent to the simulator annotated in info dict * Simulator: Improved progress bar * Environment: Updated docstring, fixed some pytype and improved terminal logs * Environment: Updated name energyplus_simulation to energyplus_simulator * Simulator: docstring updated * Modeling: docstring updated * Added is_running property to environment and simulator (equivalent to episode existed) * Wrappers: Adapted wrappers and improvement of terminal logs added * Logger: Fixed CSVLogger new info key in time_elapsed * Utils: Adapted callbacks attributes and fixed wrapper time key * Utils: Adapted controllers to new environment attributes * Utils: Fixed evaluation.py * Fixed day of month key in reward time variable * 5Zone: Deleted default variables and meters in epJSON file * wrappers: Fixed datetimewrapper logger name * Modeling: Added meters, variables and actuators in constructor and created adaptation for Output:variable and output:meter values method * Env: Adapted modeling changes for adaptation of variables end meters * Deleted pandas module in modeling module * environments registration automatized * Modeling: Fixed reference bug in logger * data: Deleted all output:variable and output:meter elements from buildings epJSON baseline * Environment: Fixed assert in env_checker * register: Fixed some bugs and updated reward arguments * Constants: Adapted constants default values to new structure * Improved terminal log format * Simulator: Deleted base.py and eplus_alpha.py (not used) * Simulator: Fixed progress bar to 101% in some environments * Rewards: Deleted dependency in rewards. Rewards doesn't require year as observation variables now * tests: Deleted EPLUS and BCVTB path, it is not required anymore * register: Fixed weather specification in Sinergym default environments * Env: Added readapt building to config method call from modeling in reset * Modeling: Deleted skeleton class in modeling * Modeling: Updated order of methods and header names, adapt_building_to_conf update runperiod attribute, _get_runperiod_len now uses runperiod attribute instead of recalculate runperiod * Tests: Updated tests of modeling part, improved some tests too * Wrappers: Fixed day key (day_of_month) in DateTimeWrapper and setpoints initial values argument added in DiscreteIncrementalWrapper * Tests: Updated common tests * Tests: Updated conftest fixtures and simplified their definitions * Tests: Updated fixtures names in common tests * tests: Adapted reward tests * Tests: Created simulator tests from scratch (it is not similar at all compared with old simulator) * tests: Adapted all environment tests * Env: Fixed observation space for officegrid (hardcoded a custom observation space, this will be fixed when we can read ranges of variables) and increased general observation space (shop failed) * tests: Fixed fixture name bug * Controller: Fixed controllers bugs * Wrappers and tests: Fixed wrappers bugs and adapted tests * Updated environments ranges and tests * Fixed environment test bug * Tests: Stable baselines 3 tests updated * Added test simulator output to conftests autoremove * Fixed pytype errors * Deleted unusued import in Sinergym project and isort applied * Env: Added timestep_per_episode property * Scripts: Updated and fixed some bugs in train and load agents scripts * Scripts: Fixed more bugs in train/load scripts and added an exception management in order to delete remote container if the script is executing there and an error happens * Scripts: Fixed more bugs * Scripts: Avoid Sinergym logger and sb3 logger same name * Examples: Updated Code and text for the Sinergym examples notebooks * Env: indicating in reset the environment name in terminal logger (usefull when a machine is running several envs at the same time) * Simulator: Deleted year key in info dict in queue * Env: indicating the environemnt name in close method for terminal logger (usefull when a machine is running several envs at the same time) * Modeling: Improved some logger terminal messages * Added name argument in simulator constructor and fixed queue get in environment * Evaluation: Updated function to evaluate a policy * Callbacks: Updated LoggerEvalCallback, deleted dummyvecenv wrap to avoid automatic resets in evaluations * scripts: Fixed env name in JSON and deleted MOnitor wrap and fixed eval freq timesteps in train script * Examples: Updated notebooks outputs * JSON and pytype fixes * Doc: Updated modules headers for API Reference * Doc: Updated introduction * Doc: Updated nav bar colors * Doc: update installation section * Doc: Updated some diagrams * Doc: Added getting_env_information notebook to the documetation * Doc: Updated building section, improved introduction and usage example sections * Doc: Updated weather section * Doc: Updated environments section * Doc: Deleted normalize observation note in environments section and added in wrappers section * Documentation: General improvements and fixed some mistakes * Container: Added docs to the container in order to compile documentation in github workflows * Github actions: Using Dockerfile in compilation of the documentation when we crate a PR * Documentation: Fixed spelling errors * Github actions: Using Dockerfile in compilation of the documentation when we merge a PR * Documentation: Updated README.MD * Updated docstrings in env, modeling and simulator
- Loading branch information