|
|
|
BMON is an application that stores sensor data primarily from buildings and provides tools for users to analyze that data. The application is built with the [[Python Django|https://www.djangoproject.com/]] web framework. Most of the code for the application executes on the web server, although some JavaScript code runs in the user's browser to update the user interface and make data requests to the server. The JavaScript code is actually written in [[Coffeescript|http://coffeescript.org/]] and then compiled into Javascript. Charts and dashboard gauges utilize the [[Highcharts|http://www.highcharts.com/]] and [[Highstock|http://www.highcharts.com/products/highstock]] charting libraries; these libraries are not open source and have [[licensing requirements|http://shop.highsoft.com/highcharts.html]].
|
|
|
|
|
|
|
|
The diagram below shows the overall structure of the application.
|
|
|
|
|
|
|
|
[[images/BMON_architecture.png]]
|
|
|
|
|
|
|
|
Sensors such as [[Monnit Wireless Sensors|http://www.monnit.com/]] post data across the Internet to the BMON Django application located on the web server. The sensor readings are stored in a [[SQLite|https://www.sqlite.org/]] database dedicated to those readings. The Django application utilizes a separate database to store other objects needed by the BMON system, such as building information, sensor descriptions, alert conditions, etc. This database is the standard Django database that is generated from the [[Models|https://docs.djangoproject.com/en/1.8/topics/db/models/]] in the Django application. |
|
|
\ No newline at end of file |