I have been reading and collecting telemetry data on Azure resources using the MXChip AZ3166 for quite awhile now. May I know if it is possible to observe and extract the telemetry data without using Azure services?
May I know if it is possible to observe and extract the telemetry data without using Azure services?
Apart from using the Azure IoT Central portal, as per documentation:
You can also monitor telemetry from the device by using the Termite app.
You can refer to Quickstart: Connect an MXCHIP AZ3166 devkit to IoT Central, Termite: a simple RS232 terminal and Getting Started with Azure RTOS and Azure IoT
Related
I am trying to understand and try out the IoT Service Stack on Microsoft Azure. When reading through documentations and blogs i came across the Microsoft Azure Digital Twins and Microsoft Azure IoT Central service.
But what i didnt understand is:
What is the difference between Azure Digital Twins and Azure IoT Central?
When to use what?
Run combined? Is there any scenario for this or is there a need to use both in parallel? Any scanario for this?
Azure Digital Twins
https://azure.microsoft.com/de-de/products/digital-twins/
Azure IoT Central
https://azure.microsoft.com/de-de/products/iot-central/#overview
You could write a lot about the differences between these products, because they serve a different purpose.
Azure IoT Central is a Software as a Service application that allows you to register, manage and control devices. It stores the device state and provides bi-directional communication between the application and the devices. It's based on Azure IoT Hub for communication and Device Provisioning Service for device registration.
Azure Digital Twins (ADT) is a Platform as a Service offering that allows you to model anything using the Digital Twin Definition Language. While this language is also used in IoT Central to create device templates, the language can be used in ADT to model anything from buildings to people. ADT is used to create a graph-based information model that can be updated through the API. So if you want to include device data, you will need IoT Central or IoT Hub and write code to connect it to ADT. You can use any other data that you have and do the same. It's not limited to IoT devices.
In short, use IoT Central if you want a SaaS platform to manage devices and display telemetry. Use ADT to create a graph-based data collection using any input data you want.
Is there any scenario for this or is there a need to use both in parallel? Any scanario for this?
ADT needs information from a source. This could very well be IoT Central. You can export telemetry from IoT Central and populate the graph. There is no standard way of doing this.
So basically i'm working on a project which involves getting data using a sensor (say analyzing temperature/vibration etc.) and then transfer the data to cloud (Azure) which in turn can be used to show users the data - in an app/website. Do i use Azure IoT Hub or Azure IoT Central to store , stream and make use of data so that i can display the respective data of each user when they logon to the website?
Azure IoT Central is a set of pre-built IoT applications while IoT Hub is a service. You either use or build your own solution.
So, I am working on an IoT solution on Azure, we have been using a partner solution where we had the partner's devices linked to his cloud solution that exposes the data to us Via REST services. Right now we want to have our own IoT Cloud Solution on Azure.
At first, I am planning to build a Bridge between our IoT Solution and the partner's cloud solution via its REST Services that will link to our IoT Hub in order to ingest the data to our cloud.
Also, the data will not be only telemetry data but we'll have to send commands as well to those devices.
My question: I would like to know what would be the appropriate technology/solution to use a gateway (Data Grid, Azure Function, Azure WebJob)
The numbers in the picture represent the step that I am considering to tackle this problem.
1- First we are implementing an Application gateway that will have to get the data from the partner's system and sending commands to their system. It will allow us to first build the other components of our system and make sure that it can handle what is in place right now.
2- Second, the partner's devices will connect directly to a device gateway that is connected to our IoT Hub. In this case, we will not be using the gateway made in 1 anymore.
3- Finally, we will have our own devices connected to our IoT Hub, the partner's devices will always be connected to our IoT Hub via the gateway built in 2.
Let me try to answer your questions in the order you have asked.
For application gateway, where you are trying to pull data through
REST, you can use Azure functions and then you use Cosmos DB or any
storage to save data. I see , after getting device data from Partner
network, you are routing it to IoT-Hub (I would not say, its
incorrect), however once we pull data through Rest, we can directly
put into DB. So my Answer is to use Azure functions to pull data
from Partner solutions and put into DB.
If partner device is capable of running Azure IoT sdks or can be
provisioned to send data to IoT Hub directly, this will ease lot of
things and you would be able to send D2C and C2D messages easily.
further, here you can route data to DB by using configuration from
IoT Hub.
For your devices you can use IoT Hub Directly or can use Azure
IoT Edge (device gateway as you pointed ), both are fine , depends
on use case and also if we want to do some edge computation or
analytics at device side. And one important suggestions, use Azure
functions where ever you find that you have to integrate devices
data through Rest. Most cost effective in such scenarios.
Let me know if it clears your doubts.
After some time working on the subject, I did implement an AZURE Function app for the following reasons :
Supports Continuous Deployment and Integration Even though Azure Functions is serverless architecture, it still supports Continuous Deployment and Continuous Integration
Capabilities for implementing code - Being event-driven, the application platform has capabilities to implement code triggered by events occurring in any third-party service or on-premise system.
Compute-on-demand: This delivery model ensures that computing resources are available to the users as per their demand.
I have also used Azure Table Storage as database storage technology.
can I access to the Iot Hub behind the Azure Iot Central? I need to use:
IoT Edge feature
Device Provisioning
Get to Event-Hub Endpoint to process data
Cheers
Azure IoT Central has evolved since many of these answers were posted.
Today, IoT Central IoT Edge Support is preview and the Device Templates are in place to support it.
For the original data access requirement, use the continuous data export feature in Azure IoT Central to export your data to Azure Event Hubs, Azure Service Bus, or Azure Blob storage instances.
Azure IoT Central is a fully managed solution, you can't access underlying services including Azure IoT Hub. They are not exposed.
Reference "Compare Azure IoT Central and Azure IoT options".
What you can do is device connection. You can send device-to-cloud message and update device twin.
Reference "Device connectivity in Azure IoT Central".
Compare to Azure IoT Central, Azure IoT solution accelerators(original name: Azure IoT Suite) gives you more control of the underlying services. You have access to the underlying Azure services to manage them, or replace them as needed. For your use case, you can consider Azure IoT solution accelerators.
your requirement '3. Get to Event-Hub Endpoint to process data' can be done using your IoT Central App feature such as Continuous Data Export to the Event Hub.
The other way is to obtain an internal IoT Hub access to the events default endpoint from your IoT Central application access token like is shown here.
This approach allows to obtain an eventhubSasToken like is shown in the following code snippet:
"eventhubSasToken": {
"sasToken": "SharedAccessSignature sr=sb%3A%2F%2Fep-ns-saas-ep-15-262-xxxxxxxxxx.servicebus.windows.net%2Fep-ehub-saas-iothu-1044564-xxxxxxxxxx&sig=xxxxxx&se=1546197703&skn=service",
"entityPath": "ep-ehub-saas-iothu-1044564-xxxxxxxxxx",
"hostname": "sb://ep-ns-saas-ep-15-262-xxxxxxxxxx.servicebus.windows.net/"
}
IoT Edge is not supported in IoT Central. If you would like to request this feature, please add it to UserVoice and describe your use case.
Device Provisioning Service is supported in IoT Central. See https://learn.microsoft.com/en-us/azure/iot-central/concepts-connectivity
While there is no way to access the underlying services, you can export your data using Continuous Data Export to your own Event Hub endpoint in your own Azure subscription. From there you can process the data how you like.
I downloaded and deployed the Remote Monitoring Azure IoT Suite project. The only change I made to the deployment template was to deploy a free version of IoT Hub instead of S2. I am using the Azure IoT SDK to send messages to the IoT Hub. Monitoring on Azure Portal shows me that messages are arriving.
But when I look at the three Azure Stream Analytics jobs, none of them are receiving any inputs. It's like IoT Hub isn't letting any of the ASAs know that there is data to process. The permissions are unchanged. IoT Hub has a policy with all permissions and all the ADAs are using that policy. I created a new ADA with the same policy and I don't get any data in that one either.
What could be going wrong here?
It seems there was a glitch in Azure. I came back and everything was magically working. Sigh...