{"id":1768,"date":"2026-11-06T21:17:33","date_gmt":"2026-11-06T19:17:33","guid":{"rendered":"https:\/\/www.rocworks.at\/wordpress\/?p=1768"},"modified":"2026-11-06T21:17:33","modified_gmt":"2026-11-06T19:17:33","slug":"%f0%9f%8c%b3-views-virtual-topic-trees-in-monstermq-edge","status":"publish","type":"post","link":"https:\/\/www.rocworks.at\/wordpress\/?p=1768","title":{"rendered":"\ud83c\udf33 Views \/ Virtual Topic Trees in MonsterMQ Edge!"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One thing has always bothered me about MQTT in practice: devices publish where they want to, for example: <code>tasmota\/devices\/14835A\/...<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The device ID is in there, fine. But every time I want to query or subscribe to that sensor, I first have to look up what device <code>14835A<\/code> actually is. Is it my living room or is it the kitchen? Is it a temp sensor? Or is it a power meter?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With <strong>virtual topics<\/strong>, you can now define views on top of real topics. The sensor above can also be made available as: <code>austria\/vogler\/office\/temperature\/..<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Same data, two (or more) names. No republishing, no copying, no duplicated messages.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udc49 Map a single topic, or mount a whole subtree<\/li>\n<li>\ud83d\udc49 Wildcard subscriptions work on the virtual tree<\/li>\n<li>\ud83d\udc49 Each node is read-only or read-write<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That way you can have a location view, an asset view, or an ISA-95 style view of the same devices, all at the same time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now my question to you: is this useful, or should I drop it again? How do you deal with this today? Republishing in Node-RED, a strict UNS naming convention from day one, or just an Excel sheet? \ud83d\ude09<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"430\" src=\"https:\/\/www.rocworks.at\/wordpress\/wp-content\/uploads\/2026\/11\/1793791980848.jpeg\" alt=\"1793791980848\" class=\"wp-image-1767\" srcset=\"https:\/\/www.rocworks.at\/wordpress\/wp-content\/uploads\/2026\/11\/1793791980848.jpeg 800w, https:\/\/www.rocworks.at\/wordpress\/wp-content\/uploads\/2026\/11\/1793791980848-300x161.jpeg 300w, https:\/\/www.rocworks.at\/wordpress\/wp-content\/uploads\/2026\/11\/1793791980848-768x413.jpeg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>One thing has always bothered me about MQTT in practice: devices publish where they want to, for example: tasmota\/devices\/14835A\/&#8230; The device ID is in there, fine. But every time I want to query or subscribe to that sensor, I first have to look up what device 14835A actually is. Is it my living room or &hellip; <a href=\"https:\/\/www.rocworks.at\/wordpress\/?p=1768\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">\ud83c\udf33 Views \/ Virtual Topic Trees in MonsterMQ Edge!<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1767,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[79,67],"tags":[65,68,77,54,74,55],"class_list":["post-1768","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-monstermq","category-mqtt","tag-iiot","tag-iot","tag-monstermq","tag-mqtt","tag-nodered","tag-uns"],"_links":{"self":[{"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1768"}],"version-history":[{"count":1,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1768\/revisions"}],"predecessor-version":[{"id":1769,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1768\/revisions\/1769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/1767"}],"wp:attachment":[{"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rocworks.at\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}