COV (Change of Value)

General information

The Climatix system supports the Change of Value (COV) concept. This means, a new value will only be sent to a client if the value exceeds a configured COV threshold. The COV mechanism avoids a polling of the value, the controller itself will notify the client automatically if the value has changed.

COV Clients

Inside the Climatix system, each client can have its individual COV threshold. For example, SCOPE can have a lower COV threshold for a temperature while the COV threshold for the communication is a higher one in order to avoid too much traffic.

This means, the client itself is responsible for storing the COV threshold; it can NOT be stored inside the automation object. Every automation object instance supports up to two COV thresholds that must be defined at COV registration time.

If a client registers to an automation object, the client will receive the current value at this time that is not marked with COV_NO and has a value that is not 0.

info

Members with the value 0 are not sent to the client. The client has to initiate its state with 0 and then the automation object can be registered for COV service.

COV base methods

The automation objects support the following COV methods, which are individual for each automation object member:

Method

Abbreviation

Description

No COV supported

COV_NO

A change of this value is never reported to the client. The client has to poll this member to get an updated value.
This is mainly used for static members that cannot be changed after startup.

COV without threshold

COV_FORCE

Every change is reported to the client, without using the COV threshold.

| actValue - oldValue | > 0

COV with
threshold value 1

COV_VALUE1

If the difference of the actual value and the last sent value is greater than or equal to the COV threshold 1, the client is notified.

| actValue - oldValue | >= COV1

COV with
threshold value 2

COV_VALUE2

If the difference of the actual value and the last send value is greater than or equal to the COV threshold 2, the client is notified.

| actValue - oldValue | >= COV2

 

The following graph shows where a new value is sent to the client (COV threshold is 2,0):

COV enhanced

This functionality is available since VVS11.42.

The new firmware supports enhanced COV methods that are not automatically supported by all COV clients. If the enhanced COV method is supported, the client description contains a link to this chapter (like the cloud mapping),

In addition to the absolute COV threshold, the enhanced COV supports the following new methods:

Time based COV

The time-based COV is available in addition to the COV threshold event. If no event is sent at a defined time, the value is sent to the client and the old value is set to the actual value and the time restarts.

A red circle indicates that the value is sent due because the COV threshold was exceeded and the yellow circle indicates that the time interval has expired.

WARNING

warning

Due to memory limitations, a maximum of 10 members per object instance can be used for the time-based service.

COV threshold in percent

In addition to the absolute COV threshold, a percentage can be configured. This means, the COV client will receive a new value if the delta of the actual value minus the current value is greater than the defined percentage.

| actValue - oldValue | >= (COV[%] * oldValue)

If that oldValue is close to zero, too frequent notifications of the client can occur. Therefore, a minimal value must be also configured (for sure as absolute value).

| actValue - oldValue | >= max ((COV[%] * oldValue), minThrehold)

Every edge inside the following picture represents a COV event. With smaller values, there are more events than for bigger values:

COV group definitions

A group definition consists of a group number and an object and member ID. The group is enabled if the member value is unequal to zero, and it is disabled if the member value is zero. The groups can be defined via the mapping or via the COV configuration file.

In the COV configuration for an object instance, the mapping can be assigned to a group definition. The number of groups depends on the capabilities of the device and can be found inside the limit document.

Syntax inside the mapping file

The COV group will be defined via the virtual object that depends on the COV client. Currently, the following clients are supported:

Client

Virtual Object ID

Cloud

0xF040 0x0003

The member ID can be from 0 to the device limit number and must be a whole number.

The syntax is as follows:

<Group,EnableObjID>

Item

Description

Group

The group number.

EnableObjID

The raw coded member and object ID for the object which will enable COV for this group. If the referenced object or member does not exist, the group is per default disabled.

Sample

Three COV groups are defined in this configuration.

COV enhanced mapping

To use the new feature, the COV mapping needs to be enhanced. The general COV configuration is the same as before but can be enhanced with the following features. The order of the optional items is free and not fixed.

[COV1, COV2,P<value>,Z<value>]

Item

Mandatory/Optional

Description

COV1

Mandatory

The first COV threshold (can be absolute or percent value).

COV2

Mandatory

The second COV threshold (can be absolute or percent value).

P<value>

Optional

COV1, COV2 are interpreted as percentage value, <value> indicates the minimum absolute threshold that the value will not fall below.

Z<value>

Optional

Defines the maximum send time in seconds. This means that even if the value is not changing, it will be sent latest after <value> seconds.

G<value>

Optional

Assigned to COV group <value>.

Sample

COV configuration file

With this file, the COV configuration can be modified during runtime. It lets the user:

COV file location

When the controller starts, it checks the following file locations and uses the file that is found first:

  1. SD card cloud upgrade folder (\CSL\COV*.UCF)
  2. SD card root folder (\COV*.UCF)
  3. Ram/Flash file system

The file must start with COV and end with .ucf, such as “COVCloud.ucf”.

When the file is loaded via the cloud, it immediately becomes active. If an SD card is inside the controller, the file will be stored there. If no SD card is available, the file is stored inside the RAM file system and goes lost after a controller restart.

The new file format is also supported by the normal controller upgrade procedure.

COV file format

The file is a text-based file with the following UCF header:

::UCFFile::
DeviceID=0
TYPE=16
FileName=COVCloud.ucf
UUID=B2CF35DC-05A5-41FD-BDFC-4AF582F43A17
END

The UUD can be changed with every new version. The TYPE must be 16 and the FileName can be any name with the syntax: COV*.ucf.

After the header, the group definition and the COV definition can follow in any order.

Syntax for the COV group definition:

G;<Group;EnableObjID>

Item

Description

Group

The group number.

EnableObjID

The raw coded member and object ID for the object that will enable COV for this group. If the referenced object or member does not exist, the group is disabled per default.

Syntax for COV definition:

C;ObjID;COVdef

Item

Description

ObjID

The raw coded object ID for the object that will get the changed COV definition.

COVdef

The new object COV definition. The syntax is identical to the enhanced COV mapping.

For example:

[10,2,P0.2,G16]

 

Sample file

::UCFFile::
DeviceID=0
TYPE=16
FileName=COVCloud.ucf
UUID=B2CF35DC-05A5-41FD-BDFC-4AF582F43A17
END
G;<3,0x2302 0x031A0C6F 0x0100>
C;0x230A 0x031A9F43;[10,2,P0.2,G16]
C;0x230A 0x031A9F42;[5,3,P0.2,G16,Z20]
C;0xA018 0x9663334E;[2,2,G16]
G;<16, 0x0020 0x00000001 0x001B>
G;<10, 0x0020 0x00000032 0x001B>
C;0x230A 0x031AD8D6;[1.0,0.10,Z10,G3]