I have two type of devices one support IoT JSON agent and another Ultralight Iot Agent. What approach is best should i used both IoT agent separately or there is something like IoT manager. What in future i have another device which support another IoT Agent like LoRaWan .
I have tried IoT manager but could not understand it is only for device provisioning or actual device data transfer also.
IoT Manager acts as a proxy for actual IOTAs, so depending on some parameters in the request (I don't remember exactly which ones, but they should be described in the IOTAs documentation) redirects the request to one or another IOTA agent.
But of course, you can implement this proxy using another piece of software (e.g. ngix with some king of URL-based or port-based redirection) if you want.
Related
Can https://volttron.org/ be used as a 'protocol translator gateway' software which can take data from PLC over BACnet/Modbus and can forward it to Azure IoT hub?
Where can I get demo for Volttron? I am new to python and unable to understand the code present related to Volttron. Office hours videos present on Volttron sites are not indicating if Volttron is a choice for my scenario shown in the image.
Please guide/help. Thank you.
Yes, VOLTTRON can be configured to retrieve bacnet traffic. The picture you have drawn can be accomplished.
See
https://github.com/VOLTTRON/volttron
And
https://volttron.readthedocs.io/en/main/
For instructions on how to use the platform.
In the picture volttron could actually be in either the PLC Controller (assuming it has enough capabilities) or the protocol translator gateway or both. There is an mqtt facility in VOLTTRON to do the last step to the Azure IOT Hub as well, though it has not been tested with that interface.
We are currently trying to communicate with Edge devices using MQTT. We use the config topic for defining the algorithms to use, the version of software and so on.
We would like to use commands for sending "calculation results" back to the devices. We have to send it from the cloud towards the devices since multiple devices are working together on this.
This state is important for the device to visualise the correct state and therefor we would like to have QOS1 for these commands.
According to the documentation this should be possible but I can't find out how to do this.
We are using the API's for managing these config and commands.
I'm wondering what is the best way to keep continuous deployment on IoT machines (connected to the internet), but without direct access to it. The codebase is in Go; is it better to write my own agent which will check some endpoint for a new code package/repository, or is there a software (or SaaS) that solves that kind of problem already?
PS. IoT machines runs under Debian 9.x.
IoT Hub is billed based on number of messages per day (including updating and retrieval of twins, etc). We know that IoT Edge uses some internal messages to operate, such as the reported health/status updates that appear in the portal for it's modules, retrieval of it's own device twin. module twins, etc.
How does this traffic affect the messages against my daily quota? i.e what "counts"? My expectation would be that explicit twin updates/retrievals from custom modules would count, but does the edgeAgent/edgeHub traffic count? If it does, how often does that happen?
Doesn't seem to be a lot of traffic, but it affects pricing and sizing IoT solutions, so needs to be factored in.
--Steve
IoT Edge is "free" with IoT Hub (i.e. the features are available on all IoT hubs; you don't have to bring in/pay for a separate resource), but you do pay for all traffic. Mostly that will just be your traffic (messages your devices/modules are sending/receiving), but Edge Agent and Edge Hub do twin operations when the edge device is starting up, and when things change. So if you deploy a new module to your edge device you'll see some Edge Agent twin traffic related to that. If you change some routes, you'll see the corresponding Edge Hub twin traffic.
As the product nears general availability, you can expect to see documentation that outlines how the Agent and Hub are using their twins, so you know what to expect.
I have an embedded device that can be controlled by JSON over UDP. I am currently performing this via an iOS App, and everything works great.
I am now wanting to be able to also control my device from a remote location. And am wanting to use Azure to perform this task. I envision that I will set up an Azure Website which will enable me to select options which then send the JSON to my device, which is behind a firewall.
My question is which of the Azure Services should I be looking into? Also, what is the best way to get the JSON packet to the device behind the firewall (I do not want to use port forwarding).
In general, to avoid an attack surface from outside your LAN (where you have your embedded device), the better solution is to open and output connection from embedded device to the cloud and to leave it open so that it can send and receive data/command.
In this case, on Azure you can use the Service Bus (queue, topic/subscription or event hub) to send/receive with AMQP protocol but it is strictly related to your device and capabilities.
Can you share more information on it ? How much it is a constrained device or a more power device with an high level OS (Linux, Windows, ...) ?
Paolo Patierno
About using Amqp on devices running android is very tedious. The java implementation in dalvik is missing a lot of required apis to be there.
By the way, do you know where we can find information about related path segments to use in amqp pure syntax in Azure, to interact with IoT-Hub end-points. Like for queue for example, we can have :
amqps://:#.servicebus.windows.net/
Thanks