(Optional) Creating a Remote EnOcean (Beta) Device Interface (XIF) Definition
REMOTE ENOCEAN INTERFACE (BETA) IS SUPPORTED WITH SMARTSERVER 4.3 UPDATE 1 AND HIGHER.
You can download, create, and modify a device interface (XIF) definition for an EnOcean device using remote mode. An EnOcean XIF definition specifies the name, program ID, manufacturer, EEP, and datapoints in a device.
This page includes the following sections and applies to remote EnOcean interface (beta):
For local mode, see (Optional) Creating a Local EnOcean Device Interface (XIF) Definition.
Creating a Remote EnOcean XIF File
For a remote EnOcean XIF definition, create a CSV file with an .iotc extension defining the EnOcean device interface. The name of the EnOcean XIF file, without the .iotc extension, is the name of the EnOcean XIF. The extension must be .IOTC or .iotc.
You cannot use a compound extension name (i.e., .iotc.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, manufacturer, and EnOcean Equipment Profile (EEP) 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,Iotc_xif |
File Type Specification
Identify an EnOcean XIF file with an Iotc_xif filetype specification as shown in the following example:
#filetype,Iotc_xif |
If you open a CSV file with this line in Excel, it is displayed as two cells, one with #filetype and one with Iotc_xif.
Product Details
Provide details about the product hosting the XIF described in the EnOcean XIF file with the program_ID, version, product_name, manufacturer, and EEP 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 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.
- <EnOcean Equipment Profile> – (required) a hexadecimal number (e.g., f6-02-01) that is used to map EEPs to XIF.
Example product details specifications for an EDRPU Double Rocker Pad are shown below.
#program_ID,80000BF60201E001 |
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,EnumMapping |
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 ‘key’ reference string in the telemetry data published by the IoTC MQTT API. |
Write Enable | Required | Specify read-only (-) for an EnOcean device. |
EnumMapping | Optional | Contains a mapping definition between a string literal (coming from IoTC) and an integer number. Mapping syntax:
Mapping definition can be as follows:
Do not duplicate values on either side of a mapping. The number of mappings is limited only by the IDL’s capability of handling strings. If empty (default), no mapping is applied. |
Write Command | Optional | Defines how to generate a message to be sent to IoTC's mqtt |
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. |
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 filename for the example shown below is STM550-V1.iotc. This example defines an EnOcean XIF for EEP D2-14-41.
#filetype,Iotc_xif |
Additional example EnOcean XIF files are available in the EnOcean resources library at:
https://github.com/izot/smartserver-iot/tree/master/resources/enocean