(Optional) Creating a Local EnOcean Device Interface (XIF) Definition

LOCAL ENOCEAN INTERFACE IS SUPPORTED WITH SMARTSERVER 4.0 AND HIGHER.

You can download, create, and modify a device interface (XIF) definition for an EnOcean device using local mode. An EnOcean XIF definition specifies the name, program ID, manufacturer, and datapoints in a device. 

This page includes the following sections and applies to local EnOcean interface:

For remote mode, see (Optional) Creating a Remote EnOcean Device Interface (XIF) Definition.

Creating a Local EnOcean XIF File

For a local EnOcean XIF definition, create a CSV file with an .eno extension defining the EnOcean device interface. The name of the EnOcean XIF file, without the .eno extension, is the name of the EnOcean XIF. The extension must be .ENO or .eno.

You cannot use a compound extension name (i.e., .eno.csv). To monitor, log, or generate alarms based on datapoint values for an EnOcean datapoint, set the datapoint properties for the datapoint as described in Defining Datapoint Properties.

An EnOcean XIF file has the following three sections.

  • A file type specification that identifies the file as an EnOcean XIF file.
  • A product details section that specifies the program ID, version, product name, and manufacturer for the EnOcean device.
  • A datapoint list that specifies the datapoints on the device to be available to the SmartServer. The first line of the datapoint list is a header with column headings for a datapoint list. 

The following figure shows the top portion of an EnOcean XIF file:

#filetype,EnOcean_xif
#program_ID,8A000BD21441E001
#version,v02
#product_name,STM550 Multisensor
#manufacturer,EnOcean
Datapoint Name,IAP Type,Block Name,Block Index,Address,Write Enable,Precision,Receive Timeout

File Type Specification

Identify an EnOcean XIF file with an EnOcean_xif filetype specification as shown in the following example:

#filetype,EnOcean_xif

If you open a CSV file with this line in Excel, it is displayed as two cells, one with #filetype and one with EnOcean_xif.

Product Details

Provide details about the product hosting the XIF described in the EnOcean XIF file with the program_ID, version, product_name, and manufacturer specifications as shown in the following example:

#program_ID,<Program ID>
#version,<Version>
#product_name,<Product Name>
#manufacturer,<Manufacturer>

If you open a CSV file with these lines in Excel, each line is displayed as two cells.

Specify the details as follows:

  • <Program ID> – (required) in the 3 bytes comprising the Device Class and Usage fields (the 4th, 5th, and 6th bytes), the program ID contains the EnOcean Equipment Profile (EEP) values. The EEP informs the EnOcean driver how to decode the radio telegrams that it receives for this device type, based on a set of profiles that are built into the EoLink library code used by the driver. As of SmartServer 4.0, there are about 100 different profiles built into the EoLink library. The program ID can optionally have delimiters on 8-bit boundaries (e.g., 8A000BD21441E001, or  80:00:0B:D2:14:41:E0:01 with delimiters).

  • <Version> – (optional) version of the device.
  • <Product Name> – (optional) manufacturer's name for the device.
  • <Manufacturer> – (optional) device manufacturer.

Example product details specifications for an STM550 Multisensor are shown below.

#program_ID,8A000BD21441E001
#version,v02
#product_name,STM550 Multisensor
#manufacturer,EnOcean

Datapoint List

An EnOcean XIF describes a set of datapoints that are embedded in a single EnOcean radio telegram from an EnOcean device.

The first line of the datapoint list is a header with column headings for a datapoint list as shown in the example below.

Datapoint Name,IAP Type,Block Name,Block Index,Address,Write Enable,Precision,Receive Timeout

The following table describes the column contents for the datapoint list. You can arrange the columns in any order; the SmartServer uses the name in the heading row entry to identify the contents of the column.  

Parameter

Required/
Optional

Description

Datapoint NameRequired

The datapoint XIF name. This is a descriptive name to identify the datapoint.

IAP TypeRequired

An IAP type specifies the data encoding for a datapoint, the datapoint value appearance in IAP/MQ, and identifies the datapoint type to be reported in IAP/MQ when a datapoint update is published to IAP/MQ. 

An IAP type may also specify the semantic meaning of a datapoint. Each driver may support a different subset of IAP types for the native types.

The following IAP types are defined:

  • Base types – bit, boolean, sint8uint8, uint16, sint16, uint32, sint32, uint64, sint64, float, and float32.  Base type values are case-sensitive and must use lower-case letters.

  • Standard types – the types listed in the SNVT, SCPT, and ENUM sections of Online Resource Files - LonMark. As of SmartServer 3.2, the IAP standard resource file set is based on the version 16.00 LonMark standard resource file set and the version 2.01 IoT resource file set. These types are made available to IAP applications by the Resource Publisher.     

  • Custom types – types defined by a custom IAP resource file set.  Custom types are defined by an XML format export from the IzoT Resource Editor. Custom IAP resource file sets include a program ID and a scope identifier that specifies a mask for the program ID.  The scope ID may be 3, 4, 5, or 6 corresponding to program ID masks of 0xFFFFFF0000000000 for 3, 0xFFFFFFFFFF000000 for 4, 0xFFFFFFFFFFFFFF00 for 5, and 0xFFFFFFFFFFFFFFFF for 6.  Custom types are specified as <program ID>-<scope>/<type name> where the <program ID>-<scope> specification is the set identifier. 
