Skip to main content
Version: 3.0

Find signals

Every signal that measures one thing, wherever it is and whatever its device calls it, in one unit: one table on screen, a CSV file, or one API call.

Where
Explore › Find signals
API
POST /api/v1/uns/data/by-meaning
Needs
topic:read, and the libraries you read
Licence
Semantic layer (Foundation, Enterprise)

A signal found here is one that has been given a meaning: a name and a unit from a library, given by hand (Giving a topic a meaning) or with Start from your data. Ask for Vibration velocity and you get every pump's vibration, whether its device calls it vib, VIB_RMS or vibration, and whether it sends mm/s or in/s: every value is in the meaning's unit.

The page​

Open Explore › Find signals and pick three things.

PickWhat it does
What it measuresOne entry per measurement you can read. Versions of one property are one entry, so a plant half moved to a newer library version is still one answer.
WhereEverywhere, or one folder of the topic tree: open a folder with its arrow and pick it by its name.
WhenNow (the latest value of each signal), or Last 24 hours, Last 7 days (by the hour) or Last 30 days (by the day).
ShowFor a window: the Average, the Lowest or the Highest of each signal over it.

The table has one row per signal: its machine and area (from the topic tree's folders), the signal (the topic's last name, and the field for a topic that sends several), its value in the meaning's unit, when it was sent, and notes only when something is unusual (a value kept as sent because it could not be converted, older values that may be in another unit, a bad or uncertain quality, or a signal given a meaning of its own made from this one). Over a window, each row also draws its line, on one scale for the whole page so rows compare.

Rows come 200 to a page, sorted by machine; Next and Previous walk the pages.

  • Nothing here measures it yet when no signal in that place has this meaning: the page links to Start from your data.
  • Showing 100 rows a page for this window when a long window by the hour would make a page too large: the page holds fewer rows, and the rest are on the next pages.
  • The meanings changed while you were reading when signals were given or lost meanings between two pages: Load again starts from the first page.
  • This is not a measurement you can see when the measurement comes from a library you cannot read.

What is left out, and why​

You see only the signals you may read. When you pick a folder you can read, and some signals under it are hidden from you, the page says how many: "3 signals here you cannot read are left out." Anywhere else the count is not given, so the page never tells what lies in a branch you cannot see. When your access list is too long to read in full, the page says some signals may be missing.

On a frozen instance (a licence that has ended) the page keeps answering, and says so: names and units already given keep working.

Export CSV​

Export CSV reads every page of the answer, 1,000 rows a call, says how far it is ("Exported 1,200 rows so far…") and saves one file. Now gives one line per signal:

machine,area,path,attribute_path,property,value,unit,at,quality,trust

A window gives one line per signal and bucket:

machine,area,path,attribute_path,property,bucket_from,value,unit,count,trust

If a page fails, the export stops and says why, with Try again.

The API call​

Copy as API call copies the request the page sends, as a curl command. Your token is never in it: set MAESTROHUB_TOKEN to an API key or a token of your own first.

curl -X POST 'https://hub.example.com/api/v1/uns/data/by-meaning' \
-H "Authorization: Bearer $MAESTROHUB_TOKEN" \
-H 'X-Workspace-ID: <your workspace id>' \
-H 'Content-Type: application/json' \
-d '{
"meaning": { "namespace": "maestro:common", "key": "vibration_velocity" },
"area": { "topicId": "<folder topic id>" },
"window": { "from": "2026-10-27T00:00:00Z", "to": "2026-11-03T00:00:00Z", "bucket": "1h", "measure": "mean" },
"limit": 200
}'
FieldMeaning
meaning{"namespace", "key"}, every version of the property, or {"propertyId"} for one.
includeOwnMeaningsMeanings of your own made from this one count too (true by default): a query for Pressure also finds the pumps given "Pump discharge pressure". Each row names its property.
areaA folder's topic id: only signals under it.
machinesUp to 500 machine folder topic ids.
atThe latest value at or before this time. Leave out at and window for now.
windowfrom, to, bucket (a duration such as 1h or 24h) and measure (mean, min, max, sum or count).
limitRows a page, 1 to 1,000 (200 by default).
cursorThe next of the previous page.

The answer, one page:

{
"meaning": { "propertyId": "…", "namespace": "maestro:common", "key": "vibration_velocity", "displayName": "Vibration velocity", "unit": "mm/s" },
"rows": [
{
"topicId": "…", "path": "mHv1.0/trabzon/filling-hall/line-2/p101/vibration", "attributePath": "",
"machine": { "key": "…/line-2/p101", "topicId": null, "label": "P101" },
"area": { "key": "…/filling-hall/line-2", "topicId": "…", "label": "Filling Hall · Line 2" },
"propertyId": "…", "propertyName": "Vibration velocity",
"value": 4.6, "at": "2026-11-03T14:00:00Z", "quality": "good", "trust": "translated"
}
],
"limit": 200,
"coverage": { "hidden": 3, "unrecorded": 1, "truncated": false },
"indexVersion": 1841,
"next": "…"
}
  • A window's rows carry buckets, each {from, value, count, trust}, instead of value and at. Each bucket is converted from the unit its own stretch was sent in, so a signal moved to another library version mid-window still reads in one unit. A bucket that cannot be converted carries "foreign": true and its own unit (none for history kept as sent), and the answer says "mixed": true; the table leaves it out of the row's number and line, and the CSV gives it its own unit.
  • machine.topicId and area.topicId are null when the folder has no topic of its own.
  • limit is the one used: smaller than asked when buckets times rows would pass 50,000.
  • coverage.hidden is given only for an area you can read and no machines.
  • 409 INDEX_BEHIND: the meanings changed under the cursor; start again from the first page.
  • 404: no library you read holds this meaning.
  • 403 FEATURE_DISABLED: the semantic layer is not in this licence.

Maestro answers the same question with its read-only tool find_signals_by_meaning, with your own access.