I am new to IoT platform and after days of reading I am still confused about different types of IoT devices. Currently, I have read about smart devices that connect to the cloud through different ways like MQTT, HTTP, LWM2M, and maybe more. Are the IoT devices are really fragmented (like MQTT devices, HTTP devices) or I just misunderstood about that. If they are divided then what are the characteristics of each type (like smarter, faster compared to other types) ?

To be more specific I am doing a study on the Eclipse IoT projects, especially Eclipse Hono. Hono provides different protocol adapters like MQTT and REST, and each of them are meant to connect to a type of device as they've shown in the first drawing in this link Hono. My question is if the MQTT IoT devices are completely different from other types like HTTP in features, or is the difference only about communication protocols? Can a device that marked with "MQTT" be swapped to "HTTP" or vice versa?

It would be great if you could give me some examples of the devices which are categorized as MQTT, HTTP, or LWM2M, so I can visualize more easily.

closed as too broad by Gilles, Bence Kaulics, mico, anonymous2 Jun 10 '17 at 10:24

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    You might as well ask 'what are the different types of transportation devices' (shoe, skateboard, fighter jet, etc.). I fail to see how this question really makes sense as it stands. – Sean Houlihane Jun 7 '17 at 13:48
  • 1
    Welcome to the site, dondon. Unfortunately I have to agree with @SeanHoulihane, that the question as it is formulated right now seems awfully broad. Have a look at What classifies a device as IoT? and our meta discussions What exactly is an “Internet of Things” device? and What is IoT (Internet of Things)?. Maybe afterwards you can post a... – Helmar Jun 7 '17 at 13:56
  • 2
    ... more precise question. – Helmar Jun 7 '17 at 13:56
  • 1
    It might help to include some aspect of why this is important to you (and that will help someone to give an answer which is relevant to you) – Sean Houlihane Jun 7 '17 at 13:57
  • @SeanHoulihane I would say it's more like 'different types of transportation devices (rubber, metal, plastic, etc.)` – immibis Jun 7 '17 at 22:52

if the MQTT IoT devices are completely different from other types like HTTP in features, or is the difference only about communication protocols?

The difference is at the protocol level. Same device may run MQTT as well as HTTP if required. But, device maker will choose a protocol based on the problem statement.

Can a device that marked with "MQTT" be swapped to "HTTP" or vice versa?

Yes, you can make your own device based on RPi board with a temperature and a humidity sensor attached. And you can choose to report the sensor data over MQTT/HTTP as required.

Eclipse Hono

Hono's goal is to enable connection to a large numbers of IoT devices to a back end and enable business application's interaction with devices in an uniform way regardless of the device communication protocol. The Hono adapters help to achieve this. The Hono server interacts with the MQTT/HTTP enabled devices via the respective adapter, that way any type of device can be deployed on the filed. The application interacts with the Hono Server using AMQP.

Now to put this in perspective, lets say you are writing an application that sits in the control room of a nuclear power plant showing data from all sensors in a single dash board. The power plat may be sourcing sensors from different vendors. Some sensors may be built to use MQTT whereas others may be built to use HTTP. If your application had to implement adapters for all, that would be tedious. Hono is offering to do that. Your application can be simpler and interacts with Hono server. The sensors on field may go bad and eventually a sensor-A (using MQTT) from vendor-A may be replaced by a sensor-B (using HTTP) from vendor-B. As hono is providing both adapters switching the sensors is trivial as your application is least impacted and still gets the data the same way as usual.


I have linked this before to another question, this kind of nails it. Quite in the beginning there is a list of protocols compared.

HTTP and MQTT are on that table and LwM2M as described on their site works on top of coap, which appears in table.

Main difference is the nature of communication: HTTP and coap provide a request and response based communication whereas MQTT relies on subscriptions and publishments.

On LwM2M site tells it is a specification for managing devices on more high level, than just delivering data like the other two. It is a M2M protocol, not a communication method on pure bones.

This was a classification by communications, there was similar list of options also for security aspects. For them there were only names, not properties mentioned.

These two ways are kind of changeable, you pick what suits for your needs. When it comes to product families of hardware, there are limitations about coding language, memory and other resource amounts, which makes the though desicions necessary and where money also pays a role.

For certain hardware like ESP8266 series, you really have to think limitations but for example raspberry pi does quite many things like you want.

LwM2M seems to be a bunch you cannot change, it is kind of product family locked situation.


if the MQTT IoT devices are completely different from other types like HTTP in features, or is the difference only about communication protocols? Can a device that marked with "MQTT" be swapped to "HTTP" or vice versa?

This depends on the device, but HTTP and MQTT are protocols and the same device could support both. A more common situation is a legacy version of a device might support HTTP and a newer revision supports MQTT. Backwards compatibility might be maintained for awhile before an exclusive move to another protocol.

My experience is in the industrial space where IoT devices are things like robots, building control systems, blast furnaces, machine tools, and the computer controls (CNCs) and programmable logic controllers (PLCs) that run this equipment. LWM2M is not common in that space. HTTP is common. MQTT is rapidly gaining in popularity.

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