Skip to content
Elausys

HyperVisu / Device Configuration

Value Transformations & Health

Convert units, invert, scale and clamp values — and fix what the Health page reports.

elausys · 20 July 2026
On this page

Real devices rarely speak exactly the value the app wants: a meter sends tenths of a kilowatt, a status byte packs eight flags, a relay uses inverted logic. Transformations convert between the protocol value and the displayed value, per object. The Health page then keeps watch over every binding and transformation in the installation.

Transformations

Each communication object can carry an ordered transformation chain. Expand the device and, on the object's row, click the round icon under TRANSFORMS (Transformations) — the gear next to it opens the object settings, not the chain. Then click Add Transformation and pick a type:

TypeWhat it does
Scale & OffsetLinear conversion: (value × scale) + offset. Unit conversions, meter scaling.
Invert BooleanSwaps true and false — for protocols where 0 means ON.
Bit ExtractExtracts a range of bits from an integer (start bit, number of bits, optionally signed).
Bit CheckTests one bit of an integer and returns a boolean (optionally inverted).
Value MapReplaces listed input values with other values, one Input → Output pair per line. The values can be numbers or text, and the result can be a boolean, so it covers a mode number renumbered for another device as well as a text state such as open / closed turned into on/off. An optional Default Value is used when no line matches (otherwise the original value passes through); Strict mode reports an error instead.
ClampLimits values to a range (or to the object's own min/max).
ThresholdTurns a number into a boolean (>, >=, <, <=, ==, != against a threshold, with optional hysteresis).
RoundRounds to a precision (round, floor, ceiling, truncate).

Each transformation has a direction:

  • Incoming — protocol → widget (what the app displays).
  • Outgoing — widget → protocol (what a command sends).
  • Both — applied in both directions where the operation is reversible.

Only the directions a transformation supports can be selected: Round, for example, is incoming only. On an object that only receives or only sends values, the direction follows the object and cannot be changed. On a read-and-write object a new step starts on Both.

Chains run from top to bottom; drag to reorder. Each step has its own Preview in its dialog: type a value in Input and read Output. The preview tests that one step, not the whole chain. To check the chain, save it, apply the changes and compare a real reading.

Click Save Changes to save the chain, then Apply changes in the sidebar and confirm (see “Admin Panel Tour”).

📘 Note: Check first whether the protocol binding already scales the value — a Modbus object has its own Scale and Offset (see “Modbus TCP Integration”). Apply each conversion once.

The transformation editor for a Modbus power object.

Validation. The editor validates the whole chain against the object and the protocol types:

  • Blocking issues (e.g. scale of zero, incompatible chain output for the object type) must be fixed first: Save Changes stays disabled while one remains.
  • Warnings (e.g. a coerced or possibly lossy conversion) let you save but keep the object flagged on the Health page. A "Duplicate order 0" warning on steps you have just added disappears once the chain is saved.

When you need a transformation

The Devices workspace tells you when a transformation is required: the DPT-mismatch dialog when binding KNX (see “KNX Integration”), and the data-type warning in the object settings (see “Object Settings, Logging & Notifications”). Until the converting transformation is in place, the object appears on the Health page.

The Health page

On the Devices page, click the round icon button in the header (its tooltip reads Health). The page lists every object with a problem:

  • an incompatible protocol ↔ widget link (a binding whose types don't fit);
  • a transformation configuration issue;
  • a recent runtime error (a value that failed to convert at runtime).

Each row is one object. It names the device, the object, its type and datatype, and gives counts only: the number of config issues and the number of runtime errors. A red cross marks an error, an amber triangle a warning. The messages themselves are not on the row. From a row you can:

  • Click the row to open the Problems dialog. It gives the message of each configuration issue and, under Runtime (recent), the recorded conversion errors with their values.
  • Click the arrow at the end of the row (Open in Devices) — it jumps straight to the device to fix the binding or the chain.

Clear runtime errors is in two places. In the Problems dialog it clears the recorded runtime errors of that object only. In the page header it clears those of every object; the button is shown only while runtime errors exist. Clearing does not fix a cause: it gives you a clean slate to verify a fix against fresh values. Saving a corrected transformation chain already clears that object's runtime errors.

After a correction, click Apply changes in the sidebar and confirm, then click Refresh on the Health page. A fixed configuration issue leaves the list by itself.

When everything is fine the page reports No problems found — All widget objects are healthy.

📘 Note: Health checks bindings, transformations and recorded conversion errors. It does not report an unreachable device or a lost connection: check those on the Connections page (see “Connections”) and with a physical test. Runtime errors are kept in memory, the last ten per object, so a server restart empties them; a remaining cause shows again with the next failing value.

💡 Tip: After commissioning, open the Health page once with the installation live for a few hours: it catches the mismatches that only show up when real values start flowing.

The Health page with no problem to report.

Frequently Asked Questions

How do I scale a device reading?

Add a Scale & Offset transformation to the communication object. It applies (value × scale) + offset.

Does transformation order matter?

Yes. Chains run in order. Drag transformations to reorder them. Each step's Preview tests that step only, so check the whole chain against a real reading.

What is the difference between incoming and outgoing transformations?

Incoming converts protocol values for display. Outgoing converts widget commands for the protocol. Both applies in each direction where the operation is reversible.

Why can’t I save a transformation chain?

Blocking issues, such as a zero scale or incompatible output type, must be fixed first. Warnings allow saving but leave the object flagged in Health.

Does clearing runtime errors fix the cause?

No. Fix the binding or transformation first, then clear recorded errors to check whether new ones occur.

Keep exploring

Find the other guides for this product in the documentation.

Back to Device Configuration