Browse Source

init commit for fields templatization docs

pull/8695/head
ShvaykaD 3 years ago
parent
commit
d013d6b3e9
  1. 9
      ui-ngx/src/assets/help/en_US/rulenode/common_node_fields_templatization.md
  2. 101
      ui-ngx/src/assets/help/en_US/rulenode/customer_attributes_node_fields_templatization.md
  3. 1
      ui-ngx/src/assets/help/en_US/rulenode/msg_and_metadata_key_patterns_fn.md

9
ui-ngx/src/assets/help/en_US/rulenode/common_node_fields_templatization.md

@ -0,0 +1,9 @@
Fields templatization feature allows you to process the incoming messages with dynamic configuration by substitution templates specified in the configuration fields with values from message or message metadata.
There are two types of rule node configuration templates defined.
*$[messageKey]* - templates with square brackets used to extract value from the message.
*${metadataKey}* - templates with curly brackets used to extract value from the message metadata.
Note: *messageKey* and *metadataKey* are just samples of key names that might exist in the message or metadata.

101
ui-ngx/src/assets/help/en_US/rulenode/customer_attributes_node_fields_templatization.md

@ -0,0 +1,101 @@
#### Customer attributes node fields templatization
<div class="divider"></div>
<br/>
{% include rulenode/common_node_fields_templatization %}
##### Example
Let's assume that we have a customer-based solution where customer manage two type of devices: *temperature* and *humidity* sensors.
Additionally, let's assume that customer configured the thresholds settings for each device type.
Threshold settings stored as an attributes on a customer level:
- *temperature_min_threshold* and *temperature_max_threshold* for temperature sensor with values set to *10* and *30* accordingly.
- *humidity_min_threshold* and *humidity_max_threshold* for humidity sensor with values set to *70* and *85* accordingly.
Each message received from device includes: *deviceType* property in the message metadata
with either *temperature* or *humidity* value according to the sensor type.
In order to fetch the threshold value for the further message processing you can define next mapping in the configuration:
TODO: add node config screenshot instead of mapping below:
source key -> target key
${deviceType}_min_threshold -> min_threshold
${deviceType}_max_threshold -> max_threshold
Imagine that you receive message defined below from the *temperature* sensor
and forwarded it to the *customer attributes* node with configuration added above.
- incoming message definition:
```json
{
"msg":{
"temperature":32
},
"metadata":{
"deviceType":"temperature",
"deviceName":"TH-001",
"ts":1685379440000
}
}
```
Rule node default configuration set to fetch data to the message metadata so the outgoing message would be updated to:
```json
{
"msg":{
"temperature":32
},
"metadata":{
"deviceType":"temperature",
"deviceName":"TH-001",
"ts":1685379440000,
"min_threshold":"10",
"max_threshold":"30"
}
}
```
The same example for the *humidity* sensor:
- incoming message definition:
```json
{
"msg":{
"humidity":32
},
"metadata":{
"deviceType":"humidity",
"deviceName":"HM-001",
"ts":1685379440000
}
}
```
Rule node configuration wasn't changed so the outgoing message would be updated to:
```json
{
"msg":{
"humidity":77
},
"metadata":{
"deviceType":"humidity",
"deviceName":"HM-001",
"ts":1685379440000,
"min_threshold":"70",
"max_threshold":"85"
}
}
```
This example showcases using the *customer attributes* node with dynamic configuration based on the substitution of metadata fields.

1
ui-ngx/src/assets/help/en_US/rulenode/msg_and_metadata_key_patterns_fn.md

@ -1 +0,0 @@
#### Coming soon!
Loading…
Cancel
Save