Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
177 lines (124 sloc) 4.08 KB

Django Settings

urls.py

Open the urls configuration file and add the necessary rewrite rule to the django URL dispatcher.

nano /var/www/pyscada/PyScadaServer/PyScadaServer/urls.py
...
from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('pyscada.hmi.urls')),
]
...

settings.py

Open the django settings file and make the following modifications. See also the django documentation for more Information.

nano /var/www/pyscada/PyScadaServer/PyScadaServer/settings.py

First deactivate the debugging, if debugging is active django will keep all SQL queries in the ram, the data-acquisition runs a massive amount of queries so your system will run fast out of memory. Keep in mind to restart gunicorn and the pysada daemons after you change the debugging state.

DEBUG = False

Add the host/domain of your machine, in this case every url that point to a ip of the machine is allowed.

ALLOWED_HOSTS = ['*']

Add PyScada and the PyScada sub-apps to the installed apps list of Django.

INSTALLED_APPS = [
    ...
    'pyscada.core',
    'pyscada.modbus',
    'pyscada.phant',
    'pyscada.visa',
    'pyscada.hmi',
    'pyscada.systemstat',
    'pyscada.export',
    'pyscada.onewire',
    'pyscada.smbus',
]

To use the MySQL Database, fill in the database, the user and password as selected in the create Database section.

DATABASES = {
    'default': {
        'ENGINE':   'django.db.backends.mysql',
        'NAME':     'PyScada_db',
        'USER':     'PyScada-user',
        'PASSWORD': 'PyScada-user-password',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        }
    }
}

Set the static file and media dir as follows.

...
STATIC_URL = '/static/'

STATIC_ROOT = '/var/www/pyscada/http/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT = '/var/www/pyscada/http/media/'

Add all PyScada specific settings, keep in mind to set the file right file encoding in the settings.py file header (see also https://www.python.org/dev/peps/pep-0263/).

#!/usr/bin/python
# -*- coding: <encoding name> -*-

Append to the end of the settings.py:

# PyScada settings
# https://github.com/trombastic/PyScada

# email settings
DEFAULT_FROM_EMAIL = 'example@host.com'
EMAIL_HOST = 'mail.host.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'pyscada@host.com'
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PREFIX = 'PREFIX' # Mail subject will be "PREFIX subjecttext"

# meta information's about the plant site
PYSCADA_META = {
    'name':'A SHORT NAME',
    'description':'A SHORT DESCRIPTION',
}

# export properties
#
PYSCADA_EXPORT = {
    'file_prefix':'PREFIX_',
    'output_folder':'~/measurement_data_dumps',
}

# View Options
#
LINK_TARGET = '_blank' # '_blank' for new tab or '_self' for opening it in the same window

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt' : "%d/%b/%Y %H:%M:%S"
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': BASE_DIR + '/pyscada_debug.log',
            'formatter': 'standard',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'INFO',
            'propagate': True,
        },
        'pyscada': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}
You can’t perform that action at this time.