What’s New in Edge Xpert 1.6

Discover what’s new in our Edge Xpert 1.6.x releases for the following areas:

Edge Xpert

Summary Description Service Version Related Case
Updated the example profiles for device-canbus The example progiles and the ds-data folder, which are used by the Canbus Device Service have ben updated. The pakage installation scripts have also been updated to install these updates to the correct location 1.6.5  
Exported readings can contain the uomLabel and valueType As the dataType field is deprecated and replaced by the valueType, both dataType and valueType can be included in readings. The uomLabel for the measurement field can also now be included 1.6.5 00001180
Handle the Redis command error on event deletion The unexpected Fail to query event by ID error is now prevented by handling the Redis command error on event deletion 1.6.5 00001186
Avoid unexpected stops of the export-distro service when exporting to an unreachable InfluxDB endpoint If the client encouters any errors while writing to InfluxDB, the InfluxDB sender client of the export-distro service is reset to nil. As each incoming event is processed by a different goroutine, the original implmentation of the InfluxDB Send function was not atomic and thread safe. This meant that the nil reference error while registering with multiple exports to the same endpoints could trigger the race condition and cause an unexpected stop of the export-distro service. To avoid the unexpected stops of the export-distro service, a mutex has been added to the InfluxDB Send function to guarantee thread safety 1.6.5 00001184
Device profile can be updated using metadata during runtime The restrictions on Metadata and Core Data have been removed to allow the device service callback to be correctly triggered 1.6.4  
Create the value descriptor by uploading the device profile Value descriptor management has been enabled and the value descriptor is created on upload of the device profile 1.6.4 00001160
Fixed the export-distro panic error When export-distro sent data to the Azure IoT Hub, the export-distro service could sometimes crash with a panic error. This has been fixed 1.6.4  
Improved the performance of the event deletion process Core-data deletes events according to the specified EventMaxLimit. Event deletion is now an asynchronous process to improve performance 1.6.4 00001171
Prevented item not found error when pushing new events to Core Data Mutex lock has been used to ensure that multiple concurrent processes do not simulateneously delete old events. This avoids the item not found error when the core-data service handles multiple simultaneous POST requests and the number of persisted events reaches the MaxEventLimit defined in the core-data configuration 1.6.3 00001146
Added a workaround for the issue using boolean values with InfludDB When exporting a boolean value to InfluxDB, the value is not plotted in Grafana. When exporting boolean values to InfluxDB, the true and false values are now replaced with FLOAT 1 and FLOAT 0 values respectively to correctly plot the boolean value in Grafana 1.6.3 00001162
Additional character in VAULT_ADDR A typo in the docker-compose file, which could cause an error in the Vault service, has been fixed 1.6.2  
Added a commandName field to the Device Service data structures The new commandName field allows the co-ordination of device data to the Edge Xpert device command from which it was collected. This field is added to the Edge Xpert core services for both Go and C Device Service SDKs. The update is available in all Edge Xpert Device Services 1.6.2 00001128
Added the mapping of the timestamp for readings collected from devices as the primary index for InfluxDB InfluxDB uses time as the primary index for device readings. The initial implementation of export-distro mapped the timestamp of exported readings to InfluxDB as the primary index. To avoid confusion for users, export-distro now maps the timestamp of readings collected from a device as the primary index for InfluxDB 1.6.2 00001141
Added the SSL certificates when sending a notification by email The following error was seen when sending a notification by email: level-ERROR ts=2020-02-11T07:20:50.079707063Z app=edgex-support-notifications source=sending_service.go:98 msg=Problems sending message to xxx@gmail.com, issue: x509: certificate signed by unknown authority. This was caused by the lack of an SSL certificate. The SSL certificate is now included 1.6.2 00001122
Updated the InfluxDB environment variables in the docker-compose file The INFLUXDB_ADMIN_ENABLED environment variable has been deprecated and replaced by the INFLUXDB_HTTP_AUTH_ENABLED environment variable 1.6.1 00001143
Prevented an initialization error with kong-db caused by changes to Postgres security Previously, the absence of the POSTGRES_PASSWORD caused a warning, but did not stop the database from starting. Due to changes in security with Postgres docker images from 9.6.17, if the POSTGRES_PASSWORD has not been specified the POSTGRES_HOST_AUTH_METHOD is not set to trust and the database fails to start. A new kong environment variable, KONG_POSTGRES_PASSWORD has been added to allow you to specify the edgex-kong-db password before starting the microservice 1.6.1 00001157
Changed the port used by the Kong microservice to avoid a clash with Portainer Since version 1.22.2, Portainer has used port 8000 to communicate with Edge Xpert. This caused a clash with Kong, which also used port 8000 to handle HTTP traffic. To avoid this clash, the Kong microservice has been updated to use port 8686 by default to handle HTTP traffic 1.6.1 00001159
Fixed an issue with C license validator This fix allows the C license validator to read soft-linked license files 1.6.1 00001124
Fixed an issue with GO services when deployed in Kubernetes GO services failed to start their web servers when deployed in Kubernetes. The services now start correctly 1.6.1 00001122
Added real-time extensions for Device Services developed using the C Device Service SDK IOTech applied the technology created for Edge XRT to the Edge Xpert Device Services that are implemented in C 1.6.0  
Added support for store and forward in Export Services You can now define when and where to deliver the data 1.6.0  
Added support for batching in Export Service Batch-processing can now be configured for the Export Service 1.6.0  
Re-designed What’s New page Only the most recent release change history is now included, and the page is redesigned to provide more information on the changes 1.6.0  
Improvements to the device provisioning examples in the documentation Further information has been added to clarify the steps required in device provisioning for the BACnet, Modbus, File and MQTT examples 1.6.0  

