Wirepas protocol

Wirepas protocol connects Wirepas mesh network gateways to flespi over MQTT using the standard protobuf-encoded gateway-to-backend API published by Wirepas.
flespi parses the Wirepas protocol messages into a JSON object with the fields listed below in the Parameters tab.

Wirepas Gateway Protobuf MQTT Protocol. Wirepas protocol connects Wirepas mesh network gateways to flespi over MQTT using the standard protobuf-encoded gateway-to-backend API published by Wirepas. Any vendor's gateway implementing this API can stream mesh data to flespi without vendor lock-in. flespi decodes received packet events and Wirepas positioning application payloads, registering separate messages  mesh tags and anchors with RSSI measurement arrays for indoor positioning, battery voltage, and mesh diagnostics such as hop count and travel time.

Messages are registered per mesh node, not per gateway: each node's message uses its Wirepas network address as the ident and carries the relaying gateway's identifier in the gateway.id parameter, while every anchor that saw the node additionally receives its own message with the observed asset and RSSI in the tags array. Nodes are automatically classified as tags or anchors by the type of RSSI measurement they report, and message timestamps come from the event generation time reported by the gateway.

anchors
array
Array of visible mesh anchors with RSSI
battery.voltage
number
volts
Internal battery voltage
channel.id
number
ID of channel that received a message
device.id
number
ID of device that received a message
device.model
string
Device model ID string
device.name
string
Name of device that received a message
device.type.id
number
ID of device type of device that received a message
firmware.version
string
Firmware version
gateway.id
string
Identifier of the gateway that relayed the message from the device
hardware.type
string
Hardware type
ident
string
Device unique identifier like serial number, IMEI, etc
message.seqnum
number
Sequence number of the message
movement.status
boolean
Current movement state
node.class
string
Wirepas mesh node class, the configuration records a node applies are the ones addressed to its class
node.mode
string
Wirepas mesh node operating mode, the positioning role the node runs in
payload.hex
string
HEX Payload received from device
peer
string
IP:port from which device connecting to the channel
pitch.angle
number
degrees
Pitch angle relative to horizontal plane
protocol.id
number
ID of protocol
protocol.version
string
Protocol version string
report.interval.time
number
Report interval time
roll.angle
number
degrees
Roll angle relative to horizontal plane
sensor.humidity
number
percentage
Humidity sensor value, i.e. relative air humidity level
sensor.magnet.status
boolean
Magnetic field detected by sensor
sensor.temperature
number
celsius
Temperature sensor value
server.timestamp
number
seconds
Timestamp when server received a message
signal.hop.count
number
Number of mesh network hops traversed by the message
signal.travel.time
number
seconds
Message transit duration through the mesh network
sink.id
string
Identifier of the gateway sink that relayed the message from the device
software.version
string
Software version string
tags
array
Array of visible mesh tags with RSSI
timestamp
number
seconds
Message timestamp
x.acceleration
number
g
Accelerometer value X
y.acceleration
number
g
Accelerometer value Y
z.acceleration
number
g
Accelerometer value Z
Properties
Send custom command to gateway as MQTT publish packet to specified topic
custom
Publish an arbitrary payload. Standard gw-request topics wait for the gateway response; other topics complete on PUBACK. For get_configs use gw-request/get_configs/ with HEX 0A0612040A020801 and request_id=1
Set the reporting period of a positioning tag
set_tag_report_interval
Replaces the sink application configuration with flespi-managed tag records; configuration written by other tools is discarded. Preserves other managed tags on this sink. Sleeping tags apply updates when they next receive them. Apply the same configuration to all relevant sinks and avoid frequent writes (more than once per 30 minutes)
tag: Tag address
period: Reporting period
sink_id: Sink id
Set the reporting periods of a positioning tag separately
set_tag_report_intervals
Replaces the sink application configuration with flespi-managed tag records; configuration written by other tools is discarded. Omitted periods keep the running tag's current values, not guaranteed after reboot. Sleeping tags apply updates when they next receive them. Apply the same configuration to all relevant sinks and avoid frequent writes (more than once per 30 minutes)
tag: Tag address
static: Static period
dynamic: Dynamic period
offline: Offline period
sink_id: Sink id