{"id":20050,"name":"BEMServer","description":"An open source Python server to deploy energy management solutions for buildings.","url":"https://github.com/HIT2GAP-EU-PROJECT/bemserver","last_synced_at":"2026-05-17T10:05:34.529Z","repository":{"id":148013855,"uuid":"197212789","full_name":"HIT2GAP-EU-PROJECT/bemserver","owner":"HIT2GAP-EU-PROJECT","description":"An open source Python server to deploy energy management solutions for buildings","archived":true,"fork":false,"pushed_at":"2022-10-27T16:05:34.000Z","size":1078,"stargazers_count":40,"open_issues_count":5,"forks_count":17,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-11-27T17:51:17.196Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://bemserver.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HIT2GAP-EU-PROJECT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-07-16T14:45:14.000Z","updated_at":"2025-10-14T16:07:49.000Z","dependencies_parsed_at":"2023-07-09T08:34:38.306Z","dependency_job_id":null,"html_url":"https://github.com/HIT2GAP-EU-PROJECT/bemserver","commit_stats":{"total_commits":64,"total_committers":8,"mean_commits":8.0,"dds":0.59375,"last_synced_commit":"64fa996052a1e4ad7887f0acde82a9ae04a4eb0a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/HIT2GAP-EU-PROJECT/bemserver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HIT2GAP-EU-PROJECT","download_url":"https://codeload.github.com/HIT2GAP-EU-PROJECT/bemserver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27510173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-05T02:00:07.920Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"HIT2GAP-EU-PROJECT","name":"HIT2GAP","uuid":"27004362","kind":"organization","description":"An energy management platform could help to reduce this energy gap","email":null,"website":"http://www.hit2gap.eu/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/27004362?v=4","repositories_count":1,"last_synced_at":"2023-03-27T11:01:58.900Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/HIT2GAP-EU-PROJECT","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-03-27T11:01:58.901Z","updated_at":"2023-03-27T11:01:58.901Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HIT2GAP-EU-PROJECT","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HIT2GAP-EU-PROJECT/repositories"},"packages":[],"commits":{"id":1254072,"full_name":"HIT2GAP-EU-PROJECT/bemserver","default_branch":"master","total_commits":64,"total_committers":8,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":8.0,"dds":0.59375,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2025-12-01T21:48:31.863Z","last_synced_commit":"64fa996052a1e4ad7887f0acde82a9ae04a4eb0a","created_at":"2023-03-27T10:58:05.012Z","updated_at":"2025-12-01T21:47:48.408Z","committers":[{"name":"BONNAMY Pierre","email":"pibonnamy@nobatek.com","login":null,"count":26},{"name":"pbourreau","email":"pbourreau@nobatek.com","login":null,"count":10},{"name":"BONNAMY Pierre","email":"pibonnamy@nobatek.inef4.com","login":"Pibmy","count":9},{"name":"David FREDERIQUE","email":"dfrederique@nobatek.com","login":null,"count":6},{"name":"Jérôme Lafréchoux","email":"jlafrechoux@nobatek.inef4.com","login":"lafrech","count":5},{"name":"Pierre Bourreau","email":"22662644+pbourreau","login":"pbourreau","count":4},{"name":"h2g-platform-core","email":"h2g-platform-core@bemserver.org","login":null,"count":2},{"name":"Pierre Bourreau","email":"","login":null,"count":2}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-12-02T00:00:49.815Z","repositories_count":6120062,"commits_count":925560001,"contributors_count":36022295,"owners_count":1120455,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"HIT2GAP-EU-PROJECT/bemserver","html_url":"https://github.com/HIT2GAP-EU-PROJECT/bemserver","last_synced_at":"2025-09-01T03:33:10.912Z","status":"error","issues_count":7,"pull_requests_count":2,"avg_time_to_close_issue":20721.5,"avg_time_to_close_pull_request":506.0,"issues_closed_count":2,"pull_requests_closed_count":2,"pull_request_authors_count":1,"issue_authors_count":4,"avg_comments_per_issue":2.857142857142857,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":2,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:36:51.347Z","updated_at":"2025-09-01T03:33:10.912Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/HIT2GAP-EU-PROJECT%2Fbemserver/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":7},"pull_request_author_associations_count":{"CONTRIBUTOR":2},"issue_authors":{"arunkollan":4,"ranusingh1993":1,"LucFrachon":1,"s-khini":1},"pull_request_authors":{"Pibmy":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-12-05T00:00:36.908Z","repositories_count":12045695,"issues_count":35605265,"pull_requests_count":116462757,"authors_count":11047987,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":6},"last_year":{"WatchEvent":5}},"keywords":[],"dependencies":[{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2023-07-09T08:34:36.091Z","updated_at":"2023-07-09T08:34:36.091Z","repository_link":"https://github.com/HIT2GAP-EU-PROJECT/bemserver/blob/master/Dockerfile","dependencies":[{"id":11250799828,"package_name":"alpine","ecosystem":"docker","requirements":"3.10","direct":true,"kind":"build","optional":false},{"id":11250799832,"package_name":"debian","ecosystem":"docker","requirements":"stretch-slim","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-07-09T08:34:36.285Z","updated_at":"2023-07-09T08:34:36.285Z","repository_link":"https://github.com/HIT2GAP-EU-PROJECT/bemserver/blob/master/docker/docker-compose.yml","dependencies":[{"id":11250800434,"package_name":"nbkinef4/bemserver-fuseki","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false},{"id":11250800443,"package_name":"nbkinef4/bemserver","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"app/dev-requirements.txt","sha":null,"kind":"manifest","created_at":"2023-07-09T08:34:36.409Z","updated_at":"2023-07-09T08:34:36.409Z","repository_link":"https://github.com/HIT2GAP-EU-PROJECT/bemserver/blob/master/app/dev-requirements.txt","dependencies":[{"id":11250801742,"package_name":"flake8","ecosystem":"pypi","requirements":"\u003e=3.2.0","direct":true,"kind":"development","optional":false},{"id":11250801743,"package_name":"pytest","ecosystem":"pypi","requirements":"\u003e=5.0.0,\u003c6.0.0","direct":true,"kind":"development","optional":false},{"id":11250801744,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"\u003e=2.4.0","direct":true,"kind":"development","optional":false},{"id":11250801745,"package_name":"tox","ecosystem":"pypi","requirements":"\u003e=2.0","direct":true,"kind":"development","optional":false},{"id":11250801746,"package_name":"apispec","ecosystem":"pypi","requirements":"\u003e=0.38.0,\u003c1.0.0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"app/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-07-09T08:34:37.055Z","updated_at":"2023-07-09T08:34:37.055Z","repository_link":"https://github.com/HIT2GAP-EU-PROJECT/bemserver/blob/master/app/requirements.txt","dependencies":[{"id":11250803878,"package_name":"Werkzeug","ecosystem":"pypi","requirements":"\u003e=0.16.0,\u003c0.17.0","direct":true,"kind":"runtime","optional":false},{"id":11250803879,"package_name":"flask","ecosystem":"pypi","requirements":"\u003e=1.1.0,\u003c1.2.0","direct":true,"kind":"runtime","optional":false},{"id":11250803880,"package_name":"flask_marshmallow","ecosystem":"pypi","requirements":"\u003e=0.7.0","direct":true,"kind":"runtime","optional":false},{"id":11250803881,"package_name":"flask-rest-api","ecosystem":"pypi","requirements":"\u003e=0.10.0,\u003c0.11.0","direct":true,"kind":"runtime","optional":false},{"id":11250803882,"package_name":"webargs","ecosystem":"pypi","requirements":"\u003e=5.1.3,\u003c6.0","direct":true,"kind":"runtime","optional":false},{"id":11250803883,"package_name":"apispec","ecosystem":"pypi","requirements":"\u003e=0.39.0,\u003c1.0.0","direct":true,"kind":"runtime","optional":false},{"id":11250803884,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"\u003e=2.5.0,\u003c2.9.0","direct":true,"kind":"runtime","optional":false},{"id":11250803885,"package_name":"marshmallow","ecosystem":"pypi","requirements":"\u003e=2.15.2,\u003c3.0.0","direct":true,"kind":"runtime","optional":false},{"id":11250803886,"package_name":"marshmallow-oneofschema","ecosystem":"pypi","requirements":"\u003e=1.0.5,\u003c2.0.0","direct":true,"kind":"runtime","optional":false},{"id":11250803887,"package_name":"requests","ecosystem":"pypi","requirements":"\u003e=2.22.0,\u003c2.23.0","direct":true,"kind":"runtime","optional":false},{"id":11250803888,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.14.0,\u003c1.18.0","direct":true,"kind":"runtime","optional":false},{"id":11250803889,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=0.25.0,\u003c0.26.0","direct":true,"kind":"runtime","optional":false},{"id":11250803890,"package_name":"sparqlwrapper","ecosystem":"pypi","requirements":"\u003e=1.8.4,\u003c1.9.0","direct":true,"kind":"runtime","optional":false},{"id":11250803891,"package_name":"flask-jwt-simple","ecosystem":"pypi","requirements":"\u003e=0.0.3,\u003c0.1.0","direct":true,"kind":"runtime","optional":false},{"id":11250803892,"package_name":"python3-saml","ecosystem":"pypi","requirements":"\u003e=1.4.1,\u003c1.5","direct":true,"kind":"runtime","optional":false},{"id":11250803893,"package_name":"tables","ecosystem":"pypi","requirements":"\u003e=3.3.0,\u003c3.6.0","direct":true,"kind":"runtime","optional":false},{"id":11250803894,"package_name":"pint","ecosystem":"pypi","requirements":"\u003e0.7,\u003c0.9","direct":true,"kind":"runtime","optional":false},{"id":11250803898,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"\u003e=1.2.5,\u003c1.4.0","direct":true,"kind":"runtime","optional":false},{"id":11250803899,"package_name":"sqlalchemy-utils","ecosystem":"pypi","requirements":"\u003e=0.32.21,\u003c0.35.0","direct":true,"kind":"runtime","optional":false},{"id":11250803900,"package_name":"flask-sqlalchemy","ecosystem":"pypi","requirements":"\u003e=2.3.2,\u003c2.5.0","direct":true,"kind":"runtime","optional":false},{"id":11250803901,"package_name":"flask-migrate","ecosystem":"pypi","requirements":"\u003e=2.1.1,\u003c2.6.0","direct":true,"kind":"runtime","optional":false},{"id":11250803902,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"\u003e=0.8.2,\u003c0.11.0","direct":true,"kind":"runtime","optional":false},{"id":11250803903,"package_name":"pytz","ecosystem":"pypi","requirements":"==2019.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"app/setup.py","sha":null,"kind":"manifest","created_at":"2023-07-09T08:34:38.055Z","updated_at":"2023-07-09T08:34:38.055Z","repository_link":"https://github.com/HIT2GAP-EU-PROJECT/bemserver/blob/master/app/setup.py","dependencies":[{"id":11250803941,"package_name":"Werkzeug","ecosystem":"pypi","requirements":"\u003e=0.16.0,\u003c0.17.0","direct":true,"kind":"runtime","optional":false},{"id":11250803942,"package_name":"flask","ecosystem":"pypi","requirements":"\u003e=1.1.0,\u003c1.2.0","direct":true,"kind":"runtime","optional":false},{"id":11250803943,"package_name":"flask_marshmallow","ecosystem":"pypi","requirements":"\u003e=0.7.0","direct":true,"kind":"runtime","optional":false},{"id":11250803944,"package_name":"flask-rest-api","ecosystem":"pypi","requirements":"\u003e=0.10.0,\u003c0.11.0","direct":true,"kind":"runtime","optional":false},{"id":11250803945,"package_name":"webargs","ecosystem":"pypi","requirements":"\u003e=5.1.3,\u003c6.0","direct":true,"kind":"runtime","optional":false},{"id":11250803946,"package_name":"apispec","ecosystem":"pypi","requirements":"\u003e=0.39.0,\u003c1.0.0","direct":true,"kind":"runtime","optional":false},{"id":11250803947,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"\u003e=2.5.0,\u003c2.9.0","direct":true,"kind":"runtime","optional":false},{"id":11250803948,"package_name":"marshmallow","ecosystem":"pypi","requirements":"\u003e=2.15.2,\u003c3.0.0","direct":true,"kind":"runtime","optional":false},{"id":11250803949,"package_name":"marshmallow-oneofschema","ecosystem":"pypi","requirements":"\u003e=1.0.5,\u003c2.0.0","direct":true,"kind":"runtime","optional":false},{"id":11250803950,"package_name":"requests","ecosystem":"pypi","requirements":"\u003e=2.22.0,\u003c2.23.0","direct":true,"kind":"runtime","optional":false},{"id":11250803951,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.14.0,\u003c1.18.0","direct":true,"kind":"runtime","optional":false},{"id":11250803952,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=0.25.0,\u003c0.26.0","direct":true,"kind":"runtime","optional":false},{"id":11250803953,"package_name":"sparqlwrapper","ecosystem":"pypi","requirements":"\u003e=1.8.4,\u003c1.9.0","direct":true,"kind":"runtime","optional":false},{"id":11250803954,"package_name":"flask-jwt-simple","ecosystem":"pypi","requirements":"\u003e=0.0.3,\u003c0.1.0","direct":true,"kind":"runtime","optional":false},{"id":11250803955,"package_name":"python3-saml","ecosystem":"pypi","requirements":"\u003e=1.4.1,\u003c1.5","direct":true,"kind":"runtime","optional":false},{"id":11250803956,"package_name":"tables","ecosystem":"pypi","requirements":"\u003e=3.3.0,\u003c3.6.0","direct":true,"kind":"runtime","optional":false},{"id":11250803957,"package_name":"pint","ecosystem":"pypi","requirements":"\u003e0.7,\u003c0.9","direct":true,"kind":"runtime","optional":false},{"id":11250803958,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"\u003e=1.2.5,\u003c1.4.0","direct":true,"kind":"runtime","optional":false},{"id":11250803959,"package_name":"sqlalchemy-utils","ecosystem":"pypi","requirements":"\u003e=0.32.21,\u003c0.35.0","direct":true,"kind":"runtime","optional":false},{"id":11250803960,"package_name":"flask-sqlalchemy","ecosystem":"pypi","requirements":"\u003e=2.3.2,\u003c2.5.0","direct":true,"kind":"runtime","optional":false},{"id":11250803961,"package_name":"flask-migrate","ecosystem":"pypi","requirements":"\u003e=2.1.1,\u003c2.6.0","direct":true,"kind":"runtime","optional":false},{"id":11250803962,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"\u003e=0.8.2,\u003c0.11.0","direct":true,"kind":"runtime","optional":false},{"id":11250803963,"package_name":"pytz","ecosystem":"pypi","requirements":"==2019.2","direct":true,"kind":"runtime","optional":false}]}],"score":5.886104031450156,"created_at":"2023-09-11T14:52:09.270Z","updated_at":"2026-05-17T10:05:34.548Z","avatar_url":"https://github.com/HIT2GAP-EU-PROJECT.png","language":"Python","category":"Consumption","sub_category":"Buildings and Heating","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# BEMServer is being fully refactorized! A newer version is under development [here](https://github.com/BEMServer). The present version is now abandonned (on our side at least).\n\n\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"docs/BEM%20SERVER-Color-rgb-logo.png\" alt=\"BEMServer\" width=\"300\"/\u003e\u003c/p\u003e\n\n\n**Table of Contents**\n\n1. [Description](#description)\n    1. [Technologies used](#technologies)\n    2. [Installation](#installation)\n2. [User guidelines](#user)\n3. [Developer guidelines](#developer)\n4. [Related work](#documentation)\n\n\n\n## Description \u003ca name=\"description\"\u003e\u003c/a\u003e\n\nBEMServer is an open source platform to ease the deployment of energy management software in monitored buildings.\n\nBased on standard technologies (REST APIs, formal ontologies...) it is a Python software that is used to\n\n- ***collect data*** from buildings. Data are currently pushed to BEMServer through a specific REST API. Therefore, for smart meters, adapters need to be developed to connect the meters to BEMServer. For BMS, specific adapters need to be developed, or a third-party solution need to be used to collect data from proprietary protocols (KNX, BACNet...)\n- ***agregate data*** collected. Data in buildings are heterogeneous by nature, and come from a variety of sources (meters, sensors, but also human interactions, building descriptions, IFC files...). To ease data access, all data need first to be aggregated and aligned according to a specific model. We use our specific [BEMOnt](https://github.com/HIT2GAP-EU-PROJECT/BEMOnt) formal ontology to do so.\n- ***preprocess data***. Data from sensors may not be as reliable as expected. In BEMServer we are continuously developing new algorithms to facilitate data access for software developers: data cleansing to avoid blanks and outliers, unit conversion, airhtmetic operations... are at the disposal to get the data as you need them.\n- ***present data***. Through its [REST APIs](https://h2g-platform-core.nobatek.com/api/v0/api-docs/redoc), data are exposed in a standard way to thrid-party developers.\n\n### Technologies used \u003ca name=\"technologies\"\u003e\u003c/a\u003e\n\nBEMServer is a **Python**-based software. As a server is it developed using the [flask](https://palletsprojects.com/p/flask/) library.\n\nAdditionally, its storage system uses 3 different technologies:\n- Apache Jena to store the metadata (i.e. data used to describe all relevant information, from the building, to the measures made by a sensor)\n- HDF5 file format to store timeseries, which are a big part of the data stored, coming from sensors and meters.\n- SQLite to store events. An event is typically generated by a service connected to BEMServer, and can be an alert (e.g. an abnormal energy consumption), or an advice (e.g. potential for energy saving).\n\n### Installation \u003ca name=\"installation\"\u003e\u003c/a\u003e\n\nFollow the guideline in [INSTALL.md](INSTALL.md).\n\n\n## User guidelines \u003ca name=\"user\"\u003e\u003c/a\u003e\n\nBEMServer is mainly dedicated to people and company who want to develop smart energy services for building. As such, it was already used as the support for load forecasting, fault detection and diagnosis, or confort simulation tools. In brief, BEMServer is a tool to be used for domain expert and software developers who do not want to become experts on how to collect data and access them.\n\nIn order to install BEMServer, please check the ***INSTALL.md*** file. Once up and running, simply use the online [REST APIs](https://h2g-platform-core.nobatek.com/api/v0/api-docs/redoc) to interact with your BEMServer instance.\n\n## Developer guidelines \u003ca name=\"developer\"\u003e\u003c/a\u003e\n\nWant to be part of the developing team? Want to contribute to the project and join effort in providing the community with an open source tool to deploy energy management softwares? Then, just download the project, fork it, start developing and make a pull request.\n\nAlso check the [CONTRIBUTING.md](CONTRIBUTING.md) file.\n\n## Related work \u003ca name=\"documentation\"\u003e\u003c/a\u003e\n\n- Pierre BourreauP, Richard Chbeir, Yudith Cardinale, Aitor Corchero, Khouloud Salameh, Jérôme Lafréchoux, David Frédérique, Rafael Constantinou - ***BEMServer: An Open Source Platform for Building Energy Performance Management*** - EC3 (European Conference on Computing in Construction), July 2019 - https://www.researchgate.net/publication/334626054_BEMServer_An_Open_Source_Platform_for_Building_Energy_Performance_Management\n\n\n- Lara Kallab, Richard Chbeir, Pierre Bourreau, Pascale Brassier, Michael Mrissa - ***HIT2GAP: Towards a better building energy management***, Energy Procedia, Volume 122, 2017 - http://www.sciencedirect.com/science/article/pii/S1876610217330035\n\nAlso, see the [presentation on slideShare](https://www.slideshare.net/pbourreau/bemserver-open-source-platform-for-building-energy-management)\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["measurements","sanitation","control","training","featured","feature-flag","feature-toggle"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/20050","html_url":"https://ost.ecosyste.ms/projects/20050"}