MQTT topic wildcard matcher
A wildcard subscription quietly misses devices, or pulls in far more than intended, once it hits the fleet. Test MQTT subscription filters with + and # against a list of topics before you deploy.
Open the calculator in EM·LINKBelow is a worked example. The working calculator runs free in EM·LINK.
Worked example
Example inputs
Example result
Filter 2 also catches mumbai/line1, because # matches the parent level too.
| Topic | Filter 1 | Filter 2 |
|---|---|---|
| mumbai/line1/temp | yes | yes |
| mumbai/line2/temp | yes | no |
| mumbai/line1/boiler/temp | no | yes |
| pune/line1/temp | no | no |
| mumbai/line1 | no | yes |
| $SYS/broker/load | no | no |
Not matched: pune/line1/temp and $SYS/broker/load.
Matching runs in your browser. Nothing is sent to us.
The working calculator is MQTT Topic Matcher in EM·LINK, our free browser tool. The button opens it directly.
How to read the result
Paste your real topic tree and see exactly which topics each filter catches.
Never subscribe to # alone in production.
How this is calculated
A filter is split on / and compared level by level with each topic.
The full derivation, step by step, is in the EM·LINK documentation.
Calculated per MQTT 3.1.1 / 5.0 topic rules. These tools are an engineering aid, not a certification.
Next step
Running MQTT across a whole fleet? Embedos Edge publishes clean topics with OTA and remote config built in.
Common questions
What is the difference between + and # in MQTT?
+ matches one level; # matches everything from that level down and must be last.
Does # match $SYS topics?
No. Most brokers keep wildcards from crossing into $ topics.
Can I test many topics at once?
Yes, paste a list.
Related tools
- Modbus register interpreter, to decode device values before you publish them.
- CRC and checksum, to check payload integrity on the serial side of a gateway.
- RS-485 termination and bias, when the field bus behind the gateway drops frames.