本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
FROM 子句
FROM 子句可讓主題或主題篩選條件訂閱您的規則。以單引號 (') 括住主題或主題篩選條件。系統會為每則傳送到符合此處指定的主題篩選條件之 MQTT 主題的訊息觸發該規則。您可以使用主題篩選條件訂閱類似主題的群組。
範例:
發佈在主題 'topic/subtopic'
的傳入承載:{temperature:
50}
發佈在主題 'topic/subtopic-2'
的傳入承載:{temperature: 50}
SQL:"SELECT temperature AS t FROM 'topic/subtopic'"
。
規則已訂閱至 'topic/subtopic'
,因此傳入的承載會傳遞至該規則。傳送至規則動作的外寄承載為:{t:
50}
。規則並未給 'topic/subtopic-2'
訂閱,因此發佈在 'topic/subtopic-2'
的訊息不會觸發該規則。
# 萬用字元範例:
您可以使用 '#'(多層級) 萬用字元,以比對一或多個特定路徑元素:
發佈在主題 'topic/subtopic'
的傳入承載:{temperature:
50}
。
發佈在主題 'topic/subtopic-2'
的傳入承載:{temperature: 60}
。
發佈在主題 'topic/subtopic-3/details'
的傳入承載:{temperature: 70}
。
發佈在主題 'topic-2/subtopic-x'
的傳入承載:{temperature: 80}
。
SQL:"SELECT temperature AS t FROM 'topic/#'"
。
已將該規則訂閱至開頭為 'topic'
的任何主題,因此該規則會執行三次,將傳出的 {t: 50}
(表示主題/子主題)、{t: 60}
(表示主題/子主題 2) 和 {t: 70}
(表示主題/子主題 3/詳細資訊) 的承載傳送給其動作。它沒有訂閱 'topic-2/subtopic-x'
,因此不會觸發 {temperature: 80}
訊息的規則。
+ 萬用字元範例:
您可以使用 '+'(單層級) 萬用字元,以比對任何一個特定路徑元素:
發佈在主題 'topic/subtopic'
的傳入承載:{temperature:
50}
。
發佈在主題 'topic/subtopic-2'
的傳入承載:{temperature: 60}
。
發佈在主題 'topic/subtopic-3/details'
的傳入承載:{temperature: 70}
。
發佈在主題 'topic-2/subtopic-x'
的傳入承載:{temperature: 80}
。
SQL:"SELECT temperature AS t FROM 'topic/+'"
。
所有主題訂閱的規則有兩個路徑元素,第一個為:'topic'
。規則是針對傳送至 'topic/subtopic'
和 'topic/subtopic-2'
的訊息執行,但不是針對 'topic/subtopic-3/details'
(它具有比主題過濾條件更多的層級) 或 'topic-2/subtopic-x'
(它不是以 topic
開頭) 執行。