This assumes you have advanced knowledge of BMON system administration. This how to is an essence of the steps necessary but this is not a step-by-step approach, if you’re lost review this.
-
Login to your webfaction account
-
Under Applications, install most recent Python 3.7 / Django release from Webfaction Control Panel. Name the application: django_bmon3
-
SSH into your webfaction server and cd to webapps/django_bmon3
-
Delete myproject.
-
git clone https://github.com/alanmitchell/bmon.git
-
Then fix references according to: https://bmon-documentation.readthedocs.io/en/latest/how-to-install-BMON-on-a-web-server.html#installing-the-bmon-project
-
Do: pip3.7 install --user -r requirements.txt.
- Remember the pip3.7
- if you have trouble installing numpy via requirements.txt run pip3.7 uninstall numpy it may take several attempts
-
From the Old BMON application, copy over: bmon.sqlite, and settings.py to your New BMON.
-
Edit your New BMON settings.py file:
-
to fix an import in settings.py to make it Python 3 compatible, the last line of the file before any customizations should be
from .settings_common import *
-
Remove the
BMSAPP_FOOTER
setting -
Change BMSAPP_NAV_LINKS to:
BMSAPP_NAV_LINKS = (('Map', 'map'), ('Graphs', 'reports', True), ('Energy Reports', 'energy-reports'), ('Custom Reports', 'custom-reports'), ('Training', 'training-anthc'), ('Sys Admin', 'admin-reports'), )
-
-
Copy over phantomjs.exe from Old BMON to bmon/bmsapp/calcs, if this file is present in the old app.
-
Run:
./manage.py migrate
(if running it with python, run python3.7 manage.py migrate.) -
Run:
./manage.py collectstatic
-
Edit your Cron
crontab -e
- Comment out the Start Cron job related to old application.
-
Stop Old application and copy over bms_data.sqlite to your New BMON so that reading data is up to date.
-
In Webfaction control panel, point BMON website at the New BMON application.
-
Start the new application.
-
Get CRON jobs pointed at the new directory: “runscript main_cron”
-
Comment out cron jobs related to old application.
-
Test the http redirect.
-
Make sure cron jobs run by looking a weather sensor after the 15 or 45 minute point.
-
If using Ecobee sensors, make sure the Ecobee script is working.
-
Watch error log.
- if something isn’t looking right but you’re not seeing it in the error log, consider modifying your settings.py file to set
BMSAPP_LOG_LEVEL
to logging.DEBUG for a more verbose error log.
- if something isn’t looking right but you’re not seeing it in the error log, consider modifying your settings.py file to set
-
If you have custom reports, remove the:
style="width: 930px"
from the embedded links in all of the Custom Reports. Otherwise, plots are not responsive and do not shrink with the window. -
In Custom Reports, replace any
select_sensor
query parameters for Time Series charts withselect_sensor_multi
. -
Find links in Alerts and update the
select_sensor
parameter toselect_sensor_multi
. -
Eventually delete files from old application.