What COV Is
Change of Value (COV) is a BACnet subscription service. Instead of polling a device at fixed intervals, a subscribing client asks the server device to report a property value only when it changes by more than a configured increment.
COV reduces network traffic and provides faster response to value changes compared to periodic polling.
COV vs Polling
| Aspect | COV | Polling (ReadProperty) |
|---|---|---|
| Network traffic | Only on change | Every poll interval |
| Latency | Near real-time | Up to one poll interval |
| Device support | Optional — not all devices implement COV | Universal |
| Configuration | Requires subscription + increment tuning | Simple — just set interval |
Key Concepts
- COV Increment — the minimum change in value that triggers a notification. Set too low = excessive traffic. Set too high = missed changes.
- Subscription lifetime — COV subscriptions expire and must be renewed. If the subscriber doesn’t renew, notifications stop silently.
- Confirmed vs Unconfirmed — confirmed COV requires acknowledgment from the subscriber; unconfirmed does not.
[!NOTE] COV support varies widely between devices. Always verify COV capability in the device’s PICS (Protocol Implementation Conformance Statement) before designing a COV-based integration.
Common Issues
- Device doesn’t support COV → falls back to polling
- Subscription expires without renewal → values stop updating silently
- COV increment mismatch → either too many notifications or missed changes