I implemented a simple IoT Edge module from scratch as simulated temperature and humidity sensor. When I try to see the messages being sent to the cloud, I receive this error:
SendEventAsync for a named output is available for Modules only.
private static async Task SendMessages(DeviceClient deviceClient)
{
Console.WriteLine("Device sending {0} messages to IoTHub...\n", MessageCount);
var rnd = new Random();
for (var count = 0; count < MessageCount; count++)
{
_temperature = rnd.Next(20, 35);
_humidity = rnd.Next(60, 80);
var alert = _temperature > TemperatureThreshold ? "true" : "false";
var messageBody = new MessageBody
{
DeviceId = ModuleId,
MessageId = count,
Temperature = _temperature,
Humidity = _humidity
};
var dataBuffer = JsonConvert.SerializeObject(messageBody);
var eventMessage = new Message(Encoding.UTF8.GetBytes(dataBuffer));
eventMessage.Properties.Add("temperatureAlert", alert);
Console.WriteLine("\t{0}> Sending message: {1}, Data: [{2}]", DateTime.Now.ToLocalTime(), count, dataBuffer);
await deviceClient.SendEventAsync("toFilterModule", eventMessage);
}
}
This is my cinnection string:
var connectionString = Environment.GetEnvironmentVariable("EdgeHubConnectionString");
Any idea of how to fix it?
Thank you!