Units Guide
Introduction
What is a Unit?
A unit defines the measurement used to express the value of a property or telemetry field.
In Enapter Blueprints, the unit property determines how values are displayed in dashboards and the user interface and it must be UCUM-complied.
What is UCUM?
UCUM (Unified Code for Units of Measure) is a standardized system for representing measurement units in a precise, machine-readable, and unambiguous way. It covers a wide range of scientific, engineering, and industrial units and is designed specifically for use in software systems.
Why UCUM?
We chose UCUM because it solves two critical problems in unit handling:
- Automatic conversion — UCUM enables consistent conversion between units (e.g. from bar to Pa, or L/min to m³/h).
- Unambiguous representation — Unlike informal or inconsistent abbreviations, UCUM defines exactly what each unit means. For example:
This makes UCUM ideal for powering reliable, standardized data display and processing in Enapter systems.
Manifest Features
Autoscale
With autoscaling, you can define custom conversion rules for any property or telemetry attribute. For example, a device may send data in kilowatts. If the value is smaller or larger (e.g. 0.8 kW or 1000 kW), it is usually preferable to convert it to 800 W and 1 MW respectively for display in the UI.
telemetry:
power:
display_name: Power
type: float
unit: kW
ui:
auto_scale: [W, MW]
auto_scale#Defines preferred units for automatically converting and displaying values based on their magnitude.
Custom units
If the available UCUM units don’t fit your specific use case, you can define custom units. This allows you to display values using your own unit names or symbols, exactly how you want them to appear in the UI.
units:
apple:
display_name: Apple
symbol: apl.
type: custom
kg:
display_name: kilogram
symbol: kg
type: ucum
display_namerequired#A unit name which will be shown in the UI.
symbolrequired#A unit label which will be shown in the UI.
typerequired#Can have one of the following values:
custom- it won't be validated as a UCUM unit or autoscaled.ucum- it will be validated as a UCUM unit and can be autoscaled.
Allow ambiguous units
In the UCUM system:
Crepresents CoulombFrepresents Farad
While temperature units are:
Celfor Degrees Celsius[degF]for Fahrenheit
To prevent misinterpretation (e.g., mistakenly using C for Celsius), the system raises an error if C or F are used without clarification.
If you really want include Coulomb and Farad in your manifest:
- Use
coulomborfaradto avoid ambiguity - Set
allow_unit_corallow_unit_ftotrue
A valid example:
properties:
battery_charge:
display_name: Battery Charge
unit: C # Coulombs
type: float
allow_unit_c: true
capacitor_value:
display_name: Capacitance
unit: F # Farads
type: float
allow_unit_f: true
telemetry:
total_charge:
display_name: Total Charge
unit: coulomb # Using full name, no flag needed
type: float
capacitor_rating:
display_name: Capacitor Rating
unit: farad # Using full name, no flag needed
type: float
allow_unit_c#Allows to use
Cas Coulomb unit label.
allow_unit_f#Allows to use
Fas Farad unit label.