Optimizing BACnet with subscribeCOV and Polling
Written By Evolo Support
Last updated 3 days ago
Brief Summary
Evolo The gateway can retrieve values from BACnet devices in two main ways:
subscribeCOVpolling
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
❗ 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"subscribeCOVit operates erraticallythe 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”subscribeCOVit operates erraticallythe vendor recommends polling
you want fixed reading intervals
When using polling, logging should be set to an interval, such as 1 minute or longer.