DataChangeTrigger
DataChangeTrigger is the field of a DataChangeFilter that defines what counts as a change: Status reports only StatusCode changes, StatusValue - the default - reports status or value changes, and StatusValueTimestamp additionally reports when only the SourceTimestamp has moved. It decides whether an unchanged value still produces traffic.
The three settings and what they cost
Status is the cheapest and reports almost nothing: use it for items you watch purely for quality, such as a device-health tag. StatusValue is the sensible default and is what every client uses unless told otherwise. StatusValueTimestamp reports on every new sample even when the number is identical, so its traffic equals the sampling rate - it is the setting that turns a subscription into a fixed-cadence stream.
When StatusValueTimestamp is the right answer
When you need proof of liveness at the sample level, or a regular cadence for downstream time-series maths, and you would otherwise build a client-side heartbeat to fake it. It only works if the server actually updates SourceTimestamp on every sample, which not all do - some only touch the timestamp when the value changes, in which case this setting behaves identically to StatusValue.
It interacts with the deadband, not replaces it
Trigger and DeadbandType are independent fields of the same filter. A deadband decides whether a value change is big enough to count; the trigger decides which kinds of change are considered at all. Combining StatusValueTimestamp with a deadband is contradictory in practice - the timestamp condition fires every sample regardless of the deadband - so pick one intent per item.
Example
The same sample series under the three triggers
samples (value, status, sourceTs):
t1 (20.0, Good, 10:00:00) t2 (20.0, Good, 10:00:01) t3 (20.5, Good, 10:00:02)
t4 (20.5, Bad_NoCommunication, 10:00:03) t5 (20.5, Good, 10:00:04)
Status -> t4, t5 2 notifications
StatusValue -> t3, t4, t5 3 notifications
StatusValueTimestamp -> t1, t2, t3, t4, t5 5 notifications (every sample)
Defined in: Part 4 - Services, DataChangeFilter and the DataChangeTrigger enumeration.
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.