Skip to main content

Appendix D: Rule Node Reference Guide

Overview​

Applicable Role: Tenant Administrator (rule chain configuration and management permissions); System Administrators and End‑Users may consult this appendix for reference only.

Rule Nodes are the building blocks of ThingsEye rule chains. Each node processes one incoming message at a time and routes the processing result to downstream nodes via named relations (Success, Failure, True, False, or custom names). The built‑in rule nodes in ThingsEye are divided into seven categories: Filter, Enrichment, Transformation, Action, External, Flow, and Generator.

Note: Generator nodes are primarily used for testing and development scenarios and are omitted from this document. For specific configuration interfaces of each node, refer to the actual platform version. For detailed rule chain configuration workflows, see "Rule Chain Management".


D.1 Filter Nodes​

Filter nodes are routing and conditional evaluation components in the rule engine. They inspect incoming messages and decide which downstream nodes the messages should be routed to based on various conditions. Filter nodes do not modify message content or perform system actions; they are used purely to determine the processing path of messages. Typical output relations are "True/False" or named connections corresponding to the filter conditions.

Node NameDescription
Alarm Status FilterRoutes messages based on whether the alarm status matches the configured status
Asset Profile SwitchRoutes messages based on the profile name of the source Asset
Check Fields PresenceRoutes messages based on whether specified fields exist in the message data or metadata
Check Relation PresenceRoutes messages based on whether a specified relation exists between the message originator and the target entity
Device Profile SwitchRoutes messages based on the profile name of the source Device
Entity Type FilterRoutes messages based on whether the source entity type matches the configured type
Entity Type SwitchRoutes messages to different connections based on the source entity type
GPS Geofencing FilterRoutes messages based on whether GPS coordinates fall within the configured geofence boundary
Message Type FilterRoutes messages based on whether the message type matches the configured type
Message Type SwitchRoutes messages to different connections based on the message type
Script FilterRoutes messages via a custom boolean script (JavaScript/TBEL) to evaluate conditions
SwitchRoutes messages to one or more connections via a script

Among these, Script Filter is the most flexible node, allowing arbitrary conditional logic to filter messages.


D.2 Enrichment Nodes​

Enrichment nodes are used to include contextual data about the message originator, related entities, and other context in outbound messages for subsequent processing steps in the rule chain. These nodes query relevant information from the ThingsEye database and add it to the message metadata or payload.

Node NameDescription
Calculate DeltaCalculates the difference between the current value and the previous value from the same originator, optionally including elapsed time
Customer AttributesAdds server‑side attributes or latest time‑series data of the customer that owns the originator
Customer DetailsAdds details of the customer that owns the originator (name, email, address, etc.)
Fetch Device CredentialsAdds credentials (type and value) of the originator device
Originator AttributesAdds client/shared/server‑side attributes of the message originator
Originator FieldsAdds details of the message originator (e.g., name, type, etc.)
Originator TelemetryAdds historical time‑series data of the message originator over a specified time interval
Related Device AttributesEnriches messages by fetching attributes or telemetry from related devices

D.3 Transformation Nodes​

Transformation nodes are used to change the fields of incoming messages, including Originator, Message Type, Payload, and Metadata.

Node NameDescription
Change OriginatorReplaces the message originator with another entity (e.g., customer, tenant, related entity, alarm originator, or entity found by name pattern)
Copy Key-Value PairsCopies specified key‑value pairs between message data and metadata in either direction
DeduplicationBuffers messages from the same originator within a configured time window and emits only the first one
JSON PathExtracts the portion of the message specified by a JSON path
Rename KeysRenames keys in message data or metadata according to a configured mapping
Script TransformationChanges the message payload, metadata, or message type via a JavaScript/TBEL function
To EmailTransforms the message into an email format
Duplicate To GroupDuplicates messages to entity groups
Duplicate To RelatedDuplicates messages to related entities

D.4 Action Nodes​

Action nodes are the execution components of the rule engine, performing concrete operations and side effects based on messages flowing through the rule chain.

