Skip to content

Commit 0e5d87f

Browse files
authored
Rule node docs (#2375)
* New doc for "rest api call" rule node * New doc for "send email" rule node * New doc for "send notification" rule node * New doc for "send sms" rule node * New doc for "send to slack" rule node * New doc for "twilio sms" rule node * New doc for "twilio voice" rule node * Remove outdated rule node screenshots * New doc for "azure iot hub" rule node * Formatting fixes * Update links to rule node doc pages
1 parent 21f6622 commit 0e5d87f

File tree

358 files changed

+2273
-520
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

358 files changed

+2273
-520
lines changed

_includes/docs/edge/troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
### MessagePack Processing Log
77

8-
To enable logging for the slowest and most frequently called rule-nodes,
8+
To enable logging for the slowest and most frequently called rule nodes,
99
[update your logging configuration](#enable-certain-logs) with the following **logger**:
1010

1111
```bash

_includes/docs/edge/user-guide/alarms.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The **Edge Alarms** are created and configured in the same way as the **Cloud Al
1919

2020
The easiest way to create an Alarm is to use the [Alarm Rules within the Device profile](/docs/{{cloudDocsPrefix}}user-guide/device-profiles/#alarm-rules){: target="_blank"}. The majority of tasks can be configured with **Alarm Rules** with minimal effort.
2121

22-
If more complex logic is required, we suggest using the alternative option, namely the ["Create Alarm"](/docs/{{cloudDocsPrefix}}user-guide/rule-engine-2-0/action-nodes/#create-alarm-node){: target="_blank"} and ["Clear Alarm"](/docs/{{cloudDocsPrefix}}user-guide/rule-engine-2-0/action-nodes/#clear-alarm-node){: target="_blank"} rule nodes in the [Rule Engine](/docs/{{cloudDocsPrefix}}user-guide/rule-engine-2-0/re-getting-started/){: target="_blank"}. This is a more advanced option that requires a certain level of programming expertise. Please refer to the [corresponding example](/docs/user-guide/rule-engine-2-0/tutorials/create-clear-alarms/){: target="_blank"}.
22+
If more complex logic is required, we suggest using the alternative option, namely the ["Create Alarm"](/docs/user-guide/rule-engine-2-0/nodes/action/create-alarm/){:target="_blank"} and ["Clear Alarm"](/docs/user-guide/rule-engine-2-0/nodes/action/clear-alarm/){: target="_blank"} rule nodes in the [Rule Engine](/docs/{{cloudDocsPrefix}}user-guide/rule-engine-2-0/re-getting-started/){: target="_blank"}. This is a more advanced option that requires a certain level of programming expertise. Please refer to the [corresponding example](/docs/user-guide/rule-engine-2-0/tutorials/create-clear-alarms/){: target="_blank"}.
2323

2424
## Alarms Pushing from the Cloud to the Edge
2525

@@ -55,4 +55,4 @@ To push Alarms from the **Edge** to the **Cloud**, follow these steps:
5555

5656
## Next steps
5757

58-
{% include templates/edge/guides-banner-edge.md %}
58+
{% include templates/edge/guides-banner-edge.md %}

_includes/docs/edge/user-guide/edge-attributes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ To use **Edge** attributes as placeholders in the **Rule Chain template**:
8585
* Then, find the **"rest api call"** node using the **Node search** bar. Drag and drop the node onto the **Rule Chain sheet**. In the pop-up window, enter the **node name** and click the **"Add"** button.
8686
* **Name:** Enter the node name.
8787
* **Headers:** Enter the request header and value. The header or value can be a static string, or pattern that is resolved using Message Metadata properties.
88-
* Click the **"Add"** button. Read more about the **REST API Call node configuration** [here](/docs/{{peDocsPrefix}}user-guide/rule-engine-2-0/external-nodes/#rest-api-call-node){: target="_blank"}.
88+
* Click the **"Add"** button. Read more about the **REST API Call node configuration** [here](/docs/user-guide/rule-engine-2-0/nodes/external/rest-api-call/){:target="_blank"}.
8989
* Connect the **"message type switch"** and **"related entity data"** nodes with the **“Post telemetry”** link label. Then, connect the **"related entity data"** and **"rest api call"** nodes with the **"Success"** link label. Click the **“Apply changes”** button on the **Rule Chain sheet**.
9090

9191
{% include images-gallery.html imageCollection="edgeAttributesAsPlaceholders" %}

_includes/docs/edge/user-guide/rule-engine/queues.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ In **ThingsBoard**, **queues** guarantee the message processing, handle occasion
88
For a better understanding, read the [Platform Queues documentation](/docs/{{peDocsPrefix}}user-guide/rule-engine-2-5/queues/){: target="_blank"}.
99

1010
**Tenant administrators** can use any **queue** in the **Edge Rule Chain**, the same as the **Platform Rule Chain**.
11-
**Queues** can be used in [checkpoint node](/docs/{{peDocsPrefix}}user-guide/rule-engine-2-0/flow-nodes/#checkpoint-node){: target="_blank"}
12-
or any [analytics nodes](/docs/pe/user-guide/rule-engine-2-0/analytics-nodes/){: target="_blank"} (for a Professional Edition).
11+
**Queues** can be used in [checkpoint node](/docs/user-guide/rule-engine-2-0/nodes/flow/checkpoint/){: target="_blank"}
12+
or any [analytics nodes](/docs/user-guide/rule-engine-2-0/nodes/analytics/){: target="_blank"} (for a Professional Edition).
1313

1414
Starting with **Edge 3.9**, Edge supports **Kafka** and **in-memory** types of message queues:
1515
* **In-Memory:** The built-in and default queue implementation. It is useful for development or proof-of-concept (PoC) environments, but is not recommended for production or any type of clustered deployments due to limited scalability.

_includes/docs/edge/user-guide/telemetry-sync.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
{:toc}
33

44
> **ThingsBoard Edge** does not automatically sync telemetry data.
5-
Instead, it's **a rule-based process**. The ["push to cloud"](/docs/{{peDocsPrefix}}user-guide/rule-engine-2-0/action-nodes/#push-to-cloud){:target="_blank"}
6-
and ["push to edge"](/docs/{{peDocsPrefix}}user-guide/rule-engine-2-0/action-nodes/#push-to-edge){:target="_blank"} rule nodes are responsible for
5+
Instead, it's **a rule-based process**. The ["push to cloud"](/docs/user-guide/rule-engine-2-0/nodes/action/push-to-cloud/){:target="_blank"}
6+
and ["push to edge"](/docs/user-guide/rule-engine-2-0/nodes/action/push-to-edge/){:target="_blank"} rule nodes are responsible for
77
the synchronization process.
88

99
### Edge → Cloud sync
@@ -36,7 +36,7 @@ The database tables updated in Cloud depend entirely on your Cloud‑side rule c
3636

3737
### Cloud → Edge sync
3838

39-
Similarly, Cloud synchronizes data using the ["push to edge"](/docs/{{peDocsPrefix}}user-guide/rule-engine-2-0/action-nodes/#push-to-edge){:target="_blank"} rule node within a Cloud rule chain.
39+
Similarly, Cloud synchronizes data using the ["push to edge"](/docs/user-guide/rule-engine-2-0/nodes/action/push-to-edge/){:target="_blank"} rule node within a Cloud rule chain.
4040

4141
The node converts the message into an **Edge Event** and stores it in the **Edge queue** on the Cloud (_either a local database or Kafka, depending on the queue type_).
4242
The event is then **asynchronously** pushed to the target Edge.

_includes/docs/pe/solution-templates/swimming-pool-scada-system.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -140,24 +140,24 @@ Each message passes through The **Swimming Pool Device Rule Chain**. Here, telem
140140
**Message processing flow:**
141141

142142
* **Alarm generation**:
143-
Every message first passes through the [device profile node](/docs/{{docsPrefix}}user-guide/device-profiles/#device-profile-rule-node){:target="_blank"}. This step allows the system to generate alarms based on the conditions defined in the device profiles (such as for the heat pump, water pump, and sand filter). If the telemetry exceeds the set thresholds, alarms are triggered and displayed on the dashboard.{% include images-gallery.html imageCollection="rule-chain-1" %}
143+
Every message first passes through the [device profile node](/docs/user-guide/rule-engine-2-0/nodes/action/device-profile/){:target="_blank"}. This step allows the system to generate alarms based on the conditions defined in the device profiles (such as for the heat pump, water pump, and sand filter). If the telemetry exceeds the set thresholds, alarms are triggered and displayed on the dashboard.{% include images-gallery.html imageCollection="rule-chain-1" %}
144144

145145
* **Message type switch**:
146-
After the initial profile processing, the message moves to the [message type switch node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/filter-nodes/#message-type-switch-node){:target="_blank"}. This node routes messages based on their type, such as telemetry data, attribute updates, or RPC requests. It sends each message down the appropriate path for further processing.
146+
After the initial profile processing, the message moves to the [message type switch node](/docs/user-guide/rule-engine-2-0/nodes/filter/message-type-switch/){:target="_blank"}. This node routes messages based on their type, such as telemetry data, attribute updates, or RPC requests. It sends each message down the appropriate path for further processing.
147147

148148
{% include images-gallery.html imageCollection="rule-chain-2" %}
149149

150150
* **General logic – save attributes, time series, and RPC requests**:
151151
Independent of the message type, these actions are performed for all devices.
152152

153-
* [save attributes node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/action-nodes/#save-attributes-node){:target="_blank"}: The telemetry data from devices is saved as attributes.
154-
* [save time series node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/action-nodes/#save-timeseries-node){:target="_blank"}: Time series data is saved for historical analysis and monitoring.
155-
* [rpc call request node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/action-nodes/#rpc-call-request-node){:target="_blank"}: The system can generate and send RPC requests to devices. These RPC commands may turn devices on/off, change operational modes, or control valve positions. For example, valves can be opened/closed, and pumps can be activated/deactivated based on predefined conditions or manual requests.
153+
* [save attributes node](/docs/user-guide/rule-engine-2-0/nodes/action/save-attributes/){:target="_blank"}: The telemetry data from devices is saved as attributes.
154+
* [save time series node](/docs/user-guide/rule-engine-2-0/nodes/action/save-timeseries/){:target="_blank"}: Time series data is saved for historical analysis and monitoring.
155+
* [rpc call request node](/docs/user-guide/rule-engine-2-0/nodes/action/rpc-call-request/){:target="_blank"}: The system can generate and send RPC requests to devices. These RPC commands may turn devices on/off, change operational modes, or control valve positions. For example, valves can be opened/closed, and pumps can be activated/deactivated based on predefined conditions or manual requests.
156156

157157
{% include images-gallery.html imageCollection="rule-chain-3" %}
158158

159159
* **Device profile filtering**:
160-
Once the telemetry data is saved, the message is routed through the [device profile switch node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/filter-nodes/#device-profile-switch){:target="_blank"}. This node filters the devices based on their profile, allowing for device-specific actions. When telemetry from the **heat pump** is detected, the system checks specific conditions—like target temperature, outdoor temperature, and pool temperature—through a [switch node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/filter-nodes/#switch-node){:target="_blank"}. If the telemetry conditions meet the thresholds for turning the heat pump on or off, an RPC request is sent to control the heat pump’s state.
160+
Once the telemetry data is saved, the message is routed through the [device profile switch node](/docs/user-guide/rule-engine-2-0/nodes/filter/device-profile-switch/){:target="_blank"}. This node filters the devices based on their profile, allowing for device-specific actions. When telemetry from the **heat pump** is detected, the system checks specific conditions—like target temperature, outdoor temperature, and pool temperature—through a [switch node](/docs/user-guide/rule-engine-2-0/nodes/filter/switch/){:target="_blank"}. If the telemetry conditions meet the thresholds for turning the heat pump on or off, an RPC request is sent to control the heat pump’s state.
161161

162162
{% include images-gallery.html imageCollection="rule-chain-4" %}
163163

@@ -231,4 +231,4 @@ For more about alarms and how to configure them, read [here](/docs/{{docsPrefix}
231231

232232
The Swimming Pool SCADA template provides a ready-to-use framework for managing swimming pool components.
233233
It ensures seamless integration between sensors, and ThingsBoard, allowing real-time data collection, processing, and visualization.
234-
This setup not only enhances operational efficiency but also provides a scalable and reliable solution for centralized supervision and control of swimming pool systems.
234+
This setup not only enhances operational efficiency but also provides a scalable and reliable solution for centralized supervision and control of swimming pool systems.

_includes/docs/pe/user-guide/custom-translation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ First, add the "Weather" dashboard to your instance:
282282
- [Download the dashboard configuration as a JSON file](/docs/user-guide/resources/weather_dashboard.json){:target="_blank"}.
283283
- [Import](/docs/{{docsPrefix}}user-guide/dashboards/#import-dashboard){:target="_blank"} it into your ThingsBoard instance.
284284

285-
For this dashboard, I'm emulating telemetry data using a [Generator node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/action-nodes/#generator-node){:target="_blank"} with the function provided below:
285+
For this dashboard, I'm emulating telemetry data using a [Generator node](/docs/user-guide/rule-engine-2-0/nodes/action/generator/){:target="_blank"} with the function provided below:
286286

287287
```js
288288
var temperature = toFixed(Math.random()*10 + 18, 2);
@@ -726,4 +726,4 @@ If at any time you need to delete a language or reset its translations to the de
726726

727727
## Next steps
728728

729-
{% assign currentGuide = "AdvancedFeatures" %}{% include templates/multi-project-guides-banner.md %}
729+
{% assign currentGuide = "AdvancedFeatures" %}{% include templates/multi-project-guides-banner.md %}

_includes/docs/pe/user-guide/file-storage.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
## Overview
55

6-
ThingsBoard has ability to store binary content (files) in the DataBase.
7-
Currently it is used to store report files generated by [Generate Report Node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/action-nodes/#generate-report-node).
8-
Stored files are accessed by [Send Email Node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/external-nodes/#send-email-node) to create email attachments.
9-
Another way to send a file is the [REST API Call Node](/docs/{{docsPrefix}}user-guide/rule-engine-2-0/external-nodes/#rest-api-call-node).
6+
ThingsBoard has ability to store binary content (files) in the database.
7+
Currently it is used to store report files generated by [Generate Dashboard Report Node](/docs/user-guide/rule-engine-2-0/nodes/action/generate-dashboard-report/).
8+
Stored files are accessed by [Send Email Node](/docs/user-guide/rule-engine-2-0/nodes/external/send-email/) to create email attachments.
9+
Another way to send a file is the [REST API Call Node](/docs/user-guide/rule-engine-2-0/nodes/external/rest-api-call/).
1010
User can access stored files using **Files** or **Reports** widgets which is part of **Files** Widgets Bundle.
1111

1212
## Files Widget

_includes/docs/pe/user-guide/integrations/aws-iot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ JavaScript<small></small>%,%anonymous%,%templates/integration/aws-iot/aws-iot-do
229229
{% include content-toggle.liquid content-toggle-id="awsiotdownlinkconverterconfig" toggle-spec=awsiotdownlinkconverterconfig %}
230230

231231
Next, configure the conditions under which a message will be sent through the AWS IoT Downlink integration.
232-
To do this, you need to open the Rule Chain used for the device (in our case, the default Root Rule Chain), then add an [integration downlink node](https://thingsboard.io/docs/{{docsPrefix}}user-guide/rule-engine-2-0/action-nodes/#integration-downlink-node), for link condition set the Attributes Updated.
232+
To do this, you need to open the Rule Chain used for the device (in our case, the default Root Rule Chain), then add an [integration downlink node](https://thingsboard.io/docs/user-guide/rule-engine-2-0/nodes/action/integration-downlink/), for link condition set the Attributes Updated.
233233

234234
{% include images-gallery.html imageCollection="downlink_2-3" %}
235235

_includes/docs/pe/user-guide/integrations/kafka.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ Confluent Cloud<br><small>Cloud solution</small>%,%confluent%,%/templates/integr
139139

140140
## Advanced Usage: Kafka Producer (Downlink)
141141

142-
To get functionality such as Kafka Producer, you need to use the [Kafka Rule Node](https://thingsboard.io/docs/{{docsPrefix}}user-guide/rule-engine-2-0/external-nodes/#kafka-node) in which you can specify Bootstrap servers, Topic and other parameters to connect to the Kafka broker, you can find more details in the corresponding [guide](https://thingsboard.io/docs/{{docsPrefix}}user-guide/rule-engine-2-0/external-nodes/#kafka-node) .
142+
To get functionality such as Kafka Producer, you need to use the [Kafka Rule Node](https://thingsboard.io/docs/user-guide/rule-engine-2-0/nodes/external/kafka/) in which you can specify Bootstrap servers, Topic and other parameters to connect to the Kafka broker, you can find more details in the corresponding [guide](https://thingsboard.io/docs/user-guide/rule-engine-2-0/nodes/external/kafka/) .
143143

144144
If it is not possible to send commands directly to devices to manage from ThingsBoard, but only through a broker, then in this case you can use the Kafka Downlink Rule Node. Let's consider a small example with its Node, suppose the data came from the broker and passed the converter and, according to the config of Device Profile, were directed to the custom Rule Chain ("Monitoring-sensor") and at the end of all processing, we will send a response about success or failure back to the broker ( you can change the response to commands to control your device, etc.)
145145

0 commit comments

Comments
 (0)