diff --git a/src/ScadaLink.SiteRuntime/Actors/InstanceActor.cs b/src/ScadaLink.SiteRuntime/Actors/InstanceActor.cs index 5840859..85aa776 100644 --- a/src/ScadaLink.SiteRuntime/Actors/InstanceActor.cs +++ b/src/ScadaLink.SiteRuntime/Actors/InstanceActor.cs @@ -301,6 +301,10 @@ public class InstanceActor : ReceiveActor if (_configuration == null) return; // Mark all attributes bound to this connection with the new quality + // and publish to the site stream so the debug view updates in real-time. + // We intentionally do NOT notify script/alarm actors here — the value + // hasn't changed, only the quality, and firing scripts/alarms would + // cause spurious evaluations. var qualityStr = qualityChanged.Quality.ToString(); foreach (var attr in _configuration.Attributes) { @@ -309,6 +313,16 @@ public class InstanceActor : ReceiveActor { _attributeQualities[attr.CanonicalName] = qualityStr; _attributeTimestamps[attr.CanonicalName] = qualityChanged.Timestamp; + + // Publish quality change to stream (current value, new quality) + _attributes.TryGetValue(attr.CanonicalName, out var currentValue); + _streamManager?.PublishAttributeValueChanged(new AttributeValueChanged( + _instanceUniqueName, + attr.DataSourceReference, + attr.CanonicalName, + currentValue, + qualityStr, + qualityChanged.Timestamp)); } } }