Configuring the IzoT REST Server

The IzoT REST API Server is a Python-based REST API Server based on Django and the Django REST Framework. It is configured using the standard Django configuration file mechanism in files under $IZOT/izot/server/project/settings. Default settings are stored in default.py. Local settings are stored in local.py, if it exists (copy example.py to create a new local settings file).

 

Most of the IzoT Server specific settings are specified under the IZOT section:

# IzoT Server configuration settings
IZOT = {
    # A (named) collection of IzoT Server Collectors that will
    # be started to collect and update devices and datapoints.
    # Names must be no longer than 30 characters and consist only of
    # letters, numbers, underscores or hyphens.
    'COLLECTORS': {
        # NOTE: add additional collectors in "settings/local.py"
        
        # local LonBridge Server collector
        'lonbridge': {
            'class': 'collectors.lonbridge.LonBridgeCollector',
            'args': {
                'host': 'localhost',
                'port': 3050
            }
        },
        
        # localhost collector    
        'localhost': {
            'class': 'collectors.localhost.LocalhostCollector',
            'args': {
                'poll': 10
            }
        }
    },
                   
    # A (named) collection of IzoT Server Publishers that will
    # be started to publish datapoint updates.
    'PUBLISHERS': {
        # NOTE: add additional publishers in "settings/local.py"
    },
                   
    # A (named) collection of IzoT Server Subscribers that will
    # be started to subscribe to device commands and datapoint updates.
    'SUBSCRIBERS': {
        # NOTE: add additional subscribers in "settings/local.py"
    },
}

where:

   
 
Setting Description
COLLECTORS IzoT Collectors are 'plug-in' components used to extend the IzoT Server to provide datapoint collectors. Two standard collectors are supplied by default: LonBridgeCollector collects datapoints from the IzoT Network Server (LonBridge); LocalhostCollector collects CPU, Disk and Memory usage datapoints from the local host. Custom collectors can be created and added to the local settings file (see example.py).
The supplied IzoT Collectors (including a sample MQTT collector) are located in the izot.server.collectors package.
PUBLISHERS IzoT Publishers are 'plug-in' components used to extend the IzoT Server to provide external datapoint publishers (e.g. to a cloud service). By default, there are no standard publishers (the only way to monitor datapoints is via the REST API). Custom publishers can be created and added to the local settings file (see example.py).
The supplied IzoT Publishers (including sample publishers for MQTT, SeeControl's Nexus Cloud service, InSync's SensorNet Cloud service, and Xively's Cloud service) are located in the izot.server.publishers package.
SUBSCRIBERS IzoT Subscribers are 'plug-in' components used to extend the IzoT Server to provide external datapoint subscribers. By default, there are no standard subscribers (the only way to control datapoints is via the REST API). Custom subscribers can be created and added to the local settings file (see example.py).
The supplied IzoT Subscribers (including a sample subscriber for SeeControl's Nexus Cloud service) are located in the izot.server.subscribers package.
   
class All plug-ins are defined by specifying (a unique name and) the module's fullname.
args A dictionary of custom arguments to configure the plug-in. See the appropriate plug-in source file for a description of valid custom arguments.

 

For further details on these and other settings, see the source for the individual plug-ins and the Django and Django REST Framework documentation.