Optimizing BACnet with subscribeCOV and Polling

Written By Evolo Support

Last updated 2 days ago

Brief Summary

Evolo The gateway can retrieve values from BACnet devices in two main ways:

  • subscribeCOV

  • polling

Proper configuration is essential for stable communication, accurate logging, and low load on the BACnet network.

Most importantly, the logging must correspond to how the values are retrieved.

Recommended General Rule

Configuration

Recommended logging

subscribeCOV Enabled, and the BACnet device supports the required number of subscriptions

On change

subscribeCOV Enabled, but the BACnet device reaches the limit for concurrent COV subscriptions

Interval, for example 1 or 5 minutes

subscribeCOV disabled

Interval of 1 minute or more

❗ Do not use "On Change" when subscribeCOV is disabled.

This is the most common misconfiguration we see, and it can lead to:

  • unnecessary BACnet traffic

  • high load on the BACnet network

  • incomplete logging

  • unstable updates

What is subscribeCOV?

When “subscribeCOV” is enabled, the Evolo Gateway subscribes to value changes from the BACnet device.

The BACnet device then automatically sends updates when values change.

This typically results in:

  • less BACnet traffic

  • faster updates

  • more efficient communication

  • lower network load

  • a correct basis for logging with “On Change”

subscribeCOV is generally recommended if the BACnet device supports the feature correctly.

What is polling?

Polling means thEvolon Gateway reads values from the BACnet device at fixed intervals.

Example:

  • every 1 minute

  • every 5 minutes

Polling is typically used when:

  • The BACnet device does not support "subscribeCOV"

  • subscribeCOV it operates erratically

  • the manufacturer recommends polling

  • the device requires traditional polling to ensure stable values

Why “On Change” requires subscribeCOV

Logging using “On Change” requires that the Evolo Gateway be notified when a value changes.
This normally occurs when “subscribeCOV” is enabled.

If “subscribeCOV” is disabled, the gateway does not automatically receive value changes. The gateway must then read the values manually using polling.

In that case, logging should be set to “Interval.”

If logging is still set to “On Change,” the result may be:

  • incomplete history

  • missing data points in graphs

  • unnecessary BACnet traffic

  • high network load

Limit on the number of concurrent COV subscriptions

Although “subscribeCOV” is normally recommended in conjunction with “Ved endring” logging, there are cases where this is not the correct configuration.

Some BACnet devices have a limit on the number of concurrent COV subscriptions they support. If logging is set to “Ved endring” and “subscribeCOV” is enabled, the Evolo Gateway will subscribe to value changes for the data points on the interface.

If the interface contains many data points, this may cause the BACnet device to reach the limit on the number of data points it can have in active COV subscriptions at the same time.

This can result in symptoms such as:

  • rejected COV subscriptions

  • missing or unstable value updates

  • incomplete logging

  • high load on the BACnet device

  • errors related to the maximum number of active subscriptions

In such cases, logging should be changed from “Ved endring” to a fixed interval, such as 1 or 5 minutes.

subscribeCOV may still be enabled on the interface, but logging should not depend on all data points being in active COV subscriptions at the same time.

This provides a more stable configuration and reduces the risk of the BACnet device reaching the limit for concurrent subscriptions.

Data Points in Views

When a user opens a View containing BACnet data points, the Evolo Gateway retrieves updated values for the displayed data points.

When subscribeCOV is enabled

Values are normally updated automatically when the BACnet device sends value changes.

This results in low load on the BACnet network.

When subscribeCOV is disabled

Instead, the gateway must poll the data points used in the view.

Polling then occurs at the maximum allowed interval defined in the interface.

This can result in significant additional BACnet traffic, especially if:

  • the view contains many data points

  • multiple users have views open at the same time

  • views remain open over time

  • logging is set to “On Change”

This combination can lead to high network load and unstable communication on the BACnet network.

Best Practices

Use subscribeCov when:

  • The BACnet device supports the feature correctly

  • you want as little BACnet traffic as possible

  • you want fast value updates

  • you want logging based on actual value changes, and the BACnet device supports the required number of COV subscriptions

If the BACnet device has a limit on the number of concurrent COV subscriptions, logging should be set to an interval, such as 1 or 5 minutes, even if “subscribeCOV” is enabled.

Use polling when:

  • The BACnet device does not support “subscribeCOV

  • subscribeCOV it operates erratically

  • the vendor recommends polling

  • you want fixed reading intervals

When using polling, logging should be set to an interval, such as 1 minute or longer.