I am working on a project to install 100+ nodes of temperature sensors in an area, all of which perform the same function. The data they publish is the sensor id and the reading. I am using AWS-IOT for the backend.
Now, to do so, I think I will need to create 1 'thing' per node in aws-iot which I believe is extremely hard to maintain and unscalable.
So my question here is, how to connect multiple nodes to same 'thing' in AWS-IOT so that the cluster is easy to manage. Is there any alternate way to manage the cluster efficiently? Any inputs are welcome. Thanks.
Use different clientId can distinguish the client. But looks like the is only a shadow data for the thing.That means shadow data can only be used when there is a single device associated with the thing. If there are multiple devices associated with the thing, then shadow data is not applicable.
It would seem that the only way to do that would be to create your own gateway that aggregates the data before sending it to AWS IoT. You can't have multiple MQTT connections with the same client ID.
Use the API to automate assignment of certificates and private keys to nodes. The sensor ID may be used as the thing name and MQTT client ID. It takes some work up front, but then you can leverage AWS IoT for all the housekeeping moving forward.
You connect your sensors to AWS IOT, subscribe to a device Topic and start publishing data. And you start receiving data from all the sensors.
Now see, what is the problem here??? Problem: We don't know, which device sent which data?
Solution: There can be 2 solutions to this problem.
I hope this helps.
Thanks
You can use the same Thing with multiple clientId. You can use the sensor id as the clientId.
Faced with a similar dilemma and the impracticality of creating too many 'things' on the AWS IoT administration console; I've done some research and found that connecting multiple devices to the same 'thing' is strongly discouraged by AWS.
Anyway its not possible to keep two different nodes using the same MQTT id connected to the same thing (the last connected node with the same id kicks out the previously connected node), although you can use your client ID with the help of some code.
I learned that actually you don't need a 'thing' to connect to AWS IoT, just a certificate will do; and that you can create elements on AWS IoT service by code.
So, in summary; facing a similar question myself, I ran across this information below, found it useful in my case and sharing it here. https://forums.aws.amazon.com/thread.jspa?threadID=234102