---
title: "EnOcean"
canonical: "https://docs.cuesystem.com/space/CVCHELP/518881448/EnOcean"
format: markdown
---
> Macro (toc)

---

# Introduction

The EnOcean technology is an energy-harvesting wireless technology used primarily in building automation systems - but is also applied to other applications in industry, transportation, logistics, and smart homes. Modules based on EnOcean technology combine micro energy converters with ultra-low power electronics and enable wireless communications between batteryless wireless sensors, switches, controllers, and gateways. In March 2012, the EnOcean wireless standard was ratified as the international standard ISO/IEC 14543-3-10. For details see [http://www.enocean.com](http://www.enocean.com) <u>.</u> 

The configuration and commissioning of the EnOcean system can be accomplished using EnOcean Learn/Teach process.  The Learn/Teach process is supported by embedded plug-in applications available for each EnOcean device object driver. See the appropriate section by each EnOcean** **device object for further details.  

Each EnOcean channel can send telegrams with their unique ID. The available IDs for the channel is 128 consequent values starting from the BaseID value. If there would be an attempt to send an outgoing telegram with an ID not belonging to range BaseID to (BaseID+127),  then the telegram will be sent using the original ChipID which is unique for each EnOcean transmitting chip and can not be changed. (Note that the BaseID is always mod 128 value in range &HFF800000 to &HFFFFFF80 while ChipID can be of any other value.) The BaseID of the channel can be changed but there is possible to make such a change max. 10 times by each channel! After reaching that count no further changes of BaseID are possible! ! (This principle is common by EnOcean and was invented due to safety reasons – for details see <u>[www.enocean.com](http://www.enocean.com)</u>)  

The change of BaseID can be useful for example when replacing the controller in an existing application. When changing the controller with the EnOcean channel then by setting BaseID to the value of replaced controller it can be ensured that all the outgoing telegrams will have the same IDs and so all corresponding EnOcean devices will work with these telegrams as they were with the original controller. The change of BaseID can be accomplished by the Plugin application “EnOcean Channel Setting” –  This Plugin can be used also to read the current controller BaseID and store it in the CVC project in special Read only property of the controller. This way the BaseID of the exact controller can be stored and kept in the project, where it can be found whenever the need to replace the controller would appear! So it is strictly recommended to do so by finalizing each installation!– For further details see the plugin description. 

# GetChannelInfo

This command allows reading out the basic information concerning the EnOcean channel.  

#### Syntax 

```
Function GetChannelInfo(
  ByRef baseid As Long,
  ByRef baseidrewritecount As Byte,
  ByRef chipid As Long)
```

#### Parameters 

baseid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> here the BaseID actual value will be stored. (see section Introduction above) 

baseidrewritecount 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u> variable where the number of remaining possible changes of BaseID value will be stored. As it is the standard by En Ocean gateways: the BaseID can be changed max.10 times by each EnOcean channel. After reaching this count of rewrites, no further changes to BaseID are possible! 

chipid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> here the ChipID actual level will be stored.  

Note that the original ChipID is unique for each EnOcean transmitting chip and can not be changed.  

#### Return value 

none - the actual values are written in byref parameters 

#### Example 

```
EnOcean1.GetChannelInfo(
  myChannelBaseId,
  baseIdRewriteCount,
  myChannelUniqueChipId)
```

# Send4BSTelegram 

This command sends EnOcean 4BS telegram  

#### Syntax 

```
Function Send4BSTelegram(  
  myid As Long,  
  data4bytes As ByteString[4],  
  Optional  optionaldata As ByteString := &s"",  
  Optional status As Byte := &h00)
As Boolean
```

#### Parameters 

myid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> sender ID  the value must be in the range BaseID to (BaseID+127).  If another value is used as this parameter then the sender ID will be replaced by EnOcean channel ChipID in the outgoing telegram 

data4bytes 

<u>[ByteString](/wiki/spaces/CVCHELP/pages/495058958/Data+types#ByteString)</u>[4] four byte data for 4BS telegram  

optionaldata 

<u>[ByteString](/wiki/spaces/CVCHELP/pages/495058958/Data+types#ByteString)</u> optional data for 4BS telegram  

status 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u> status for 4BS telegram  

#### Return value 

<u>[Boolean](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Boolean)</u> **True** if the telegram was sent. Otherwise **False.** 

#### Example 

```
EnOcean1.Send4BSTelegram(&HFFFFBD87, &s"\02\32\10\0b",&s"\01\ff\ff\ff\ff\FF\00", 0) 
//SEND 4BS telegram with  sender ID:FFFFBD87 , Data: 0232100b, OptionalData: 01FFFFFFFFFF00 
//telegram meaning: set level of UPD230-10 dimmer to 50% level  (50 = &H32) with  sender ID:FFFFBD87
```

# Send4BSTeachTelegram

This command sends EnOcean 4BS Teach telegram to be Learned in EnOcean receiver which is prepared in Learn mode 

#### Syntax 

```
Function Send4BSTeachTelegram(  
  myid As Long,  
  Optional  variation As Byte := 1,  
  Optional eep As Long := &hA50001) 
As Boolean
```

#### Parameters 

myid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> sender ID  the value must be in the range BaseID to (BaseID+127).  If another value is used as this parameter then the sender ID will be replaced by EnOcean channel ChipID in the outgoing telegram 

variation 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u>  - 1..2 for 4BS teach-in telegram variation  (see document EnOcean_Equipment_Profiles_EEP_Vxx.pdf for details) 

eep 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u>  - valid EEP profile number  &HA5xxxx (see document EnOcean_Equipment_Profiles_EEP_Vxx.pdf for details) needed only for variation > 1 

#### Return value 

<u>[Boolean](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Boolean)</u> **True** if the telegram was sent. Otherwise **False.** 

#### Example 

```
EnOcean1.Send4BSTeachTelegram(&hFFFFBD8A”,1)
```

# Send1BSTelegram

This command sends EnOcean 1BS telegram  

#### Syntax 

```
Function Send1BSTelegram(  
  myid As Long,  
  databyte As Byte,  
  Optional status As Byte := &h00) 
As Boolean
```

#### Parameters 

myid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> sender ID  the value must be in the range BaseID to (BaseID+127).  If another value is used as this parameter then the sender ID will be replaced by EnOcean channel ChipID in the outgoing telegram 

databyte 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u> 1byte data for 1BS telegram  

status 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u> status for 1BS telegram  

#### Return value 

<u>[Boolean](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Boolean)</u> **True** if the telegram was sent. Otherwise **False.** 

Global Function Send1BSTeachTelegram(myidstring As ByteString[4] ) As Boolean 

#### Example 

```
EnOcean1.Send1BSTelegram(&hFFFFBD87, &H0B, 0) 
//SEND 1BS telegram with  sender ID:FFFFBD87 , Data: 0b … Digital Input close
```

# Send1BSTeachTelegram

This command sends EnOcean 1BS Teach telegram to be Learned in EnOcean receiver which is prepared in Learn mode 

#### Syntax* *

```
Function Send1BSTeachTelegram(myid As Long) As Boolean
```

#### Parameters 

myid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u>  sender ID  the value must be in the range BaseID to (BaseID+127)  If another value is used as this parameter then the sender ID will be replaced by EnOcean channel ChipID in the outgoing telegram 

#### Return value 

<u>[Boolean](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Boolean)</u> **True** if the telegram was sent. Otherwise **False.** 

#### Example 

```
EnOcean1.Send1BSTeachTelegram(&hFFFFBD88)
```

<span style="color: #ff5630">Function SendRPSTelegram(myidstring As ByteString[4], databyte As Byte, status As Byte) As Boolean </span>

# SendRPSTelegram

This command sends EnOcean RPS telegram.

#### Syntax 

```
Function SendRPSTelegram(  
  myid As Long,  
  databyte As Byte,  
  status As Byte := &h00) 
As Boolean
```

#### Parameters 

myid 

<u>[Long](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Long)</u> sender ID  the value must be in the range BaseID to (BaseID+127).  If another value is used as this parameter then the sender ID will be replaced by EnOcean channel ChipID in the outgoing telegram 

mydata 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u> 1byte data for RPS telegram  

status 

<u>[Byte](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Byte)</u> status for RPS telegram  

#### Return value* *

<u>[Boolean](/wiki/spaces/CVCHELP/pages/495058958/Data+types#Boolean)</u> **True** if the telegram was sent. Otherwise **False.**

#### Example 

```
EnOcean1.SendRPSTelegram(&hFFFFBD87, &H0B, 0) 
//SEND RPS telegram with  sender ID:FFFFBD87 , Data: 0b ,Status 0
```