Node NameDescription
Add To GroupAdds the message originator to a found entity group based on a group name pattern
Assign To CustomerAssigns the message originator to a specified customer
Calculated FieldsTriggers field calculation processing for time‑series or attribute data without persisting raw data to the database
Change OwnerChanges the ownership of the message originator to a specified tenant or customer
Clear AlarmClears an existing active alarm for the message originator
Copy To ViewCopies attribute changes of a device or asset to associated entity views
Create RelationCreates a relation between the message originator and a configured target entity
Create AlarmCreates or updates an alarm for the message originator
Remove From GroupRemoves the message originator from an entity group
Generate ReportGenerates a report
REST Call ReplyReplies to a REST API call

D.5 External Nodes​

External nodes are used to publish or transmit data to target systems outside ThingsEye, including cloud platforms, messaging systems, communication services, etc.

Node NameDescription
AI RequestSends a request to an AI service (OpenAI, AWS Bedrock, Anthropic, etc.) and returns the AI‑generated response
AWS LambdaSynchronously invokes an AWS Lambda function with the message data as the payload
GCP Pub/SubPublishes message data to a Google Cloud Pub/Sub topic
KafkaPublishes message data to an Apache Kafka topic
RabbitMQPublishes message data to a RabbitMQ exchange
Send EmailSends an email
REST API CallCalls an external REST API
Push to CloudPushes data from an Edge instance to the cloud
Push to EdgePushes data from the cloud to an Edge instance

D.6 Flow Nodes​

Flow nodes control how messages flow between different parts of the rule engine.

Node NameDescription
AcknowledgeAcknowledges a message in the queue and forwards it to the next node
CheckpointTransfers a message to a specified queue, used for sequential processing or separating different workloads
Rule ChainForwards a message to a specified rule chain
OutputReturns the processing result of a child chain to the Rule Chain node that called it

D.7 Message Type Reference​

Every message in the rule engine carries a type identifier that tells the rule nodes what event triggered the message. The following are common built‑in message types in ThingsEye:

Message TypeDisplay NameSource EntityDescription
POST_ATTRIBUTES_REQUESTPost attributesDeviceDevice reports attribute updates
POST_TELEMETRY_REQUESTPost telemetryDeviceDevice reports telemetry data
TO_SERVER_RPC_REQUESTRPC Request from DeviceDeviceRPC request initiated by the device
RPC_CALL_FROM_SERVER_TO_DEVICERPC Request to DeviceDeviceRPC request initiated by the platform to the device
ACTIVITY_EVENTActivity EventDeviceDevice activity event
INACTIVITY_EVENTInactivity EventDeviceDevice inactivity event
CONNECT_EVENTConnect EventDeviceDevice connection event
DISCONNECT_EVENTDisconnect EventDeviceDevice disconnection event
ENTITY_CREATEDEntity CreatedAny entityEntity creation event
ENTITY_UPDATEDEntity UpdatedAny entityEntity update event
ENTITY_DELETEDEntity DeletedAny entityEntity deletion event
ENTITY_ASSIGNEDEntity AssignedAny entityEntity assignment event
ENTITY_UNASSIGNEDEntity UnassignedAny entityEntity unassignment event
ADDED_TO_ENTITY_GROUPAdded to GroupAny entityAdded to entity group event
REMOVED_FROM_ENTITY_GROUPRemoved from GroupAny entityRemoved from entity group event
ATTRIBUTES_UPDATEDAttributes UpdatedAny entityAttribute update event
ATTRIBUTES_DELETEDAttributes DeletedAny entityAttribute deletion event
ALARMAlarm eventAny entityAlarm event
ALARM_ASSIGNEDAlarm AssignedAny entityAlarm assignment event
ALARM_UNASSIGNEDAlarm UnassignedAny entityAlarm unassignment event
COMMENT_CREATEDComment CreatedAny entityComment creation event
COMMENT_UPDATEDComment UpdatedAny entityComment update event
REST_API_REQUESTREST API Request to Rule EngineAny entityRequest initiated to the rule engine via REST API

Hint: Any rule node or integration can generate messages with custom type strings; custom types are not listed in the table above and depend on the specific rule chain configuration. Use the Message Type Switch or Message Type Filter nodes to route custom message types.