Skip to content

TRU + Netris3

TRU_Netris3

Description of the device

The model TRU miniature resistance thermometer in combination with the model NETRIS®3 radio unit is used wherever web-based remote monitoring of the process pressure is desired. Condition-based and preventive maintenance through centralised big data analysis is thus possible. Resistance thermometers in this series can be installed directly into the process or combined with a large number of thermowell designs. Surface temperature measurements, e.g. on a tubeskin, can be performed using a tightening strap.The instruments are intrinsically safe and suitable for use in hazardous areas. All electrical components are protected against powerful water jet (IP66) and the effects of temporary immersion in water (IP67) and designed to withstand vibration (10 g amplitude / 20 g peak-to-peak, depending on instrument version). The resistance thermometer has an integrated transmitter that sends and receives data via a digital interface. The electrical connection is made via an M12 x 1 circular connector. The resistance thermometer model TRU is part of the WIKA IIoT solution. With this, WIKA offers a holistic solution for your digitalisation strategy


For more information see product site.

TRU + Netris3 Parser Quick Start

Parser API

All functions are pure (no global mutation) except adjustMeasuringRange which updates internal range configuration for subsequent decodes.

Types:

Input types:

ts
interface UplinkInput {
  fPort: number // LoRaWAN FPort
  bytes: number[] // Raw payload as array of unsigned bytes (0-255)
  recvTime?: string // Optional ISO timestamp (if your LNS provides it)
}

interface HexUplinkInput {
  fPort: number // LoRaWAN FPort
  bytes: string // Raw payload as hex-encoded string (case-insensitive, even length)
  recvTime?: string // Optional ISO timestamp (if your LNS provides it)
}

Return type (shared by all decode helpers):

ts
type Result = {
  data: Record<string, any> // Parsed key/value pairs
  warnings?: string[] // Non-fatal anomalies
} | {
  errors: string[] // Fatal or structural issues only
}

To understand the data field, take a look at the examples and the schema definition.

Supported channels to identify different sensors by:

ts
// Is used in the returned data
type ChannelName = 'temperature'

Channels that support adjusting the measurement range:

ts
type AdjustableChannelName = 'temperature'

Channel Configuration

Channel NameMin ValueMax ValueUnitConfigurable
temperature0600°C / °F
ts
function decodeUplink(input: UplinkInput): Result
ts
function decodeHexUplink(input: HexUplinkInput): Result

bytes must have even length; case-insensitive.

adjustMeasuringRange(channel, range)

ts
// Will throw on invalid channel name or if the channel disallows range updates
function adjustMeasuringRange(
  channelName: AdjustableChannelName,
  range: {
    start: number
    end: number
  }
): void

Applies to future decodes only.

adjustRoundingDecimals(decimals)

ts
// Smartly adjust number of decimals for rounded values
// Impacts all numeric values in all outputs
// Default is 4
function adjustRoundingDecimals(decimals: number): void

Applies to future decodes only.

Verifying Ranges

The temperature channel on the TRU is configurable. You must verify the actual measurement range from your device specifications or identification frames. The parser default shown in the table above may not match your device configuration.

Using Identification Frames

This device supports both TULIP2 and TULIP3 protocols. Each sends identification frames containing channel configuration:

TULIP3 (Message Type 20):

json
{
  "data": {
    "messageType": 20,
    "channelId": 0,
    "channelName": "temperature",
    "measurementRangeStart": 0,
    "measurementRangeEnd": 600
  }
}

TULIP2 (Message Type 6):

json
{
  "data": {
    "messageType": 6,
    "channelId": 0,
    "channelName": "temperature",
    "measurementRangeStart": 0,
    "measurementRangeEnd": 600
  }
}

Use measurementRangeStart and measurementRangeEnd to configure the parser before decoding data messages.

Quick Start

  1. Check your device's actual measurement range from purchase configuration, device specifications, or identification frames (see above)
  2. Add configuration code below at the bottom of your parser file
  3. Add wrapper function if your network server is non-compliant: function decode(input) { return decodeUplink(input) }

Configuration code (add at bottom of parser file):

ts
// Replace values with your device's actual measurement range from specifications or identification frames
adjustMeasuringRange('temperature', { start: 0, end: 600 })

NPM Module Inclusion

DeviceIncludedFactory function
TRU+NETRIS3