Bhairava Sense: how protocols are identified

How Sense recognises what it hears, what every message becomes, and which kinds of equipment it covers.

Where things stand. Only BACnet/IP is supported in Bhairava Sense today. The other protocols on this page are coming soon.

How identification works

1. CaptureSense takes in what the equipment sends, whatever the link: network, serial line, CAN bus or Bluetooth LE.
2. IdentifyEvery known protocol tests the bytes against its own structure. The most certain match wins. Port numbers are never looked at.
3. ReadThe matching protocol reads the message into the common form, so everything after this step is the same for every protocol.

What every message becomes

ItemMeaning
KindReading, event, presence, request, or other. Traffic that was recognised but not read, could not be read, or is unknown is kept as such.
ProtocolWhich protocol it was, and the reason it was identified in words.
DeviceA stable, readable name for the device that sent it, what the device says about itself, and where it was heard.
PointA stable, readable name for the point on that device, such as a register, an input or a group address.
ValueThe value with its unit or state word, and the previous value of the same point.
StateNormal, in alarm, fault, and so on, with quality flags as words. Only events that need attention at once are marked severe.
Message and timeA readable message, the time the device gave, and the time Sense heard it.
DetailsProtocol details as readable text, and the original bytes.

Encrypted traffic

Whether a protocol is encrypted on a site is declared by the site's owner. Sense does not guess it from the traffic. When a protocol is declared as encrypted, Sense reads it using the access details the owner provides. If those details are not accepted, Sense raises one severe notice for the tenant so the owner can correct them, and readings resume once they are corrected.

Supported and coming soon

27 protocols are listed. Supported means Bhairava Sense reads it today. Coming soon means it is planned and, where its structure allows, can already be recognised. Defence and nuclear protocols are left out. Project Haystack and Brick are data models, not wire protocols, and are not listed.

NameCategoryStatusLinkHow it is recognised
BACnet/IPBuilding automationSupportedudpBVLC type 0x81 (0x82 for IPv6), a known BVLC function, BVLC length equal to the datagram, NPDU version 1 with reserved control bits zero, and the APDU decodes to the end
BACnet MS/TPBuilding automationComing soonserialPreamble 0x55 0xFF, frame type 0-7, valid header CRC-8 (ASHRAE 135 Annex G) and, when data follows, a valid data CRC-16
BACnet/SCBuilding automationComing soontcpSecure WebSocket over TLS: recognised as TLS, contents are encrypted Encrypted by design.
Modbus TCPIndustrialComing soontcpMBAP headers with protocol id 0 and length fields that tile the data exactly, known function codes, and request/response shapes that agree with the function (byte count, quantity, exception code)
Modbus RTUIndustrialComing soonserialSlave address 0-247, a known function code, a frame shape that agrees with the function and a valid CRC-16/MODBUS over the frame
KNX (KNXnet/IP)Building automationComing soonudp / tcpHeader length 0x06, protocol version 0x10, a known KNXnet/IP service type and total length equal to the data
LonWorks / LON/IPBuilding automationComing soonudp / serialNo structural test confirmed yet: needs a LonWorks interface or IP-852 channel
DALI / DALI-2Building automationComing soonserialOnly through a DALI interface; 16/24-bit forward frames have no checksum to test
EnOcean (ESP3)Building automationComing soonserialSync 0x55, valid CRC-8 over the 4 header bytes, packet length that fits and a valid data CRC-8
OPC UAIndustrialComing soontcpChunks starting HEL/ACK/ERR/RHE/OPN/MSG/CLO, chunk type F/C/A and little-endian sizes that tile the data; HEL carries an opc.tcp:// endpoint
MTConnectIndustrialComing soontcpXML with an MTConnectStreams/MTConnectDevices root in the urn:mtconnect.org namespace, or SHDR lines "timestamp|item|value"
MQTTIoTComing soontcpCONNECT with protocol name MQTT (level 4 or 5) or MQIsdp (level 3); otherwise packets whose fixed headers, flags and remaining lengths tile the data exactly
Sparkplug BIoTComing soontcpMQTT PUBLISH packets on topics starting spBv1.0/
Thread / MatterIoTComing soonudpMessages are encrypted per session; nodes are visible only through mDNS _matter._tcp Encrypted by design.
ZigbeeIoTComing soontcpRadio is encrypted; read through the site hub (usually MQTT) Encrypted by design.
Z-WaveIoTComing soontcpRadio is encrypted (S2); read through the site controller Encrypted by design.
BTHome (Bluetooth LE sensors)Wireless sensorsComing soonbleAdvertisement AD structures that tile exactly, with service data for UUID 0xFCD2
Bluetooth LE advertisements (other formats)Wireless sensorsComing soonbleAdvertisement AD structures that tile exactly with known AD types
SNMPIT and powerComing soonudpBER SEQUENCE spanning the whole datagram, version 0, 1 or 3, then a community string and a PDU tag 0xA0-0xA8 (v1/v2c) or the v3 header, with consistent nested lengths
M-BusMeteringComing soonudp / tcp / serialLong frame 0x68 L L 0x68 ... checksum 0x16 with matching lengths and checksum, or short frame 0x10 C A checksum 0x16
Serial weighing indicatorsIndustrialComing soontcp / serialText lines "ST|US|OL,GS|NT,weight unit" (A&D-style continuous output); formats of other makers are added per indicator
NMEA 0183 / AISMarineComing soonudp / tcp / serialText lines starting $ or ! with an address field and a valid XOR checksum after *
NMEA 2000MarineComing sooncan29-bit CAN identifiers whose PGN is a marine PGN (position, heading, depth, product information...)
SAE J1939VehicleComing sooncan29-bit CAN identifiers of at most 8 data bytes whose PGN is a known J1939 PGN (engine, vehicle, faults)
OBD-IIVehicleComing soonserial / can11-bit CAN ids 0x7DF/0x7E0-0x7EF with an ISO-TP single frame and a diagnostic service byte (reply = request + 0x40), or an ELM327 adapter banner / reply lines
ADS-BAviationComing soontcp / serialAVR text lines *<28 hex digits>; with a valid CRC-24 (DF17/18)
Vendor cloud / system export APIsConnected systemsComing soon-Not captured: configured per vendor

