Skip to main content
Version: 3.0 (next)

From raw tags to one alarm for all your pumps (10 minutes)

Three pumps on two lines report pressure in psi and bar. Ten minutes from now they read in kPa on one chart, one alarm limit covers all three, and a stuck sensor is flagged.

Time
About 10 minutes
You need
Data arriving through a connection and a pipeline
You get
One unit, one alarm, stuck sensors flagged
Licence
Semantic layer (Foundation, Enterprise, trial)

Your devices already send numbers. What they do not send is what the numbers are: one pump says 4.2, another says 62, and only the person who wired them knows that the first is bar and the second psi. Giving those topics a meaning writes that knowledge down once. From then on MaestroHub converts, compares, alarms and checks the values for you, whatever each tag is called.

This tutorial does it on a small example you can copy. The pages that explain each part in depth are Libraries and Giving a topic a meaning.

What you'll get​

Three pumps send their discharge pressure:

  • line1/pump1/discharge_pressure_bar sends bar, around 4.3.
  • line1/pump2/discharge_pressure_psi sends psi, around 63.
  • line2/pump3/discharge_pressure sends psi too, but nothing says so.

Side by side, 4.3 and 63 cannot be compared, and an alarm "above 450" means nothing to either. After this tutorial:

3 topics now read as Pump discharge pressure, in kPa. A chart of the last hour shows the pump that sends bar and the pump that sends psi on one kPa scale, with One alarm for all 3 and Add the alarm below.3 topics now read as Pump discharge pressure, in kPa. A chart of the last hour shows the pump that sends bar and the pump that sends psi on one kPa scale, with One alarm for all 3 and Add the alarm below.

The result: the bar pump and the psi pump on one kPa scale, and one alarm for all three, one click away.

  • One unit. All three read in kPa, on one chart, in alarms and in exports.
  • One alarm. One warning line and one high line cover every pump, and any pump you give the same meaning later.
  • A stuck sensor is flagged. A reading that stops moving is marked frozen, and the topic says so in plain words.

Nothing changes on your devices, and history already stored stays as it was.

Before you start​

Data arriving. The pumps' values must already reach the Unified Namespace. In this example a REST connection reads the pump skids' gateway, and a pipeline publishes each pump's pressure every 5 seconds: a Schedule Trigger, a REST Request that runs the connection's function, and one UNS Publish per pump. Any connection and pipeline that publish your values will do. New to pipelines? Build your first pipeline first.

The Pump pressures pipeline: Every 5 seconds, then Read pump pressures on the Pump skid gateway connection, then Publish pump1, Publish pump2 and Publish pump3The Pump pressures pipeline: Every 5 seconds, then Read pump pressures on the Pump skid gateway connection, then Publish pump1, Publish pump2 and Publish pump3

The example's pipeline: a schedule, one read from the connection, and a publish per pump.

Give it a few minutes, or better an hour, before Step 3: the alarm preview reads the topics' history.

A licence with the semantic layer. It is in Foundation and Enterprise, and in the free trial, which gives up to 100 topics a meaning (Your licence). This tutorial uses three.

Permission. Anyone in the workspace can read libraries and meanings. Giving topics a meaning takes a Data Admin or a Workspace Admin, or someone who looks after that part of the topic tree (Who can do what).

Step 1: Start from your data​

Open Explore › Libraries. A workspace that has no meanings yet opens on Start from your data; later, the same button sits in the page header.

MaestroHub reads each topic once: its name, any unit it reports, and its recent values. Nothing is changed. Then it groups the topics by what they most likely measure.

Start from your data: 3 of your 3 topics look like measurements we know. The Pressure group holds 3 topics, bar (1) and psi (1), 1 needs you, with 4.126 bar becoming 412.6 kPa, how we know it, and Review 3.Start from your data: 3 of your 3 topics look like measurements we know. The Pressure group holds 3 topics, bar (1) and psi (1), 1 needs you, with 4.126 bar becoming 412.6 kPa, how we know it, and Review 3.

One group, Pressure, with a real value converted and how MaestroHub knows. The amber mark says one topic needs your answer.

Read the group card from left to right:

  1. What it is and how many. "Pressure · 3 topics · bar (1) and psi (1)": one topic says bar, one says psi, and one says nothing.
  2. One real value, converted. "4.126 bar → 412.6 kPa", so you can check the conversion yourself.
  3. How we know. "the name says pressure; the name says bar". The reasons are always written out: the name, an instrument tag like PT_301, a unit on record, or a neighbour that already has a meaning. Nothing is guessed out of sight.
  4. 1 needs you. One topic reports no unit, so you will be asked.

Click Review 3.

Answer the unit question​

pump3 sends values around 62 with no unit. That fits psi (about 430 kPa) and also kPa as sent. MaestroHub will not pick for you:

