iot hub
20 TopicsStep-by-step guide to installing OPC Publisher on Azure IoT Edge
Of all the Azure IoT Edge modules, the OPC Publisher is one of the more challenging modules to setup. I've had a number of Industrial IoT partners struggle with connecting an OPC UA server, such as a Historian or SCADA system, to Azure IoT Hub using Azure IoT Edge and our open source OPC Publisher module. So I recently wrote a step-by-step blog post on LinkedIn on how to do this. If you don't have a physical device to act as the IoT Edge gateway, you can use a virtual machine running on-premise or in Azure as an alternative. Hopefully the blog post will help you and save you some headaches when connecting using OPC UA.10KViews3likes0CommentsProcessing ordered IoT streams in Azure
There are thousands of articles on the Internet talking about how the cloud can be used to process discrete (un-ordered) streaming IoT data. But almost all are short on specifics and the design trade-offs you need to make when processing ordered IoT streams, at scale. This article discusses why scale can be difficult to achieve, especially when the ordering of the events (aka Series events) is important. Jeff Hollan wrote an article which illustrates the challenge when using Azure Functions, for example. And if you need a primer on Real-time processing, Events, Messages, Series events and Discrete events, please review the following articles: Real time processing Events, Data Points, and Messages - Choosing the right Azure messaging service for your data Choose between Azure messaging services - Event Grid, Event Hubs, and Service Bus5.5KViews3likes0CommentsLearn TV -Learn how to develop secure IoT solutions with Azure Sphere and IoT Hub 13th October 2020
In this session Dave and Mustafa will deploy an Azure Sphere application to monitor ambient conditions for laboratory conditions. The application will monitor the room environment conditions, connect to IoT Hub, and send telemetry data from the device to the cloud. You'll control cloud to device communications and undertake actions as needed.2.5KViews0likes0CommentsVisual Studio 2019 extension for building REST APIs exposing IoT Hub features
Hi all, If you need to write REST APIs (.Net Core) to expose or complete IoT Hub APIs or create a facade, this https://marketplace.visualstudio.com/items?itemName=JonMikelInza.IoTHubDotNetCoreRESTAPITemplate will help you to save a few minutes. It creates a ready to use solution in a few seconds and allows you to focus on important code (business logic, etc). The created API includes other features like: - API versioning - Automatic OpenAPI generation (versioned according to API versions) - separated layers - minimalistic solution with required dependencies only The only thing you need to do is to set the IoT Hub connection in the configuration file (appsettings.json). More details https://marketplace.visualstudio.com/items?itemName=JonMikelInza.IoTHubDotNetCoreRESTAPITemplate.2.1KViews1like3CommentsVision DevKit sending to IoT Hub, now how do I get Images?
I have successfully have setup the Vision DevKit, in which is connected and currently sending data (assuming images of camera feed) to IoT Hub, yay! Here is what I'm looking to do next: Label images from feed in Azure (which is necessary to create a custom ML Vision Model) I'm new to IoT Hub, so i need to extract this data feed into a way I can access. I setup Message Routing to Storage for now. But when I look at Storage/Container files they are .avro. I'm looking for ideas on how to access this feed and organize these images without have to go through using memory card on the Camera. I'd like to manage this whole process in the Azure Cloud. I'm thinking a jupyter notebook in python or any other Azure projects that can help? But first, i would need how to take those .avro (assuming messages) and convert them to something meaningful. Or perhaps the messages to the Storage isn't the correct path. Thank youSolved2.1KViews1like1CommentQuerying IoT Devices on IoT Hub
Hi All, today I deployed 3 IoT Hubs (SKU S3) in region "West Europe" and I got the same issue for all IoT Hubs, when I select IoT Devices, I get an error message that querying devices failed: There was an error querying devices: InternalServerError:{ "Message": "ErrorCode:ServerError;InternalServerError", "ExceptionMessage": "ErrorCode: ServerError\r\nMessage: \r\nTimestamp: 02/22/2021 13:17:58\r\nTracking ID: b916cd1004554b5586f14eaed10e7073-G:0-TimeStamp:02/22/2021 13:17:58\r\nPublic Message: \r\nPublic Info: null\r\nException: Microsoft.Azure.Devices.Common.Core.Exceptions.IotHubException ---> System.ArgumentNullException: Value cannot be null.\r\nParameter name: documentCollectionOrDatabaseUri\r\n at Microsoft.Azure.Documents.Client.DocumentClient.CreateDocumentQuery[T](Uri documentCollectionOrDatabaseUri, String sqlExpression, FeedOptions feedOptions)\r\n at Microsoft.Azure.Devices.DocumentDb.PassThroughDocumentClientProxy.CreateDocumentQuery[T](Uri documentCollectionUri, String sqlExpression, FeedOptions feedOptions) in C:\\source\\common\\Microsoft.Azure.Devices.Common\\DocumentDb\\PassThroughDocumentClientProxy.cs:line 65\r\n at System.Lazy`1.CreateValue()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Lazy`1.get_Value()\r\n at Microsoft.Azure.Devices.DocumentDb.FeatureFilterCheckDocumentQueryProxy`1.<GetDocumentQueryProxyWithFeatureCheckAsync>d__7.MoveNext() in C:\\source\\common\\Microsoft.Azure.Devices.Common\\DocumentDb\\FeatureFilterCheckDocumentQueryProxy.cs:line 60\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DocumentDb.FeatureFilterCheckDocumentQueryProxy`1.<ExecuteNextAsync>d__6`1.MoveNext() in C:\\source\\common\\Microsoft.Azure.Devices.Common\\DocumentDb\\FeatureFilterCheckDocumentQueryProxy.cs:line 0\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DeviceManagement.DataAccess.TransactionalStore.DocumentDb.DmDocumentDbClient.<QueryDevicesInternalAsync>d__51.MoveNext() in C:\\source\\dm\\Microsoft.Azure.Devices.DeviceManagement\\DataAccess\\TransactionalStore\\DocumentDb\\DmDocumentDbClient.cs:line 2513\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DeviceManagement.DataAccess.TransactionalStore.DocumentDb.DmDocumentDbClient.<QueryDevicesAsync>d__50.MoveNext() in C:\\source\\dm\\Microsoft.Azure.Devices.DeviceManagement\\DataAccess\\TransactionalStore\\DocumentDb\\DmDocumentDbClient.cs:line 2491\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DeviceManagement.Registry.ManagedDeviceRegistry.<QueryDevicesAsync>d__19.MoveNext() in C:\\source\\dm\\Microsoft.Azure.Devices.DeviceManagement\\Registry\\ManagedDeviceRegistry.cs:line 133\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.Providers.DeviceApiProvider.<QueryDevicesInternalAsync>d__102.MoveNext() in C:\\source\\gateway\\mgmt\\Providers\\DeviceApiProvider.cs:line 2328\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.Providers.DeviceApiProvider.<QueryDevicesAsync>d__49.MoveNext() in C:\\source\\gateway\\mgmt\\Providers\\DeviceApiProvider.cs:line 1061\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.DeviceApiActionResult`1.<ExecuteAsync>d__7.MoveNext() in C:\\source\\gateway\\mgmt\\DeviceApiActionResult.cs:line 94\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.ActionFilters.GlobalActionFilter.<ExecuteActionFilterAsync>d__0.MoveNext() in C:\\source\\gateway\\mgmt\\ActionFilters\\GlobalActionFilter.cs:line 42\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()\r\n --- End of inner exception stack trace ---", "ExceptionType": "Microsoft.Azure.Devices.Common.Core.Exceptions.IotHubException", "StackTrace": null, "InnerException": { "Message": "An error has occurred.", "ExceptionMessage": "Value cannot be null.\r\nParameter name: documentCollectionOrDatabaseUri", "ExceptionType": "System.ArgumentNullException", "StackTrace": " at Microsoft.Azure.Documents.Client.DocumentClient.CreateDocumentQuery[T](Uri documentCollectionOrDatabaseUri, String sqlExpression, FeedOptions feedOptions)\r\n at Microsoft.Azure.Devices.DocumentDb.PassThroughDocumentClientProxy.CreateDocumentQuery[T](Uri documentCollectionUri, String sqlExpression, FeedOptions feedOptions) in C:\\source\\common\\Microsoft.Azure.Devices.Common\\DocumentDb\\PassThroughDocumentClientProxy.cs:line 65\r\n at System.Lazy`1.CreateValue()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Lazy`1.get_Value()\r\n at Microsoft.Azure.Devices.DocumentDb.FeatureFilterCheckDocumentQueryProxy`1.<GetDocumentQueryProxyWithFeatureCheckAsync>d__7.MoveNext() in C:\\source\\common\\Microsoft.Azure.Devices.Common\\DocumentDb\\FeatureFilterCheckDocumentQueryProxy.cs:line 60\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DocumentDb.FeatureFilterCheckDocumentQueryProxy`1.<ExecuteNextAsync>d__6`1.MoveNext() in C:\\source\\common\\Microsoft.Azure.Devices.Common\\DocumentDb\\FeatureFilterCheckDocumentQueryProxy.cs:line 0\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DeviceManagement.DataAccess.TransactionalStore.DocumentDb.DmDocumentDbClient.<QueryDevicesInternalAsync>d__51.MoveNext() in C:\\source\\dm\\Microsoft.Azure.Devices.DeviceManagement\\DataAccess\\TransactionalStore\\DocumentDb\\DmDocumentDbClient.cs:line 2513\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DeviceManagement.DataAccess.TransactionalStore.DocumentDb.DmDocumentDbClient.<QueryDevicesAsync>d__50.MoveNext() in C:\\source\\dm\\Microsoft.Azure.Devices.DeviceManagement\\DataAccess\\TransactionalStore\\DocumentDb\\DmDocumentDbClient.cs:line 2491\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.DeviceManagement.Registry.ManagedDeviceRegistry.<QueryDevicesAsync>d__19.MoveNext() in C:\\source\\dm\\Microsoft.Azure.Devices.DeviceManagement\\Registry\\ManagedDeviceRegistry.cs:line 133\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.Providers.DeviceApiProvider.<QueryDevicesInternalAsync>d__102.MoveNext() in C:\\source\\gateway\\mgmt\\Providers\\DeviceApiProvider.cs:line 2328\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.Providers.DeviceApiProvider.<QueryDevicesAsync>d__49.MoveNext() in C:\\source\\gateway\\mgmt\\Providers\\DeviceApiProvider.cs:line 1061\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.DeviceApiActionResult`1.<ExecuteAsync>d__7.MoveNext() in C:\\source\\gateway\\mgmt\\DeviceApiActionResult.cs:line 94\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Devices.Gateway.Management.ActionFilters.GlobalActionFilter.<ExecuteActionFilterAsync>d__0.MoveNext() in C:\\source\\gateway\\mgmt\\ActionFilters\\GlobalActionFilter.cs:line 42\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()" } }. I try to create a new IoT Device (that worked based on notification) but still the query is broken, therefore I can't read the DeviceConnectionString. Any ideas, what I can do to solve this issue? Thanks & with best regards, Alex2KViews0likes4Comments