Skip to content

Assets, tags and live values

Use this page to connect an Edge to your industrial devices, choose which tags it reads, and watch their live values in the portal.

Term Meaning
Asset One device or connection the Edge reads, for example a PLC. Each asset uses one protocol.
Tag One value read from an asset, for example a temperature register. The portal labels tags Metrics.

You define assets and tags in configuration: in a template shared by many Edges, or in one Edge's override on its Config tab. The Edge applies the configuration and its assets appear on the Assets tab.

Add an asset and its tags

You need the Owner or Admin role.

  1. Open Templates and open the template your Edges use, or create one.
  2. On the Assets tab, click Add asset.
  3. Fill in the asset:

    Field What to enter
    asset_id A unique id on the Edge: lowercase letters, digits and hyphens, 2 to 63 characters, for example filler-plc.
    Name The display name, up to 128 characters.
    Protocol opcua, s7, modbus-tcp, enip, sparkplug-b or simulator. A new asset starts as simulator.
    Connection fields The form shows the chosen protocol's fields, such as host, port, endpoint_url or rack. For a password, enter a secret reference (sec_…), never the password itself.
  4. Click Add metric for each tag and enter its name: lowercase letters, digits, _, . and -, up to 64 characters, unique within the asset.

  5. Open the JSON tab and complete each tag (see Tag fields). The form sets only the tag name, so the address, data type, unit and reporting are set here.
  6. Click Save version to save a draft, or Publish to save and make it available to Edges.
  7. Make sure the template is assigned to the Edge's group or to the Edge itself. See Edge configuration.

Check the Edge's Capabilities on its Overview tab first. If connector.<protocol> is missing, the Edge cannot read that protocol and refuses the change.

Tag fields

Field Required What it does
name Yes The tag name.
source Yes Where to read the value. Depends on the protocol, see below.
data_type For modbus-tcp, s7, enip bool, int8 to int64, uint8 to uint64, float32, float64, string, datetime, bytes, json. Modbus allows bool, int16, uint16, int32, uint32, int64, uint64, float32, float64, string.
unit No Shown next to the value, up to 32 characters, for example °C.
description No Up to 256 characters.
report No {"mode": "always"} sends every reading. {"mode": "on_change", "deadband": 0.5, "max_silence_ms": 60000} sends when the value changes by more than deadband, when quality changes, or after max_silence_ms without a send.
Protocol source fields Example
opcua node_id {"node_id": "ns=2;s=Filler.Temp"}
modbus-tcp table (coil, discrete_input, holding_register, input_register), address (zero-based: register 40001 is 0), optional bit, scale, offset, length (strings) {"table": "holding_register", "address": 0}
s7 address in S7 syntax {"address": "DB10.DBD4"}
enip tag {"tag": "Line1_Speed"}
sparkplug-b metric (the Sparkplug metric name) {"metric": "Motor/RPM"}
simulator kind (sine, counter, random, toggle, constant), min, max, period_ms {"kind": "sine", "min": 0, "max": 100}

How often the Edge polls is set per asset in collection, for example {"interval_ms": 1000} (at least 100 ms). OPC UA can also use {"mode": "subscription", "publishing_interval_ms": 1000}.

Example: one Modbus asset with two tags

Paste this into the template's JSON tab and adjust the address:

{
  "assets": {
    "schema": "wt.config.assets/v1",
    "assets": [
      {
        "asset_id": "filler-plc",
        "name": "Filler PLC",
        "protocol": "modbus-tcp",
        "connection": { "host": "192.0.2.20", "port": 502, "unit_id": 1 },
        "collection": { "interval_ms": 1000 },
        "metrics": [
          {
            "name": "tank_level",
            "source": { "table": "holding_register", "address": 0 },
            "data_type": "uint16",
            "unit": "%",
            "report": { "mode": "on_change", "deadband": 1, "max_silence_ms": 60000 }
          },
          {
            "name": "tank_temp",
            "source": { "table": "holding_register", "address": 2, "scale": 0.1 },
            "data_type": "int16",
            "unit": "°C"
          }
        ]
      }
    ]
  }
}

Edit or remove tags

Edit the tag in the same place you created it, then save and publish again:

  • Template: Assets tab for names and connection fields, JSON tab for everything else. Click Publish.
  • One Edge only: the Edge's Config tab, Overrides JSON. Click Save layer.

To stop reading an asset without deleting it, set "enabled": false. A publish that reaches many Edges can go out in stages on the Rollouts page. Check that Sync on the Edges page reaches In sync.

Monitor live values

Assets tab

On the Edge page, open Assets. Each row shows Name, Protocol, Health, Metrics (tag count) and Last seen. No assets reported. means the Edge has no applied asset configuration yet.

Health Meaning What to do
starting The connection is starting. Wait.
connected Connected and all tags read well. Nothing.
degraded Connected, but at least one tag reads badly. Check that tag's address and data type.
disconnected The device cannot be reached. The Edge keeps retrying. Check the device's IP address, port and network path from the Edge.
disabled The asset has "enabled": false. Enable it if you need it.

Asset page

Click an asset name. The page shows:

  • The protocol and endpoint under the title, and Back to assets.
  • Health: <state>, followed by the last error when there is one, and <n> metrics · last seen <time>.
  • One card per tag with its name, unit, latest value and a chart.

Values and charts refresh every 5 seconds; — means no reading yet. Each chart shows the last hour, averaged per time interval. There is no time-range selector. Only number tags draw a line; bool and string tags show their latest value. Watchtower keeps 30 days of history by default.

The portal shows no quality flag per value. Watch the asset's Health, and add a quality bad alarm rule to be told about bad reads. See Alarms and incidents.

Operators and above also see Restart connector, which reconnects this asset only (it does not fix a configuration error), and Rediscover (see below).

Discover tags

Discovery lists the tags a device offers, so you can add them without typing each name. It works for opcua, sparkplug-b, enip (ControlLogix and CompactLogix) and simulator. It does not work for modbus-tcp or s7; enter those addresses yourself. The asset must already exist with its connection.

  1. On the asset page, click Rediscover. The Edge browses up to 200 items; the result appears in the page's Discovery section, grouped by path, with each item's type and whether it is writable.
  2. On the Edge page, open the Discovery tab and select the tags you want. Each row shows the item name, the asset_id and the suggested tag name.
  3. Click Add as Edge override to add them to this Edge only, or pick a template in the drop-down (default Template from the device layer) and click Add as metrics on template. The template option saves a new unpublished version and needs the asset to exist in that template.
  4. Complete each new tag's source with the protocol address, for example node_id for OPC UA. Discovery stores only the browse path, which is not a valid address.
  5. Save and publish.