We are in the early stages of planning an IoT project.

One issue we are struggling with is how our Internet based server can access each unit of our IoT project and deploy code updates, messages ... etc.

I'm concerned about this because, of course, each IoT unit is within it's own WiFi network which is closed by design.

How does our server, an essential part of our setup, call all it's 'children' within their respective closed networks?

  • 1
    Welcome to IoT stackexchange! What protocols are you planning on using?
    – anonymous2
    Commented Aug 8, 2017 at 0:58
  • @anonymous2: Thanks for the welcome. Forgive me but I am completely new to this. I have no idea what protocols to use, at least, I don't know what you are referring to.
    – sisko
    Commented Aug 8, 2017 at 1:17
  • 1
    @Mawg - that's not really true, even historically. What is true is that a client must initiate the connection - but so long as a connection is open, a server can push unsolicited traffic down it. If the connection breaks, the client re-establishes it. This is not a new idea. Commented Aug 10, 2017 at 12:50
  • Wah! Did I really write that? Just before bed-time, but still no excuse. I will delete that uncromulent comment (I think, though, that my main point was that this is nothing new for IoT & the question might have been better asked on a sister site)
    – Mawg
    Commented Aug 10, 2017 at 13:07

2 Answers 2


It sounds like you should be looking for a complete IoT device management platform - there are too many complicated aspects of scalability, security, provisioning and firmware update for this to be a sensible thing to try and develop in house from scratch. Make sure you pick a platform which uses open standards.

To answer your question more directly, each endpoint generally opens a TLS secured connection to a cloud server (using something like CoAP, LWM2M or MQTT depending on the purpose of the connection), so connections are almost always initiated from the endpoint. Only with IPv6 or particularly specicfic use cases are you likely to have the cloud initiating the connection without any assistance from the endpoint.


One good way to access devices scattered around in private networks is using MQTT for communication. In MQTT server publishes messages on topics and devices can subscribe to them and thus get notified when new content arrives to the topic.

There are solutions available around the web, you either pick one or implement your own.

Main idea is to make a topic for eg 'firmware updates' and either the link or the packet itself comes as response. MQTT messages for marking message read makes the update happen only once.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.