Give 3 topics the meaning Pressure. The question Which unit does pump3's pressure transmitter report? offers psi, marked more likely, reading 425 to 433 kPa, and kPa as sent. Below, one row per topic with what it sends now, the unit it is read in and how that is known.Give 3 topics the meaning Pressure. The question Which unit does pump3's pressure transmitter report? offers psi, marked more likely, reading 425 to 433 kPa, and kPa as sent. Below, one row per topic with what it sends now, the unit it is read in and how that is known.

The question shows what the values would read as in each unit and whether that is plausible. You pick; nothing is applied until you do.

  1. Pick psi, the unit you know the transmitter sends. The page marks the option it finds more likely, but it never picks for you.
  2. Check the rows. Each says what the topic sends now, the unit it is read in and why. Untick anything that is not a pump's discharge pressure.

Not sure about one topic? Leave it unticked: Apply the 2 now gives the others their meaning and leaves it for later.

Give them a meaning of their own​

Under When you apply, the meaning is Pressure (built-in). That works, but the built-in Pressure also covers boilers, compressors and headers, and a pump's alarm line should not reach them. Choose A meaning of their own… instead.

Give 3 topics a meaning of their own: Name Pump discharge pressure, saved in Default Workspace meanings, a new library, and three ticked boxes that suggest it first for new topics like theseGive 3 topics a meaning of their own: Name Pump discharge pressure, saved in Default Workspace meanings, a new library, and three ticked boxes that suggest it first for new topics like these

The name is proposed for you. Your own library is created on the way, and new pumps like these will be offered this meaning first.

  1. Keep the proposed name, Pump discharge pressure, or type your own.
  2. It is saved in your workspace's own library ("Default Workspace meanings, a new library"). Change picks another.
  3. Leave the Suggest Pump discharge pressure first for new topics like these boxes ticked: a pump4 added next month is offered this meaning first. Someone still applies it; nothing is given for you.
  4. Click Give them this meaning.

All three topics get their meaning in one change: all of them or none. If any pipeline, dashboard or app reads these topics, the page names them and asks you to confirm you have checked them first, because they will read kPa from now on.

Step 2: See the units become one​

The page now shows what you got.

3 topics now read as Pump discharge pressure, in kPa. 2 reported psi and 1 reported bar. Two topics, one scale: the bar pump and the psi pump over the last hour in kPa.3 topics now read as Pump discharge pressure, in kPa. 2 reported psi and 1 reported bar. Two topics, one scale: the bar pump and the psi pump over the last hour in kPa.

Two pumps that reported different units, on one kPa scale. Their older values are shown converted too.

"3 topics now read as Pump discharge pressure, in kPa. 2 reported psi and 1 reported bar." The chart puts the bar pump and the psi pump on one scale for the last hour: you can now see at a glance which pump runs higher.

Open any of the pumps in Explore › Data Explorer. The topic page says what it means, its unit and the unit the device sends, and the live value is in kPa:

pump3's discharge_pressure topic page: Means Pump discharge pressure in kPa, the device sends psi, with Change meaning and Remove, and the last value 417.822 kPapump3's discharge_pressure topic page: Means Pump discharge pressure in kPa, the device sends psi, with Change meaning and Remove, and the last value 417.822 kPa

pump3 sends psi; everyone reading it sees kPa.

MQTT readers, dashboards and exports get kPa too. The device keeps sending psi; nothing on the device or in stored history changes.

Step 3: One alarm for all​

Back on the result page, under One alarm for all 3, click Add the alarm.

Alarm for Pump discharge pressure: Applies to these 3 and every topic given Pump discharge pressure later. Warn above 450 kPa, High above 480 kPa, only after 30 s above the line. If it had been on for the last 24 hours: 7 warnings on 2 topics, named by path, and 0 high alarms.Alarm for Pump discharge pressure: Applies to these 3 and every topic given Pump discharge pressure later. Warn above 450 kPa, High above 480 kPa, only after 30 s above the line. If it had been on for the last 24 hours: 7 warnings on 2 topics, named by path, and 0 high alarms.

Before anything is saved, the preview says what these lines would have raised over the last day, and on which pumps.

  1. Warn above (kPa): type 450.
  2. High above (kPa): type 480.
  3. Only after: keep 30 s above the line, so a short blip does not raise anything.
  4. Read the preview, If it had been on for the last 24 hours. Here: 7 warnings on two pumps, no high alarms. Too noisy? Change a line and the preview follows.
  5. Click Save the alarm.

The limits are typed in kPa once, and they hold for the psi pumps and the bar pump alike. They belong to the meaning, so they apply to these three pumps and to every topic given Pump discharge pressure later. On the property they show as the warning and critical limits; Change the alarm opens them again.

When a pump crosses a line for longer than 30 seconds, it shows on Explore › Alerts:

Alerts, Active alerts 2: line1/pump1 discharge pressure at warning, 458 kPa, and line1/pump2 discharge pressure at critical, 487 kPa, both Pump discharge pressureAlerts, Active alerts 2: line1/pump1 discharge pressure at warning, 458 kPa, and line1/pump2 discharge pressure at critical, 487 kPa, both Pump discharge pressure

pump1 sends bar and pump2 sends psi; both are judged against the same lines, in kPa.

