Protocols - MQTT I/O
MQTT (Message Queue Telemetry Transport) is a bandwidth efficient protocol primarily developed for Machine-to-Machine (M2M) or Internet of Things (IoT) use.
MQTT was designed to allow secure, lightweight and reliable device-to-device communication over long (sometimes unreliable) networks while eliminating the complexity of connection management from endpoints (devices). Unlike many other communication protocols (like HTTP), devices do not have to continuously pull for new information. Instead, the central connection manager server (broker) gathers all messages together and forwards new messages to interested devices. If the connection is interrupted by any circumstances (before message is successfully forwarded), the MQTT broker can buffer messages and send them to the client when it comes back on-line.
For example if some controlling device (f.e CDP) needs to send a control message to some other device (f.e relay), it does not need to know if the device is currently connected to the network or not. It does not need to continuously keep trying to send the message until the device is acknowledged received the message. Using MQTT it just has to send the message with Quality of Service flag enabled and the other device receives the message as soon as it becomes on-line.
Benefits of using MQTT:
- devices do not have to manage or book-keep connections to other devices.
- devices must not allow any incoming TCP connections.
- it is well suited to unreliable (f.e wireless or cellular) networks.
MQTT provides an easy, secure and reliable way to connect CDP with:
- network (MQTT) controllable devices or sensors
- other CDP systems
CDP can use MQTT protocol to interact with remote devices (or even with remote CDP systems) in many different ways. Just to give an example, below is a diagram of a simple installation of CDP interacting with a remote:
- power switch
- network connected light bulb
- metering device with temperature and humidity sensors