Skip to content

Device Services

Introduction to Device Services

Device Services are the software connectors that interact with the physical devices, sensors, actuators, and other IoT objects that reside at the edge, such as:

  • Home appliances
  • Industrial machines
  • Alarm systems
  • HVAC equipment
  • Lighting
  • Irrigation systems
  • Drones
  • Traffic systems
  • Automated transportation

The data collected from devices is delivered to the Edge Xpert Core Services layer for normalization and aggregation. From there, the data can be delivered to other edge components such as the Edge Xpert Supporting Services or Edge Xpert Application Services.

The Device Services communicate to the edge devices using their native industrial protocol, with services provided for industry standards including BACnet, Modbus, OPC-UA, and many more.

Device Service Features

All Device Services do the following:

  • Register with the Core Metadata service
  • Obtain configuration settings
  • Register with the Registry Service
  • Onboard and manage the edge devices. This process is called provisioning the device. Some device services are able to automatically detect and provision the device, See Automatic Discovery
  • Update and inform Edge Xpert of the operating state of the device
  • Monitor for configuration changes and apply the new configuration
  • Obtain sensor data and pass the data to the Core Data microservice
  • Receive and respond to actuation commands

Auto Events or Data on Demand

Data collected from devices by a device service is marshaled into events and reading objects (delivered as JSON objects in service REST calls). This is one of the primary responsibilities of a device service.

This data can be polled and written to on-demand through user-submitted REST API calls.

Alternatively, auto events can be configured for each device to schedule events on specific resources at defined intervals. Auto events have three configurable fields:

  • Resource. The name of the resource

  • Interval. The required interval. This is specified in an alphanumeric string, for example, 5m indicates five minutes, 1hr indicates one hour, 5000 μs indicates 5000 microseconds

  • On Change. This indicates if events should only be created when data values have changed

    • If set to true, this will only poll the device when data has changed, if no change has occurred, an event will not be generated.
    • If set to false, this will poll the device at every interval, regardless of whether or not a change in data values has occurred.

Auto events are defined when configuring a device. If necessary, they can be added to, modified, or removed from devices by editing a device.

Admin State

The Admin State is either LOCKED or UNLOCKED for each device. This is an administrative condition applied to the device. This state is periodically set by an administrator of the system — perhaps for system maintenance or upgrade of the sensor. When LOCKED, requests to the device via the device service are stopped and an indication that the device is locked (HTTP 423 status code) is returned to the caller.

Using Device Services

Device services can be managed through both cURL commands, or the Edge Xpert Manager UI.

Starting a Device Service

To start a device service, enter the following command:

edgexpert up <device-service>

Adding Device Profiles

Once a device service is started, you can add device profiles. A device profile details resources and commands that are available on that device type.

For further information on device profiles, see Device Profiles.

Adding Devices

When adding a device connection to Edge Xpert, you must provide information that depends on the protocol used. Some examples of the information that could be required are as follows:

  • The hardware port (for example, serial) to which the device is connected
  • The IP address of the device
  • The MAC address of the device
  • The TCP/IP port used for the connection
  • A hierarchical path

The required information is detailed in the documentation for each supported device service.

Some Device Services support automatic discovery which where the sensors and devices that are running in a local network can be dynamically discovered by Edge Xpert and automatically onboarded to the platform. This feature can greatly minimize the configuration required to locate and onboard devices in a specific deployment scenario and can help to simplify the roll out of the solution at scale.

Warning

A device service must be started and a compatible device profile must be uploaded prior to adding a device

Device Interaction

Once the above steps have been completed, you can start interacting with devices. Device services use a REST API for interaction.

For further information on the Device Service API, see API Documentation.

Current Device Services

Edge Xpert is always adding new device services. The currently available device services are as follows:

Device Service Port Description Language
BACnet (IP) 59980 Integrates the BACnet protocol into Edge Xpert. Compatible with BACnet/IP C
BACnet (MSTP) 59981 Integrates the BACnet protocol into Edge Xpert. Compatible with BACnet/MSTP C
BLE 59984 Integrates the BLE protocol into Edge Xpert C
EtherNet/IP 59959 Supports connections over the EtherNet/IP protocol C
GPS 59987 Supports reading of GPS data via a GPS daemon C
Modbus 59901 Integrates the Modbus protocol into Edge Xpert. Compatible with TCP/IP and RTU C
MQTT 59982 Integrates the MQTT protocol into Edge Xpert Go
ONVIF Camera 59985 Integrates ONVIF Camera with Edge Xpert C
OPC-UA 59953 Integrates the OPC-UA protocol into Edge Xpert C
REST 59986 Allows third-party applications, such as Point of Sale (POS) systems and CV Analytics, to push data to Edge Xpert using the REST protocol Go
S7 59958 Integrates the S7 protocol into Edge Xpert C
USB Camera 59983 Integrates USB cameras with Edge Xpert C
Virtual 59900 An example device service used for testing and demonstrative purposes Go
WebSocket 59950 Allows applications to push data into Edge Xpert via the WebSocket protocol Go