What is a 'topic' in IoT messaging protocols like MQTT?
A topic is a label or address used to organize and route messages between devices. It acts like a channel name where messages are published and subscribed.
Click to reveal answer
beginner
How does a topic hierarchy help in IoT communication?
A topic hierarchy organizes topics in a tree-like structure, allowing devices to subscribe to broad or specific message categories easily.
Click to reveal answer
beginner
What symbol is commonly used as a separator in topic hierarchies?
The forward slash '/' is used to separate levels in a topic hierarchy, like folders in a file system.
Click to reveal answer
intermediate
What does subscribing to 'home/+/temperature' mean in MQTT?
It means subscribing to all topics that have 'home' as the first level, any single word as the second level, and 'temperature' as the third level. The '+' is a wildcard for one level.
Click to reveal answer
intermediate
What is the difference between '+' and '#' wildcards in topic subscriptions?
'+' matches exactly one level in the topic hierarchy, while '#' matches all remaining levels, including zero or more levels.
Click to reveal answer
Which character is used to separate levels in an MQTT topic hierarchy?
A/
B.
C-
D_
✗ Incorrect
The forward slash '/' separates topic levels, similar to folders in a file path.
What does the MQTT topic 'sensors/+/humidity' subscribe to?
AAll humidity data from any sensor
BOnly humidity data from sensor named '+'
CAll sensors with 'humidity' as the first level
DAll topics starting with 'sensors/humidity'
✗ Incorrect
The '+' wildcard matches any single level, so it subscribes to humidity data from all sensors.
What does the '#' wildcard represent in MQTT topic subscriptions?
AMatches exactly one level
BMatches only the root topic
CMatches zero or more levels
DMatches no levels
✗ Incorrect
'#' matches all remaining topic levels, including zero or more.
Why use a topic hierarchy in IoT messaging?
ATo reduce message size
BTo encrypt messages
CTo speed up device hardware
DTo organize messages for easier filtering
✗ Incorrect
Topic hierarchies help organize messages so devices can subscribe to relevant data easily.
Which topic would match the subscription 'home/#'?
Aoffice/kitchen/temperature
BBoth C and D
Chome
Dhome/kitchen/temperature
✗ Incorrect
'home/#' matches 'home' and any subtopics like 'home/kitchen/temperature'.
Explain what a topic hierarchy is and how it helps in IoT messaging.
Think of it like folders and subfolders organizing files.
You got /4 concepts.
Describe the difference between '+' and '#' wildcards in MQTT topic subscriptions.
One is for a single folder, the other for many folders.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of topics in IoT protocols like MQTT?
easy
A. To encrypt messages for security
B. To store device firmware
C. To organize messages in a clear, folder-like structure
D. To control device power settings
Solution
Step 1: Understand the role of topics
Topics act like folders to organize messages so devices know where to send or receive data.
Step 2: Compare options with topic function
Only organizing messages matches the purpose of topics; encryption and firmware storage are unrelated.
Final Answer:
To organize messages in a clear, folder-like structure -> Option C
Quick Check:
Topics organize messages = B [OK]
Hint: Topics are like folders for messages [OK]
Common Mistakes:
Confusing topics with security features
Thinking topics store device data
Mixing topics with device settings
2. Which of the following is the correct way to write a topic with three levels?
easy
A. home-kitchen-temperature
B. home.kitchen.temperature
C. home\kitchen\temperature
D. home/kitchen/temperature
Solution
Step 1: Recall topic level separator
Topics use slashes (/) to separate levels, like folders in a path.
Step 2: Check each option's separator
Only home/kitchen/temperature uses slashes correctly; others use dots, backslashes, or dashes which are incorrect.
Final Answer:
home/kitchen/temperature -> Option D
Quick Check:
Topic levels separated by '/' = A [OK]
Hint: Use slashes (/) to separate topic levels [OK]
Common Mistakes:
Using dots instead of slashes
Using backslashes which are invalid
Using dashes instead of separators
3. Given the topic building1/floor2/room3/sensor, which part represents the third level?
medium
A. room3
B. floor2
C. building1
D. sensor
Solution
Step 1: Split the topic by slashes
Splitting 'building1/floor2/room3/sensor' by '/' gives ['building1', 'floor2', 'room3', 'sensor'].
Step 2: Identify the third element
The third element (index 2) is 'room3'.
Final Answer:
room3 -> Option A
Quick Check:
Third level = room3 = C [OK]
Hint: Count levels separated by '/' to find position [OK]
Common Mistakes:
Counting from zero incorrectly
Choosing first or second level by mistake
Confusing last level with third
4. Identify the error in this topic string: home//livingroom/temperature
medium
A. Double slash creates an empty level
B. Missing slash between 'home' and 'livingroom'
C. Topic levels must use dots, not slashes
D. Topic cannot contain the word 'temperature'
Solution
Step 1: Analyze the topic string
The string 'home//livingroom/temperature' has two slashes together, meaning an empty level between them.
Step 2: Understand topic level rules
Empty levels are invalid because each level should have a name; double slashes cause this error.
Final Answer:
Double slash creates an empty level -> Option A
Quick Check:
Double slash = empty level error = A [OK]
Hint: Avoid double slashes to prevent empty topic levels [OK]
Common Mistakes:
Ignoring empty levels caused by double slashes
Thinking dots are required separators
Believing certain words are forbidden in topics
5. You want to subscribe to all sensors in any room on floor 1 of building 2 using MQTT topics. Which subscription topic should you use?
hard
A. building2/floor1/*/sensor
B. building2/floor1/+/sensor
C. building2/floor1/room1/sensor
D. building2/floor1/#/sensor
Solution
Step 1: Understand MQTT wildcards
The '+' wildcard matches exactly one level, while '#' matches all remaining levels.
Step 2: Analyze the subscription needs
We want any room on floor1, so '+' replaces the room level. '#' would match too many levels, and '*' is invalid in MQTT.
Final Answer:
building2/floor1/+/sensor -> Option B
Quick Check:
'+' wildcard for one level = D [OK]
Hint: Use '+' for single-level wildcard in MQTT topics [OK]
Common Mistakes:
Using '#' when only one level is needed
Using '*' which is not a valid MQTT wildcard
Specifying exact room instead of wildcard
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.