Protocol support per scenario

The protocols each of the demonstration scenarios usually communicate over. Green means supported now, grey means coming soon.

ScenarioTypeProtocols
MaritimeFleetNMEA 0183 / AIS NMEA 2000 Modbus TCP Modbus RTU SAE J1939
Passenger BusFleetSAE J1939 OBD-II Vendor cloud / system export APIs
Cargo TruckFleetSAE J1939 OBD-II BTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) Vendor cloud / system export APIs
Passenger AircraftFleetADS-B Modbus TCP Modbus RTU SAE J1939 BACnet/IP Vendor cloud / system export APIs
Cruise ShipFleetBACnet/IP Modbus TCP Modbus RTU NMEA 0183 / AIS NMEA 2000 SAE J1939
Defence TankFleetSAE J1939
Defence ShipFleetNMEA 0183 / AIS
HALE UAVFleetVendor cloud / system export APIs
AmbulanceFleetOBD-II SAE J1939 BTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) Vendor cloud / system export APIs
Cash Transit & EscortingFleetSAE J1939 OBD-II BTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) Vendor cloud / system export APIs
Logistics & DeliveryFleetBTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) Vendor cloud / system export APIs
Home ServicesFleetBTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) OBD-II
RetailFixedModbus TCP Modbus RTU BACnet/IP SNMP
HealthcareFixedBACnet/IP Modbus TCP Modbus RTU SNMP BTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats)
HospitalityFixedBACnet/IP Modbus TCP Modbus RTU KNX (KNXnet/IP) SNMP
ManufacturingFixedOPC UA Modbus TCP Modbus RTU MQTT Sparkplug B BACnet/IP
MiningFixedSAE J1939 Modbus TCP Modbus RTU OPC UA Vendor cloud / system export APIs
AgricultureFixedMQTT Modbus TCP Modbus RTU SAE J1939 Vendor cloud / system export APIs
InfrastructureFixedBACnet/IP BACnet MS/TP Modbus TCP Modbus RTU SNMP Vendor cloud / system export APIs
HumanitarianFixedModbus TCP Modbus RTU BTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) Vendor cloud / system export APIs
Heavy IndustryFixedOPC UA MQTT
SourcingFixedModbus TCP Modbus RTU BTHome (Bluetooth LE sensors) Bluetooth LE advertisements (other formats) BACnet/IP
Ammunition DepotFixedBACnet/IP Modbus TCP Modbus RTU
Real EstateFixedSAE J1939 Modbus TCP Modbus RTU OPC UA Serial weighing indicators Vendor cloud / system export APIs