Data Model

The SmartServer IoT uses an innovative data model that is flexible enough to support multiple protocols, yet is rich enough to simplify integration of data and controls from disparate devices using different communications protocols. The data model is based on datapoints.  Datapoints are represented in diagrams as a simple block with an inset on the left to represent an input to the datapoint, and an arrow on the right to represent a reported value from the datapoint.  Here is an example datapoint that reports the temperature for a space.

Datapoints may be a single value, or they may be a collection of values collected into a structure with multiple fields containing individual values.  Each datapoint has a datapoint type that you can use to interpret the contents of the datapoint.  The datapoint type describes the units and range of data represented by the datapoint.  For example, the RoomTemperature datapoint can have a datapoint type that specifies it is a temperature value represented in Celsius.

Large systems with hundreds of devices may have thousands of datapoints.  To simplify organization of the datapoints, they are grouped into blocks, where a block is a set of datapoints supporting a common function.  For example, the following figure illustrates a wall unit block that contains datapoints associated with a wall-mounted space temperature controller.  A datapoint that reports a datapoint value for the block is called an output datapoint and has an arrow pointing out of the block.  In this example, the WallUnit block has output datapoints that report the space temperature, effective setpoint, and effective occupancy for the space.  A datapoint that accepts datapoint value updates for the block is called an input datapoint and has an arrow pointing into the block.  In this example, the WallUnit block has a setpoint input datapoint that accepts updates to the setpoint for the space.

The expected contents of a block is specified by a profile.  A profile specifies required and optional inputs and outputs for a type of block.

Profiles and datapoint types are defined in files called resource files.  The SmartServer includes a rich set of profiles and datapoint type definitions based on profiles and types defined by LonMark International.  The SmartServer enables these profile and type definitions to be used with devices using any communications protocol.  The LonMark definitions are available at

The SmartServer data model provides the following advantages over systems with less complete data models, or that are based on command-based or tag-based data models:

  • Eliminates ambiguity for specifying the inputs and outputs of a device
  • Simplifies data sharing among devices and clients while maintaining independence of the devices and clients from each other
  • Enables standard services like monitoring, logging, alarming, and scheduling to be applied consistently across diverse set of devices
  • Allows for re-use and standardization of device types to make installations much more efficient
  • Supports seamless integration of devices using different protocols and data encoding – for example, the SmartServer data model simplifies integration of devices using BACnet objects, LON network variables, and Modbus data registers
  • Supports priorities (1 through 16, and normal) to determine the current value for a datapoint when writing to a datapoint. See also Datapoint Update Priorities.