diff --git a/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/Module.cs b/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/Module.cs index 9cbedb141..5791b0b33 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/Module.cs +++ b/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/Module.cs @@ -899,10 +899,19 @@ await AsyncVoidGuard.Run( if (observation.Category == DataItemCategory.CONDITION) { var conditionObservations = Agent.GetCurrentObservations(observation.DeviceUuid, observation.DataItemId); - var result = await _entityServer.PublishObservations(_mqttClient, conditionObservations.OfType()); - if (result != null && result.IsSuccess && conditionObservations != null && conditionObservations.Any()) + if (!conditionObservations.IsNullOrEmpty()) { - RecordLastSentSequence(conditionObservations.Max(o => o.Sequence)); + var multipleObservations = new List(conditionObservations.Count()); + foreach (var observation in conditionObservations) + { + multipleObservations.Add(CloneAsObservation(observation)); + } + + var result = await _entityServer.PublishObservations(_mqttClient, multipleObservations); + if (result != null && result.IsSuccess) + { + RecordLastSentSequence(conditionObservations.Max(o => o.Sequence)); + } } } else