Skip to main content
Version: 2.2

AWS IoT SiteWise Nodes

AWS IoT SiteWise is an AWS managed service for collecting, organizing, and analyzing industrial equipment data at scale. MaestroHub provides write, read, and browse nodes to interact with SiteWise asset models and properties from within pipelines.

Configuration Quick Reference

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

SiteWise Write node configuration

SiteWise Write Node

SiteWise Write Node

Batch ingest data into AWS IoT SiteWise via BatchPutAssetPropertyValue.

Supported Function Types:

Function NamePurposeCommon Use Cases
Write (sitewise.write)Push VQT entries to asset propertiesSensor data ingestion, telemetry upload, auto-provisioned modeling

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesSiteWise connection profile to use
FunctionSelectionYesWrite function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your SiteWise connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Write:

ParameterTypeRequiredDefaultDescription
propertyAliasStringYes-Property alias prefix. Each data field is appended as /{fieldName}. Example: /factory/motor-001
dataString (JSON)Yes-JSON payload to write. Each key becomes a separate VQT entry. Example: {"temperature": 25.5, "rpm": 1200}
batchSizeNumberNo10Entries per BatchPutAssetPropertyValue API call (1-10, AWS hard limit)
qualityStringNoGOODData quality flag: GOOD, BAD, or UNCERTAIN
createModelIfNotExistsBooleanNofalseAuto-create the asset model and asset if they don't exist
schemaObjectNo-Type hints to override auto-inference. Example: {"temperature": "DOUBLE"}
enablePartialEntryProcessingBooleanNotrueContinue processing when some entries in a batch fail

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Input

The node receives the output of the previous node as input. If the data parameter is not set in the function configuration, the node uses the pipeline input directly as the data payload. Use expressions like {{ $input.payload }} to pass dynamic data.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": {
"entriesWritten": 3,
"entriesFailed": 0,
"totalEntries": 3,
"propertyAlias": "/factory/motor-001"
},
"durationMs": 125,
"timestamp": "2026-03-11T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
dataobjectWrite result details (see below)
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

data fields:

FieldTypeDescription
entriesWrittennumberCount of successfully written VQT entries
entriesFailednumberCount of entries that failed (partial failures)
totalEntriesnumberTotal entries sent to the API
propertyAliasstringThe property alias prefix used for the write
storeForwardQueueDepthnumberCurrent Store & Forward queue depth (only present when SAF is enabled)

Partial Failures

When enablePartialEntryProcessing is true (the default), the write operation continues even if some entries within a batch fail validation. The output reports both entriesWritten and entriesFailed counts, allowing downstream nodes to handle partial failures gracefully.

When enablePartialEntryProcessing is false, any per-entry failure causes the entire batch to fail.

Store & Forward Behavior

When Store & Forward is enabled on the connection and a write batch fails completely (network error, authentication failure), the failed entries are automatically buffered in a local queue. The queue drains every 30 seconds when connectivity is restored. Entries have a 7-day TTL matching the SiteWise timestamp acceptance window.

Safety First

Always validate data before writing to industrial equipment. Consider adding condition nodes to verify values are within safe ranges before the SiteWise Write node.


SiteWise Read node configuration

SiteWise Read Node

SiteWise Read Node

Read the latest value from a SiteWise asset property.

Supported Function Types:

Function NamePurposeCommon Use Cases
Read Latest Value (sitewise.read)Fetch the most recent VQT data pointEquipment monitoring, threshold checks, status polling

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesSiteWise connection profile to use
FunctionSelectionYesRead function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your SiteWise connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Read:

ParameterTypeRequiredDefaultDescription
propertyAliasStringConditional-Property alias (e.g., /factory/motor-001/temperature). Either this OR both assetId + propertyId must be provided.
assetIdStringConditional-SiteWise asset UUID. Must be paired with propertyId.
propertyIdStringConditional-SiteWise property UUID. Must be paired with assetId.

All function parameters support expression syntax ({{ expression }}) for dynamic values.

Input

The node receives the output of the previous node as input. Use expressions like {{ $input.assetId }} to dynamically select which property to read.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"value": 72.5,
"quality": "GOOD",
"timestamp": "2026-03-11T08:29:55.000000000Z",
"dataType": "DOUBLE"
},
"durationMs": 42,
"timestamp": "2026-03-11T08:30:00Z"
}

data fields:

