(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 (Beta) 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 |
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> |
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 |
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/ | Description |
---|---|---|
Datapoint Name | Required | The datapoint XIF name. This is a descriptive name to identify the datapoint. |
IAP Type | Required | 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:
|
Block Name | Optional | Block XIF name for the datapoint. If not specified because the column does not exist or the existing column has no entry, then the block name will be block. |
Block Index | Optional | 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). |
Address | Required | Identifies the datapoint that the driver is interested in. Address refers to the name of one of the EoLink channels for the device type. |
Write Enable | Required | Specify read-only (-) for an EnOcean device. |
Native 1 Value | Optional | 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 2 | Optional | Specifies 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 1 | Optional | Specifies 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 2 | Optional | Specifies 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. |
Precision | Optional | Controls the number of decimals that will appear following a decimal point. |
Receive Timeout | Optional | Implements a per-device timeout in seconds. This parameter is intended for event-driven datapoint 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:
- Open the SmartServer CMS.
- Click the Import / Export button ( ) on the CMS dashboard.
The Import / Export dialog appears. - 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 |
Additional example EnOcean XIF files are available in the EnOcean resources library at:
https://github.com/izot/smartserver-iot/tree/master/resources/enocean