{
  "profile": "data-package",
  "name": "ot-wireless-open-data",
  "title": "OT Wireless open data",
  "description": "Sourced network requirements for industrial protocols and mobile robots, and typical Wi-Fi roaming interruption ranges. Every value links to its public source.",
  "homepage": "https://otwireless.com/data/",
  "version": "2026-10-05",
  "licenses": [
    {
      "name": "CC-BY-4.0",
      "path": "https://creativecommons.org/licenses/by/4.0/",
      "title": "Creative Commons Attribution 4.0 International"
    }
  ],
  "contributors": [
    {
      "title": "Ben Rutter",
      "role": "author",
      "path": "https://otwireless.com/about/"
    }
  ],
  "resources": [
    {
      "name": "requirements-json",
      "path": "requirements.json",
      "title": "Requirements database (JSON)",
      "format": "json",
      "mediatype": "application/json",
      "encoding": "utf-8",
      "bytes": 141269,
      "hash": "sha256:8ef97d0d23b2baf7cbb25c7f68d5a0fa1b5bd86258ee4943bd0d411883fe7683"
    },
    {
      "name": "requirements-parameters",
      "path": "requirements-parameters.csv",
      "title": "Requirements: one row per value (CSV)",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 121001,
      "hash": "sha256:76e880f2a9051343b30940e16439a8089a12a287e6e866ddc114a51bab89a70d",
      "schema": {
        "fields": [
          {
            "name": "entry_id",
            "type": "string",
            "description": "The entry this value belongs to; its page is /requirements/<entry_id>/."
          },
          {
            "name": "entry_kind",
            "type": "string",
            "description": "protocol or device."
          },
          {
            "name": "vendor",
            "type": "string",
            "description": "The maker or standards body."
          },
          {
            "name": "model_or_version",
            "type": "string",
            "description": "The model, series, or specification version the value applies to."
          },
          {
            "name": "parameter",
            "type": "string",
            "description": "What the value is, in plain words."
          },
          {
            "name": "value",
            "type": "string",
            "description": "The value as the source states it. \"Not published by the vendor\" means the sources were checked and give none."
          },
          {
            "name": "unit",
            "type": "string",
            "description": "The unit, where the value is a number."
          },
          {
            "name": "condition",
            "type": "string",
            "description": "When the value applies, or what qualifies it."
          },
          {
            "name": "category",
            "type": "string",
            "description": "For device values: bands-channels, min-signal, roam-time, fast-roaming, latency-loss, throughput, security, ports, loc-behavior, loc-timeout, or other."
          },
          {
            "name": "source_url",
            "type": "string",
            "description": "The public document the value comes from."
          },
          {
            "name": "source_title",
            "type": "string",
            "description": "The document's title."
          },
          {
            "name": "source_date",
            "type": "string",
            "description": "The document's own date or revision, where it states one."
          },
          {
            "name": "locator",
            "type": "string",
            "description": "Where in the document: section, table, or page."
          },
          {
            "name": "accessed",
            "type": "date",
            "description": "The date the document was read."
          },
          {
            "name": "entry_url",
            "type": "string",
            "description": "The entry's page on otwireless.com."
          }
        ]
      }
    },
    {
      "name": "requirements-entries",
      "path": "requirements-entries.csv",
      "title": "Requirements: one row per entry (CSV)",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 7709,
      "hash": "sha256:93e4df389893bcf6bc6f6c2fdf4ee7af760f19bb4b5484e9f0d26f356ea5fc57",
      "schema": {
        "fields": [
          {
            "name": "id",
            "type": "string",
            "description": "Stable identifier; the page is /requirements/<id>/."
          },
          {
            "name": "kind",
            "type": "string",
            "description": "protocol or device."
          },
          {
            "name": "title",
            "type": "string",
            "description": "The entry's title."
          },
          {
            "name": "vendor",
            "type": "string",
            "description": "The maker or standards body."
          },
          {
            "name": "model_or_version",
            "type": "string",
            "description": "The model, series, or specification version."
          },
          {
            "name": "last_verified",
            "type": "date",
            "description": "The date the entry's sources were last checked."
          },
          {
            "name": "parameter_count",
            "type": "integer",
            "description": "How many sourced values the entry has."
          },
          {
            "name": "loss_of_comms_behavior",
            "type": "string",
            "description": "What the vehicle does when it loses the network, as its maker states it."
          },
          {
            "name": "loss_of_comms_timeout",
            "type": "string",
            "description": "How long before it acts."
          },
          {
            "name": "loss_of_comms_recovery",
            "type": "string",
            "description": "How it recovers."
          },
          {
            "name": "loss_of_comms_source_url",
            "type": "string",
            "description": "The source for the three loss-of-comms fields."
          },
          {
            "name": "top_speed",
            "type": "string",
            "description": "The vehicle's top speed as its maker states it."
          },
          {
            "name": "top_speed_source_url",
            "type": "string",
            "description": "The source for the top speed."
          },
          {
            "name": "url",
            "type": "string",
            "description": "The entry's page on otwireless.com."
          }
        ]
      }
    },
    {
      "name": "roam-methods-json",
      "path": "roam-methods.json",
      "title": "Roaming interruption ranges (JSON)",
      "format": "json",
      "mediatype": "application/json",
      "encoding": "utf-8",
      "bytes": 10358,
      "hash": "sha256:5f0243a74569926d26d23523a4b464fc5c19f0362d908b8e39b2f7cde8073247"
    },
    {
      "name": "roam-methods",
      "path": "roam-methods.csv",
      "title": "Roaming interruption ranges (CSV)",
      "format": "csv",
      "mediatype": "text/csv",
      "encoding": "utf-8",
      "bytes": 7500,
      "hash": "sha256:937b0edc45d5cf49e86fad3ff6ce44e71b182748dbfe9385ec0bb63af704d318",
      "schema": {
        "fields": [
          {
            "name": "id",
            "type": "string",
            "description": "Stable identifier for the roaming method."
          },
          {
            "name": "label",
            "type": "string",
            "description": "The roaming method."
          },
          {
            "name": "min_ms",
            "type": "number",
            "description": "Low end of the typical interruption, in milliseconds. Empty where no source supports a range."
          },
          {
            "name": "max_ms",
            "type": "number",
            "description": "High end of the typical interruption, in milliseconds. Empty where no source supports a range."
          },
          {
            "name": "kind",
            "type": "string",
            "description": "standard, vendor-claim, or draft."
          },
          {
            "name": "note",
            "type": "string",
            "description": "What the range rests on, and its limits."
          },
          {
            "name": "source_urls",
            "type": "string",
            "description": "The sources, separated by \" | \"."
          },
          {
            "name": "source_publishers",
            "type": "string",
            "description": "Their publishers, in the same order, separated by \" | \"."
          }
        ]
      }
    }
  ]
}