Alerts covers acknowledging, shelving and sending alerts to other systems.

Step 4: Catch a stuck sensor​

A transmitter that freezes keeps sending its last value. It looks healthy: values arrive on time, inside the limits. Tell the meaning how its values should behave, and MaestroHub notices.

  1. In Explore › Libraries, open Default Workspace meanings, then Pump discharge pressure.
  2. On Alarm and sampling, under Sampling, fill in:
    • Expected period (ms): 5000, how often a value should arrive.
    • Staleness threshold (ms): 30000, how old a value may be when it arrives.
    • Frozen after (ms): 60000, how long a pump's pressure may stay exactly the same. It must be at least one minute and ten expected periods.
  3. Click Save alarm and sampling.
Sampling hints of Pump discharge pressure: Kind Sampled, Expected period 5000 ms, Staleness threshold 30000 ms, Frozen after 60000 msSampling hints of Pump discharge pressure: Kind Sampled, Expected period 5000 ms, Staleness threshold 30000 ms, Frozen after 60000 ms

Set once on the meaning, these apply to every pump that has it.

When pump3's sensor sticks, its topic says so:

pump3's topic page: Arriving every 5.0 s, but the value has not changed for 2 min. Normally it changes every 6.0 s; a reading that keeps repeating usually means a stuck sensor. 96.9% of 386 samples in the last hour are good; 12 uncertain.pump3's topic page: Arriving every 5.0 s, but the value has not changed for 2 min. Normally it changes every 6.0 s; a reading that keeps repeating usually means a stuck sensor. 96.9% of 386 samples in the last hour are good; 12 uncertain.

Values still arrive on time, so nothing looks wrong at first glance. The meaning knows a pump's pressure keeps moving.

  • Frozen. Values unchanged for longer than Frozen after are stored as Uncertain · frozen, the topic page explains it in plain words, and Data Explorer's header counts it ("1 value is frozen"). The first value that moves again is good again.
  • No data. When a topic with a meaning sends nothing for longer than the expected period, it is reported as Not receiving data: nothing sent. It clears by itself when data arrives (When a meaning gets no data).

Neither one rewrites or refuses a value. Leave Frozen after empty on meanings whose values may legitimately hold still, such as a setpoint.

Step 5 (optional): Strict mode​

By default a value that breaks its meaning's rules is stored and recorded as a violation, and the writer is told. To stop such values at the door instead:

  1. In Explore › Data Explorer, right click the branch, here plant, and choose Validation rule….
  2. Choose Enforce: "A record that breaks its rules is rejected with the reason."
  3. Optionally tick Lock it, so no topic below can be less strict.
  4. Click Save.
Validation rule on mHv1.0/default-workspace/plant: Inherit, Observe, Warn and Enforce, with Enforce chosen, Lock it unticked, and In effect now: WarnValidation rule on mHv1.0/default-workspace/plant: Inherit, Observe, Warn and Enforce, with Enforce chosen, Lock it unticked, and In effect now: Warn

Enforce on the plant branch: every topic below it rejects a record that breaks its meaning's rules.

The writer is told why its record was rejected. Start with Warn on a new branch, look at Explore › Alerts › Violations for a while, then switch to Enforce once only real faults show up. The modes are explained in Validation rules on the topic tree.

What else meanings give you​

You just used most of it. In one list:

  • One alarm for similar equipment. Set the lines once on the meaning; every topic with it, today's and next month's, is watched the same way (one alarm for all, Alerts).
  • Same units everywhere. Every value arrives in the meaning's unit, in charts, alarms, MQTT and exports, whatever the device sends (What changes when you save).
  • Catch bad sensors. Frozen, silent and out of range values are flagged on every topic with the meaning (Alarm and sampling, When a meaning gets no data).
  • Clean data downstream. Values that break the rules are marked, or refused with Enforce, before they reach pipelines, dashboards and apps (Validation rules on the topic tree).
  • Find data by what it is. Open a property in Libraries: its Topics tab lists every topic you can see that holds it, whatever each tag is called (Libraries).

Next​

  • Your own library. Pump discharge pressure lives in your workspace's own library, as a draft. Add properties for the rest of your equipment, or import a library file (Libraries).
  • Publish a version. Publishing fixes the library's definitions for good, so every value stored under them keeps one meaning; alarms and sampling stay editable (Publishing a version).
  • One topic at a time. On any topic page, Give this topic a meaning does the same for a single topic, with suggestions (Giving a topic a meaning).

Who can do what​

  • Everyone in the workspace reads libraries and the meanings of the topics they can read.
  • Giving topics a meaning takes a Data Admin or a Workspace Admin, or someone who looks after that part of the topic tree. Someone who may give meanings but not approve them sends them for approval instead.
  • Changing a library (properties, alarms, sampling) takes a Data Admin, a Workspace Admin or the library's owner.
  • Validation rules take the policy permission or looking after that branch; locking one takes a Data Admin or a Workspace Admin.

A control you may not use is shown disabled and says what it needs. The full tables are in Libraries and Giving a topic a meaning.