FieldTypeDescription
valueanyThe property value. Type depends on the SiteWise data type: number (DOUBLE/INTEGER), boolean (BOOLEAN), string (STRING), or null if no value exists.
qualitystringData quality: GOOD, BAD, UNCERTAIN, or empty string if no value exists
timestampstringRFC 3339 timestamp with nanosecond precision from the SiteWise data point
dataTypestringSiteWise data type: DOUBLE, INTEGER, STRING, BOOLEAN, or empty string

No Value Scenario

If a property has never been written to, the read returns:

{
"value": null,
"quality": "",
"timestamp": "",
"dataType": ""
}

SiteWise Browse Node

Discover asset models, assets, and properties in the SiteWise hierarchy.

Supported Function Types:

Function NamePurposeCommon Use Cases
Browse Asset Hierarchy (sitewise.browse)Navigate the asset hierarchy to discover resourcesBuild tag catalogs, validate asset setup, find property aliases

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesSiteWise connection profile to use
FunctionSelectionYesBrowse function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your SiteWise connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Browse:

ParameterTypeRequiredDefaultDescription
nodeTypeStringNorootLevel to browse: root (list models), model (list assets), asset (list properties and children)
identifierStringConditional-Required when nodeType is model (model ID) or asset (asset ID). Not required for root.
maxResultsNumberNo50Maximum results per page (1-250)
continuationPointStringNo-Opaque pagination token from a previous browse response

All function parameters support expression syntax ({{ expression }}) for dynamic values.

Input

The node receives the output of the previous node as input.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"nodeType": "asset",
"identifier": "a1b2c3d4-5678-90ab-cdef-111111111111",
"browseName": "Motor-001",
"nodeClass": "Asset",
"children": [
{
"identifier": "p1p2p3p4-5678-90ab-cdef-222222222222",
"browseName": "temperature",
"nodeClass": "Property",
"description": "/factory/motor-001/temperature",
"hasChildren": false,
"dataType": "DOUBLE"
},
{
"identifier": "p5p6p7p8-5678-90ab-cdef-333333333333",
"browseName": "rpm",
"nodeClass": "Property",
"description": "/factory/motor-001/rpm",
"hasChildren": false,
"dataType": "INTEGER"
}
],
"continuationPoint": "",
"hasMore": false
},
"durationMs": 85,
"timestamp": "2026-03-11T08:30:00Z"
}

data fields:

FieldTypeDescription
nodeTypestringThe browse level: root, model, or asset
identifierstringID of the browsed node (model ID, asset ID, or empty for root)
browseNamestringDisplay name of the browsed node
nodeClassstringNode class: Root, AssetModel, Asset, or Property
childrenarrayChild nodes (see child fields below)
continuationPointstringPagination token. Pass this back to fetch the next page. Empty when all results have been returned.
hasMorebooleantrue if more results are available via continuationPoint

Child node fields:

FieldTypeDescription
identifierstringResource ID (model ID, asset ID, or property ID)
browseNamestringDisplay name
nodeClassstringAssetModel, Asset, or Property
descriptionstringDescription or property alias (for Property nodes)
hasChildrenbooleanWhether this node can be expanded further. All Asset and AssetModel nodes return true; Property nodes return false.
dataTypestringSiteWise data type for Property nodes: DOUBLE, INTEGER, STRING, BOOLEAN. Empty for non-property nodes.

Browse Levels

nodeTypeWhat it returnsNext step
rootAll asset models in the SiteWise environmentBrowse a model to see its assets
modelAll assets instantiated from a specific modelBrowse an asset to see its properties
assetAll properties of the asset plus any child assets (via hierarchies)Properties are leaf nodes

Pagination

For hierarchies with many nodes, use maxResults and continuationPoint:

  1. First call: nodeType: "root", maxResults: 10
  2. If hasMore is true, make another call with the returned continuationPoint
  3. Continue until hasMore is false
Caching

Browse results (without continuation points) are cached in memory to avoid redundant API calls. The cache is cleared when the connection is disconnected.


Settings Tab

All SiteWise node types share the same Settings tab:

SettingTypeDefaultDescription
DescriptionText-Optional description displayed on the node
Timeout (seconds)NumberPipeline defaultMaximum time the node may run before timing out
Retry on TimeoutTogglePipeline defaultAutomatically retry the node if it times out
Retry on FailTogglePipeline defaultAutomatically retry the node if it fails
On ErrorSelectionPipeline defaultError strategy: stop the pipeline, continue to the next node, or follow the error output path

When left at their defaults, these settings inherit from the pipeline-level execution configuration.