diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java index 04fd3aad25..ef7dca542f 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckAlarmStatusNode.java @@ -42,7 +42,7 @@ import java.io.IOException; configClazz = TbCheckAlarmStatusNodeConfig.class, relationTypes = {"True", "False"}, nodeDescription = "Checks alarm status.", - nodeDetails = "If the alarm status matches the specified one - msg is success if does not match - msg is failure.", + nodeDetails = "Checks the alarm status to match one of the specified statuses.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbFilterNodeCheckAlarmStatusConfig") public class TbCheckAlarmStatusNode implements TbNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java index 26b8de5e8e..3853b3a62a 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckMessageNode.java @@ -32,12 +32,13 @@ import java.util.Map; @Slf4j @RuleNode( type = ComponentType.FILTER, - name = "check existence fields", + name = "check fields presence", relationTypes = {"True", "False"}, configClazz = TbCheckMessageNodeConfiguration.class, - nodeDescription = "Checks the existence of the selected keys from message data and metadata.", - nodeDetails = "If selected checkbox 'Check that all selected keys are present'\" and all keys in message data and metadata are exist - send Message via True chain, otherwise False chain is used.\n" + - "Else if the checkbox is not selected, and at least one of the keys from data or metadata of the message exists - send Message via True chain, otherwise, False chain is used. ", + nodeDescription = "Checks the presence of the specified fields in the message and/or metadata.", + nodeDetails = "Checks the presence of the specified fields in the message and/or metadata. " + + "By default, the rule node checks that all specified fields need to be present. " + + "Uncheck the 'Check that all specified fields are present' if the presence of at least one field is sufficient.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbFilterNodeCheckMessageConfig") public class TbCheckMessageNode implements TbNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java index 19a6c9ac5f..4a0d6b05e7 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbCheckRelationNode.java @@ -46,10 +46,9 @@ import static org.thingsboard.common.util.DonAsynchron.withCallback; name = "check relation", configClazz = TbCheckRelationNodeConfiguration.class, relationTypes = {"True", "False"}, - nodeDescription = "Checks the relation from the selected entity to the originator of the message by type and direction" + - " if 'Check for single entity' is set to true, otherwise rule node will check if exist" + - " any relation to the originator of the message by type and direction.", - nodeDetails = "If at least one relation exists - send Message via True chain, otherwise False chain is used.", + nodeDescription = "Checks the presence of the relation between the originator of the message and other entities.", + nodeDetails = "If 'check relation to specific entity' is selected, one must specify a related entity. " + + "Otherwise, the rule node checks the presence of a relation to any entity that matches the direction and relation type criteria.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbFilterNodeCheckRelationConfig") public class TbCheckRelationNode implements TbNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java index b439c64abb..0bde9402a7 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsFilterNode.java @@ -34,9 +34,10 @@ import static org.thingsboard.common.util.DonAsynchron.withCallback; type = ComponentType.FILTER, name = "script", relationTypes = {"True", "False"}, configClazz = TbJsFilterNodeConfiguration.class, - nodeDescription = "Filter incoming messages using JS script", - nodeDetails = "Evaluate incoming Message with configured JS condition. " + - "If True - send Message via True chain, otherwise False chain is used." + + nodeDescription = "Filter incoming messages using TBEL or JS script", + nodeDetails = "Evaluates boolean function using incoming message. " + + "The function may be written using TBEL or plain JavaScript. " + + "Script function should return boolean value and accepts three parameters:
" + "Message payload can be accessed via msg property. For example msg.temperature < 10;
" + "Message metadata can be accessed via metadata property. For example metadata.customerName === 'John';
" + "Message type can be accessed via msgType property.", diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java index 46422db94a..706978846a 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbJsSwitchNode.java @@ -39,8 +39,8 @@ import java.util.Set; name = "switch", customRelations = true, relationTypes = {}, configClazz = TbJsSwitchNodeConfiguration.class, - nodeDescription = "Route incoming Message to one or multiple output chains", - nodeDetails = "Node executes configured JS script. Script should return array of next Chain names where Message should be routed. " + + nodeDescription = "Routes incoming message to one OR multiple output connections.", + nodeDetails = "Node executes configured TBEL(recommended) or JavaScript function that returns array of strings (connection names). " + "If Array is empty - message not routed to next Node. " + "Message payload can be accessed via msg property. For example msg.temperature < 10;
" + "Message metadata can be accessed via metadata property. For example metadata.customerName === 'John';
" + diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java index 5730de2b31..f4e13d761e 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/filter/TbOriginatorTypeFilterNode.java @@ -32,8 +32,8 @@ import org.thingsboard.server.common.msg.TbMsg; name = "entity type", configClazz = TbOriginatorTypeFilterNodeConfiguration.class, relationTypes = {"True", "False"}, - nodeDescription = "Filter incoming messages by message Originator Type", - nodeDetails = "If the entity type of the incoming message originator is expected - send Message via True chain, otherwise False chain is used.", + nodeDescription = "Filter incoming messages by the type of message originator entity", + nodeDetails = "Checks that the entity type of the incoming message originator matches one of the values specified in the filter.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbFilterNodeOriginatorTypeConfig") public class TbOriginatorTypeFilterNode implements TbNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java index 6df6bc1e8a..373118ebdd 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/geo/TbGpsGeofencingFilterNode.java @@ -32,7 +32,32 @@ import org.thingsboard.server.common.msg.TbMsg; configClazz = TbGpsGeofencingFilterNodeConfiguration.class, relationTypes = {"True", "False"}, nodeDescription = "Filter incoming messages by GPS based geofencing", - nodeDetails = "Extracts latitude and longitude parameters from incoming message and returns 'True' if they are inside configured perimeters, 'False' otherwise.", + nodeDetails = "Extracts latitude and longitude parameters from the incoming message and checks them according to configured perimeter.
" + + "Configuration:

" + + "
" + + "Rule node will use default metadata key names, if the \"Fetch perimeter from message metadata\" is enabled and \"Perimeter key name\" is not configured. " + + "Default metadata key names for polygon perimeter type is \"perimeter\". Default metadata key names for circle perimeter are: \"centerLatitude\", \"centerLongitude\", \"range\", \"rangeUnit\"." + + "

" + + "Structure of the circle perimeter definition (stored in server-side attribute, for example):" + + "

" + + "{\"latitude\": 48.198618758582384, \"longitude\": 24.65322245153503, \"radius\": 100.0, \"radiusUnit\": \"METER\" }" + + "

" + + "Available radius units: METER, KILOMETER, FOOT, MILE, NAUTICAL_MILE;", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbFilterNodeGpsGeofencingConfig") public class TbGpsGeofencingFilterNode extends AbstractGeofencingNode {