loriot - IoT Central connection - azure-iot-central

How can I connect devices connected to loriot to Azure IoT Central?
I've got the documentation of connecting it to an Azure IoT Hub, but I'm actually using IoT central, so this seems to work differently.
Log in to the Azure portal (Microsoft Azure account required).
Create a IoT Hub
Copy Shared access primary key from IoT Hub > Settings > Shared
access policies > device
Use this primary key and the IoT Hub Name to configure your LORIOT
application output
From IoT Hub > Explorers > IoT devices: create a device using the
Device EUI as Device ID
Messages will have the following format:
https://docs.loriot.io/display/LNS5/Uplink+Data+Message

Loroiot setup only allows "IoT Hub Name" & "Primary Key" which IoT Central application does not expose unless a Device Provisioning Call is made to it from device or API. It is possible to get the device key from Azure CLI or IoT Central portal, but IoTHub name is only via the DPS call.
One option is to get this IoTHub name seperately and then configure Loroiot, but in case of HA/DR the IoTHub name could change (IoT Central manages multiple IoTHubs for HA/DR and scale).
In absence of Loroiot having this functionality, check if its API allows configuration then orchestrate provisioning via script, function, etc.
https://learn.microsoft.com/en-us/rest/api/iot-dps/device/runtime-registration

Related

Azure Device Provisioning to Edge Device

I am trying to figure out how to use DPS to pass down to a device which edge device to connect to. Is this an option to do with DPS or do we have do to this manually?
The DPS is a helper service for IoT hub that will provide the right IoT hub without requiring human intervention
The IoT Hub Device Provisioning Service (DPS) is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention.
Below are the scenarios in which DPS is an excellent choice for getting devices connected and configured to IoT Hub.
Zero-touch provisioning to a single IoT solution without hardcoding IoT Hub connection information at the factory (initial setup)
Load-balancing devices across multiple hubs
Connecting devices to their owner's IoT solution based on sales transaction data (multitenancy)
Connecting devices to a particular IoT solution depending on use-case (solution isolation)
Connecting a device to the IoT hub with the lowest latency (geo-sharding)
Reprovisioning based on a change in the device
Rolling the keys used by the device to connect to IoT Hub (when not using X.509 certificates to connect)
Here are a few references which have the complete information on DPS.
https://learn.microsoft.com/en-us/azure/iot-dps/about-iot-dps
https://learn.microsoft.com/en-us/azure/iot-dps/

While connecting devices to Azure cloud , which is advisable to use - Azure IoT Hub or Azure IoT Central?

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.

Can Azure IOT Edge device connect to the multiple Azure IOT Hubs?

Can we connect Azure IoT Edge Gateway part of multiple Azure IoT Hubs? or Any recommendations to achieve the following multiple hierarchical hubs in the Azure IoT solution?
For example device1, device2 connected to Edge Gateway.
Edge Gateway, device1, device2 -> Root Azure IoT Hub owner
Edge Gateway, Device 1 - IoT Hub 1
Edge Gateway, Device 2 - IoT Hub 2
so that relevant devices message can be forwarded to Hub1, Hub2.
No, as of today one Edge device can only connect to one IoT Hub. To achieve your use case, I would probably use routing in the IoT Hub to forward messages to subsequent Event Hubs, for example with routing based on the device id or some other property that you choose.
with ASA Azure Stream Analytics. in the input of the ASA configure the iothub that receives the data from the iotedge, in the outputs configure the iothubs that need to replicate the data, in the output use for iothub the "Event Hub" and put the "Event Hub compatible endpoint" of iothub.
iotedge -> iothub -> ASA -> multiples iothubs

Storing Data Azure Iot Central

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.

Does Microsoft IoT Central send data through an Azure IoT Hub...?

I am just reading up on the new IoT Central, currently in preview.
Our customers seldom let their devices connect to cloud by themselves,
but are rather connected to some kind of management system that in turn connects to Azure.
We however consider using IoT Central for demo purposes and would like to know if devices defined in IoT Central sends their data to an IoT Hub of choice or if is handled in any other way behind the scenes?
Microsoft IoT Central does use an IoT Hub internally. If you look here you can see that when you add a physical device to an IoT Central application it generates an IoT Hub device connection string: https://learn.microsoft.com/microsoft-iot-central/tutorial-add-device#get-connection-string-for-real-device-from-application.
However, you cannot get admin access to the IoT Hub or use an IoT Hub of your own choosing - all you have is the device connection string.

Resources