Block NameOptionalBlock XIF name for the datapointIf not specified because the column does not exist or the existing column has no entry, then the block name will be block.
Block IndexOptional

Specifies a numeric block index. The block index can be any positive (>=0) integer value and is not required to be sequential. If not specified, the block index will be zero.

Example: for a device with 8 digital outputs, you can define 8 blocks, each named DO, using indexes 0 through 7 (it is not required for the index names to be sequential and they may not start with zero).

AddressRequiredIdentifies the datapoint that the driver is interested in. Address refers to the name of one of the EoLink channels for the device type. 
Write EnableRequired

Specify read-only (-) for an EnOcean device.  

Native 1 ValueOptional

Specifies the first of two native values for the datapoint. To specify scaling for a datapoint, specify two scaled values for the datapoint. The SmartServer uses the two sets of values to determine the scaling factors for converting a native value to an IAP value, as well as to convert an IAP value to a native value. 

Example, a native value can be scaled to an IAP value with the following:

Scaled Value = ((Native Value - Native Value 1) * ((Scaled Value 2- Scaled Value 1) / (Native Value 2- Native Value 1))) + Scaled Value 1

Example, an IAP value can be scaled to a native value with the following:

Native Value = ((Scaled Value - Scaled Value 1) *  ((Native Value 2 - Native Value 1) / (Scaled Value 2 - Scaled Value 1))) + Native Value 1

If a Native Value 1 value is specified, the Native Value 2, Scaled Value 1, and Scaled Value 2 values are required.

For Celsius to Fahrenheit conversion: 0 deg C = 32 deg F, and 100 deg C = 212 deg F
Native Value 1 = 0, Scaled Value 1 = 32 
Native Value 2 = 100, Scaled Value 2 = 212

Native Value 2OptionalSpecifies the second of two native values for the datapoint.  If a Native Value 2 value is specified, the Native Value 2, Scaled Value 1, and Scaled Value 2 values are required.  See the Native Value 1 parameter for usage and value requirements. 
Scaled Value 1OptionalSpecifies the first of two scaled values for the datapoint.  If a Scaled Value 1 value is specified, the Native Value 1, Native Value 2, and Scaled Value 2 values are required.  See the Native Value 1 parameter for usage, value requirements, and backward compatibility requirements. 
Scaled Value 2OptionalSpecifies the second of two scaled values for the datapoint.  If a Scaled Value 2 value is specified, the Native Value 1, Native Value 2, and Scaled Value 1 values are required.  See the Native Value 1 parameter for usage, value requirements, and backward compatibility requirements. 
PrecisionOptionalControls the number of decimals that will appear following a decimal point.
Receive TimeoutOptional

Implements a per-device timeout in seconds.

This parameter is intended for event-driven DP updates. If the timeout elapses without any new datapoint data appearing, then the device will transition to health : down. Once new datapoint data appears, the timer is reset, and the device will transition to health : normal.

The Receive Timeout value only needs to appear in the XIF for a single datapoint (typically the first one). If multiple datapoints have this value, then the last one has the setting advantage.

This timeout should be configured based on the expected rate of data messages from the edge devices. Some EnOcean devices will only present data at a rate of up to 30 minutes (unless there is a change in data that would result in a new update).

Other types may never present data unless a change occurs (e.g., the Rocker Switch devices). For these device types, Receive Timeout cannot be used.

Importing an EnOcean XIF File

You can import a EnOcean XIF file that you downloaded or created as described in the previous sections. The XIF file may be standalone, or it may be embedded in a device type package (.dtp) file. A device type package file is a Zip archive containing multiple definition files. To import an EnOcean XIF or device type package file, follow these steps:

  1. Open the SmartServer IoT CMS.

  2. Click the Import / Export button () on the CMS dashboard.



    The Import / Export dialog appears.



  3. Drag your XIF or device type package file to the Drop Files to Import box, or click Browse to browse for your file.

Example

The example shown below is for the STM550 Multisensor, which by default sends out a radio telegram every 60 seconds; therefore, it has a receive timeout of 120 seconds. This type of device can also be configured for a different application type other than the default, which would result in a different radio telegram structure and consequently, a different application type byte (and a different EnOcean XIF file).

The filename for the example shown below is STM550-V2.eno. This example defines an EnOcean XIF for EEP D2-14-41.

#filetype,EnOcean_xif
#program_ID,8A000BD21441E001
#version,v02
#product_name,STM550 Multisensor
#manufacturer,EnOcean
Datapoint Name,IAP Type,Block Name,Block Index,Address,Write Enable,Precision,Receive Timeout
Temperature,float,Multisensor,1,Temperature,-,1,120
Humidity,float,Multisensor,2,Relative humidity,-,0
Luminance,float,Multisensor,3,Luminance,-,0
Acceleration Status,float,Multisensor,4,Acceleration Status,-,0
Acceleration X,float,Multisensor,5,Acceleration X,-,2
Acceleration Y,float,Multisensor,6,Acceleration Y,-,2
Acceleration Z,float,Multisensor,7,Acceleration Z,-,2
Contact State,boolean,Multisensor,8,Contact State,-,0


Additional example EnOcean XIF files are available in the EnOcean resources library at:

https://github.com/izot/smartserver-iot/tree/master/resources/enocean