Zoho IoT supports device communication using the MQTT protocol. It provides dedicated MQTT topics for specific communication purposes to ensure structured and reliable data exchange between devices and the Zoho IoT application.
The topic structure used in Zoho IoT MQTT configurations is:
/device/<device_id>/<publish_subscribe_topic>
For accurate configuration, it is strongly recommended to use the topic exactly as shown on the Connection Details page within the Zoho IoT application. This prevents mismatches in topic naming and ensures proper message routing.
Zoho IoT defines different MQTT topics based on the type of communication required. These topics are broadly categorised into:
Publish Topics
Publish topics are used when a device needs to send data to the Zoho IoT application. Any device generated payload, such as telemetry data, alerts, or status information, must be transmitted through the appropriate publish topic.
Zoho IoT provides three types of publish topics, each designed for a specific use case:
Telemetry
The telemetry topic is used to send all periodic data payloads collected by the device to the application. The payload must be in JSON format. Datapoints in Zoho IoT parse information from the payloads received through this topic and store it.
For example, if a device monitors electrical consumption, it may measure parameters such as Current, Voltage, Load, and Power Factor. These parameters should be structured as a JSON payload containing the parsing key and the corresponding measured values. The payload must then be published to the telemetry topic for processing within the Zoho IoT application.
Structure of the telemetry publish topic:
/device/<device_id>/telemetry
Example for telemetry publish topic:
Events
The events topic is used to transmit event related notifications such as alarms, warnings, or state changes by the edge device.
For example, if a gateway device is configured with a rule to trigger an alarm when the power level falls below a defined threshold, the device should send the alarm payload through the events topic. This enables the application to process and display event notifications in real time.
Structure of the telemetry publish topic:
/device/<device_id>/events
Example of the event publish topic:
Note: Messages published to the events topic are processed by the application in real time. Data sent through the events topic is not stored in the application and is intended only for immediate processing.Command Acknowledgement
When a command is executed from the Zoho IoT application, a command payload is sent to the device. The device must send an acknowledgement payload back to the application on receipt of the command payload. The edge device should send the acknowledgement payload through the Command Acknowledgement topic.
For example, consider a gateway device that controls the temperature of an HVAC system. When a temperature value is set using a command widget in the Zoho IoT application, a command payload is sent to the gateway device. After executing the command, the device must send an acknowledgement payload to confirm successful execution.
Structure of the acknowledgement publish topic:
/device/<device_id>/commands/ack
Example of the command acknowledgement publish topic:

Subscribe Topics
Subscribe Topics are used by the edge device to receive data or instructions from the Zoho IoT application.
Zoho IoT currently provides a subscribe topic for Commands. Commands
The commands topic is used by the edge device to receive command payloads sent from the Zoho IoT application. When a command configured in the application is executed, the corresponding payload is published to the commands topic and delivered to the subscribed edge device.
For example, if an edge device is responsible for controlling the temperature of a room, a temperature setting command triggered from the application will be received through the commands topic. The device can then process the payload and adjust the temperature remotely based on the value sent from the application.
Structure of the commands subscribe topic:
/device/<device_id>/commands
Example of the commands subscribe topic:

QoS Level
Zoho IoT currently supports only QoS 1 (Quality of Service level 1) for MQTT communication.
QoS 1 ensures that messages are delivered at least once by requiring an acknowledgment from the receiver. This provides a balance between reliability and network efficiency, making it suitable for most IoT data transmission scenarios.