Data Objects
The Data Engine is expected to change in WEDA v1.1.1. This page describes the Data Object behavior available in the current release.
Data Source → Data Object → Transfer Function (optional) → Output Data Object → Alert / Reports
Overview
A Data Object is the queryable, time-series data unit that all WEDA features build on. Every Data Source sensor is automatically synced into a Data Object of the same name — no configuration required. Additional Output Data Objects can be derived from existing Data Objects using a Transfer Function. Whether native or an Output Data Object, it is the same entity: a named, typed record stored in IoTDB.
Every downstream feature — Alert Rules and Reports — reads exclusively from Data Objects. Nothing reads from Data Sources directly.
Native Data Object definitions are read-only — managed by the auto-sync process. To derive additional Data Objects, use the Transfer Functions API.
Operations
| Operation | API | Description |
|---|---|---|
| List Data Objects | GET /api/v1/devices/{deviceId}/data-objects | All data-object definitions for a device |
| Get Data Object | GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId} | One definition by ID |
| Get Latest Values (all) | GET /api/v1/devices/{deviceId}/data-objects/values/latest | Latest snapshot for all data objects |
| Get Latest Value (one) | GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId}/values/latest | Latest value for one data object |
| Get Historical Values | GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId}/values/historical | Time-series from IoTDB |
| Download Blob | GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId}/blobs/{blobKey} | Binary value (image, waveform, etc.) |
Data Object Definition
GET /api/v1/devices/{deviceId}/data-objects
Returns { totalCount, items[] }. Each item includes dataObjectId, name, displayName, and dataType.
Use the dataObjectId returned by the current Data Object definition when querying values.
Reading Values
Get Latest Values (All Data Objects)
GET /api/v1/devices/{deviceId}/data-objects/values/latest
Returns the most recent value snapshot for every Data Object on the device within the system-defined
retention period, currently 60 minutes. The API returns 204 No Content if no value is available
from the realtime cache or the IoTDB fallback.
Get Latest Value (Single Data Object)
GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId}/values/latest
Returns the latest value for one specific Data Object within the same retention period. The API
returns 204 No Content if no recent value is available.
Get Historical Values (Time Series)
GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId}/values/historical
Cursor-based pagination for time-series data stored in IoTDB. Use the cursor from the previous
response to retrieve subsequent results until hasMore is false.
Download Binary Data (Blob)
GET /api/v1/devices/{deviceId}/data-objects/{dataObjectId}/blobs/{blobKey}
Retrieves a binary value (e.g. image, waveform buffer) stored under a specific blob key.
System Agent Metric Types
For a device running WEDA Node, the built-in System Agent reports hardware and system metrics.
WEDA Core then auto-syncs the corresponding Data Objects. The following names are examples; call
GET /api/v1/devices/{deviceId}/data-objects to discover the Data Objects exposed by a specific
device and configuration.
System Resources (all platforms)
| MetricType | Example Data Objects | Unit |
|---|---|---|
cpu | cpu_usage, cpu_load1, cpu_load5, cpu_load15, cpu_context_switches | %, count |
memory | memory_total, memory_available, memory_used, memory_usage_percent | bytes, % |
disk | disk_usage_percent, disk_total, disk_available, disk_reads_completed | %, bytes, count |
network | network_bytes_sent, network_bytes_received, network_errors_in | bytes, count |
system | system_time, system_boot_time, system_procs_running | Unix ms, count |
gpu | gpu_utilization | % |
disk requires a MountPoint parameter (e.g. / or C:\). network requires an Interface parameter (e.g. eth0).
Hardware Sensors (Advantech industrial PCs)
Requires the Advantech SUSI driver. Available on Advantech industrial computers by default.
| MetricType | What it reports |
|---|---|
hwinfo | Motherboard name, BIOS revision, driver version, EC revision |
temperature | All temperature sensors as a dictionary (key = sensor name e.g. CPU, value = °C) |
voltage | All voltage rails as a dictionary (key = rail name e.g. +3.3V, value = V) |
fanspeed | All fan speeds as a dictionary (key = fan name e.g. CPU_Fan, value = RPM) |
Hardware Functionality (Advantech industrial PCs)
| MetricType | What it reports |
|---|---|
gpio | GPIO pin states |
watchdog | Timer IDs, capability, and current configuration |
thermalprotection | Protection zones, source sensor, event type, and shutdown temperature |
If the SUSI driver is not installed, hardware-specific metrics are silently skipped — system resource metrics continue collecting normally.
SubNode devices expose different Data Objects based on their device definition. The metric types
above apply only to WEDA Node's built-in System Agent.
Call GET /api/v1/devices/{deviceId}/data-objects to discover the actual Data Objects a specific device exposes.
Scenario
A developer finds the analog input channels on a factory device and reads the latest AI_0 value:
Constraints
- Native Data Object definitions are read-only — managed by the auto-sync process
unitDisplayis reserved and alwaysnullin v1.1.0- Use the
dataObjectIdreturned by the current Data Object definition when querying values - Deleting a Transfer Function stops it from producing new values
Related
- Understand how Data Objects are produced: Data Engine Concepts
- Derive additional Data Objects: Transfer Functions
- Set threshold alerts on a Data Object: Alert Rules
- Enable or disable individual sensors: Device Management — Telemetry Config