{
  "busVersion": "0.3",
  "title": "BUS protocol token registry",
  "status": "PROVISIONAL",
  "rationale": "TelemetryBinding.protocol was a free string through v0.2. Two exporters reaching the same controller could write \"bacnet\" and \"BACnet/IP\" and both validate, so a receiver could not tell whether two bindings used the same protocol. This registry does not close the field: an unregistered token is valid and MUST be preserved verbatim. It fixes the spelling of the protocols that actually recur, which is the whole of the problem.",
  "openness": "Registered but open, in the sense of 7.5. A token outside this list is conforming. An exporter that has a registered token available MUST use it rather than a variant spelling.",
  "sources": {
    "haystack": "Project Haystack 4.0.0, the 18 defs subtyping ^protocol.",
    "bus": "Field buses reported by implementers for which Haystack has no def."
  },
  "tokens": [
    {
      "token": "bacnet",
      "label": "ASHRAE building automation and control protocol",
      "typicalNetworkKind": "fieldbus",
      "source": "haystack-4.0.0",
      "haystackDef": "^bacnet"
    },
    {
      "token": "bluetooth",
      "label": "Short range wireless communication protocol",
      "typicalNetworkKind": "wireless",
      "source": "haystack-4.0.0",
      "haystackDef": "^bluetooth"
    },
    {
      "token": "coap",
      "label": "Constrained Application Protocol",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^coap"
    },
    {
      "token": "dali",
      "label": "Digital Addressable Lighting Interface protocol for lighting",
      "typicalNetworkKind": "fieldbus",
      "source": "haystack-4.0.0",
      "haystackDef": "^dali"
    },
    {
      "token": "ftp",
      "label": "File Transfer Protocol",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^ftp"
    },
    {
      "token": "haystack",
      "label": "Haystack HTTP protocol for exchanging tagged data",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^haystack"
    },
    {
      "token": "http",
      "label": "Hypertext Transfer Protocol which is foundation of the web",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^http"
    },
    {
      "token": "imap",
      "label": "Internet Message Access Protocol for retrieving email",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^imap"
    },
    {
      "token": "knx",
      "label": "KNX protocol commonly used for lighting systems",
      "typicalNetworkKind": "fieldbus",
      "source": "haystack-4.0.0",
      "haystackDef": "^knx"
    },
    {
      "token": "lonworks",
      "label": "ISO/IEC 14908 control network protocol, still widespread in installed plant",
      "typicalNetworkKind": "fieldbus",
      "source": "bus-0.3",
      "haystackDef": null
    },
    {
      "token": "modbus",
      "label": "Register based communication protocol used with industrial devices",
      "typicalNetworkKind": "fieldbus",
      "source": "haystack-4.0.0",
      "haystackDef": "^modbus"
    },
    {
      "token": "mqtt",
      "label": "Message Queuing Telemetry Transport publish/subscribe protocol",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^mqtt"
    },
    {
      "token": "mstp",
      "label": "BACnet MS/TP over EIA-485. Distinguished from bacnet because the trunk is the network and the addressing differs",
      "typicalNetworkKind": "fieldbus",
      "source": "bus-0.3",
      "haystackDef": null
    },
    {
      "token": "n2",
      "label": "Johnson Controls N2 bus. Legacy, and the reason an exporter meets undocumented addressing",
      "typicalNetworkKind": "fieldbus",
      "source": "bus-0.3",
      "haystackDef": null
    },
    {
      "token": "obix",
      "label": "XML based Open Building Information eXchange protocol",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^obix"
    },
    {
      "token": "opc-ua",
      "label": "IEC 62541 OPC Unified Architecture",
      "typicalNetworkKind": "ip",
      "source": "bus-0.3",
      "haystackDef": null
    },
    {
      "token": "pop3",
      "label": "Post Office Protocol version 3 for retrieving email",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^pop3"
    },
    {
      "token": "smtp",
      "label": "Simple Mail Transfer Protocol for sending email",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^smtp"
    },
    {
      "token": "snmp",
      "label": "Simple Network Management Protocol for managing IP devices",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^snmp"
    },
    {
      "token": "sox",
      "label": "Sedona Framework UDP based communication protocol",
      "typicalNetworkKind": "ip",
      "source": "haystack-4.0.0",
      "haystackDef": "^sox"
    },
    {
      "token": "zigbee",
      "label": "Low power wireless communication protocol for home automation",
      "typicalNetworkKind": "wireless",
      "source": "haystack-4.0.0",
      "haystackDef": "^zigbee"
    },
    {
      "token": "zwave",
      "label": "Low power wireless communication protocol for home automation",
      "typicalNetworkKind": "wireless",
      "source": "haystack-4.0.0",
      "haystackDef": "^zwave"
    }
  ]
}