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.
ain
number
volts
Voltage on the analog input
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
din
number
Digital inputs bitmask
din.count
number
Digital input event counter reported by the device
dout
number
Digital outputs bitmask
dout.count
number
Digital output event counter reported by the device
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.count
number
Movement event counter reported by the device
movement.detection.status
boolean
Motion detection is enabled on the device, when disabled the device reports no movement state of its own
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.count
number
Magnetic field detection counter reported by the sensor
sensor.magnet.status
boolean
Magnetic field detected by sensor
sensor.presence.count
number
Presence detection counter reported by the sensor
sensor.presence.status
boolean
Presence detected by the 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
Read the otap state of a sink
otap_status
Asks the sink which scratchpad it holds, which one it has processed and what it tells the nodes to do with it. The same state arrives unasked in every gateway status event
Set what the nodes do with the scratchpad of the sink
otap_set_target
Changes the action the sink propagates without uploading a scratchpad again: start a rollout the upload left alone, move it to a delayed one, or stop it with no otap
crc: Target CRC
seq: Target sequence number
delay: Processing delay
action: Action
sink_id: Sink id
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 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
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
Upgrade the firmware of the mesh nodes
otap_upgrade_nodes
Uploads an otap scratchpad to the sink and tells the nodes to take it into use. The sink copies it to its neighbours and they to theirs, so the rollout lasts as long as the mesh needs and the command result only reports that the sink accepted it. Follow the rollout with otap_status. Every node of the network receives the same scratchpad, the images inside it decide which of them can apply it
seq: Sequence number
delay: Processing delay
action: Rollout action
sink_id: Sink id
file_uuid: CDN File UUID