Edge Xpert Device Services

The following tables describe updates made to Edge Xpert Device Services.


If no updates have been made to a specific service, no table is included for that service.

BACnet Device Service

Summary Description Service Version Related Case
Separated the BACnet/IP and BACnet/MSTP Device Services The BACnet Device Service now supports BACnet/IP and BACnetMSTP as separate Device Services. BACnet/IP Device Service is automatically used, unless configuration is updated to use the BACnet/MSTP Device Service 1.6.0  

CANbus Device Service

Summary Description Service Version Related Case
Added CANbus Device Service The CANbus device service is now included with Edge Xpert 1.6.0  

EtherCAT Device Service

Summary Description Service Version Related Case
Added EtherCAT Device Service The EtherCAT Device Service is now included wth Edge Xpert 1.6.0  

Modbus Device Service

Summary Description Service Version Related Case
Added support for bool write operations for HOLDING_REGISTER The Modbus Device Service now supports write operations for the bool data type to the HOLDING_REGISTER 1.6.3 00001177
Support String data type The Modbus Device Service now supports the String data type 1.6.3  
Added support for boolean data from a specific bit The boolIndex attribute has been introduced to specify the bit of a register from which to retrieve a bool value 1.6.2  

MQTT Device Service

Summary Description Service Version Related Case
Added support for fetching the timestamp of a reading from the JSON message The MQTT Device Service can now take the timestamp information from a device from the JSON message 1.6.2 00001167

OPC-UA Device Service

Summary Description Service Version Related Case
Added support for a username and password when connecting to an OPC-UA endpoint The Username and Password protocol properties have been added to the OPC-UA Device Service. If used, both must be present and set, and are used to connect to the remote server 1.6.2 00001140
Fixed an issue where the OPC-UA Device Service crashed following a restart A potential invalid memory read when connecting to multiple endpoints using OPC-UA has been resolved 1.6.2 00001138
Added support for Browse Service in OPC-UA Device Service The Browse Service can be used to browse the namespace of an OPC-UA server and find notes that might be of interest 1.6.0  

PROFINET Device Service

Summary Description Service Version Related Case
Added PROFINET Device Service The PROFINET Device Service is now included with Edge Xpert 1.6.0  

REST Device Service

Summary Description Service Version Related Case
Added REST Device Service The REST device service is now included with Edge Xpert 1.6.6  

Edge Xpert Manager

Summary Description Service Version Related Case
Avoided unexpected error when uploading a device profile If the server response is delayed when uploading a device profile, an unexpected error could occasionally occur that caused the upload to fail. This has now been fixed 1.6.4  
If a device is unavailable, the message from the GET command has been changed to be more meaningful Previously when a device was unavailable, the GET device command returned N/A. Now when a device is unavailable, the GET device command returns Unable to connect 1.6.4  
Allowed spaces in names when adding devices and export registrations in the Edge Xpert Manager The Device and Export Wizards now allow spaces to be included in the Name field when adding a device, or creating an export registration 1.6.2  
Improved performance when re-entering the Login page of the Edge Xpert Manager When opening the Login page in subsequent sessions, large amounts of data could be loaded causing a lengthy load time. To prevent this, the search time is now reset on any subsequent Log in 1.6.2  
Updated the Copyright statement in the Edge Xpert Manager The copyright had not been updated to 2020, this has now been updated 1.6.2  
Added the Measurement Name field to the Export Wizard for InfluxDB The Measurement Name field points to the publisher variable used to set measurements in InfluxDB 1.6.1 00001149
Fixed an issue when updating the export registration using the Edge Xpert manager When updating an export registration using the Edge Xpert Manager, the following error was seen: Failed to unmarshal update registration. Error: Name is required. The name value is now included when updating the export registration using the Edge Xpert Manager 1.6.1 00001148
Added username and password to Edge Xpert manager GUI for OPC-UA Updated GUI to include additional OPC-UA protocol properties 1.6.1 00001140
Added timeline view for Notifications and Logs in Edge Xpert Manager The timeline allows the user to drill down to view data at specific times. 1.6.0  
Added live feedback for Readings in Edge Xpert Manager As you move the mouse over the graph view, the details of each data point are displayed 1.6.0