diff --git a/index.html b/index.html index 918d448..669d523 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - Network Survey Messaging API 1.2.0 documentation + Network Survey Messaging API 1.3.0 documentation @@ -11,7 +11,7 @@ -
Network Survey Messaging API 1.2.0

The Network Survey Messaging API defines a set of messages that can be used to describe wireless survey related events. The messages range from cellular surveys such as GSM, CDMA, UMTS, LTE, and NR, to simple RF energy detection events.

+
Network Survey Messaging API 1.3.0

The Network Survey Messaging API defines a set of messages that can be used to describe wireless survey related events. The messages range from cellular surveys such as GSM, CDMA, UMTS, LTE, and NR, to simple RF energy detection events.

NOTE: Despite the name "Network Survey Messaging API", this message specification is not exclusive to the Network Survey Android App. Instead, the Network Survey Android App is just one app that leverages Network Survey Messaging. Therefore, there are messages in this specification that do not apply to the Network Survey Android App (e.g. EnergyDetection).

While the most common use of these messages would be to send to an MQTT broker, this API specification simply defines the message schema. The transport or storage technology employed is purposefully left @@ -25,7 +25,7 @@ compressed binary format is needed. It also has the side effect of supporting sending these messages over gRPC if Remote Procedure Call support is of interest. Check out the Network Survey Messaging Github README for more details.

Operations

  • RECEIVE gsm_message

    The gsm_message topic/channel is where GSM survey records can be published. For MQTT, set the MQTT topic as "gsm_message" and then publish a JSON message representing a GSM survey record in the format defined below.

    -
    Operation IDgsm_message

    Accepts the following message:

    GSM Record

    Represents information recorded about a GSM tower at a particular time and geographic location.

    object
  • RECEIVE cdma_message

    The cdma_message topic/channel is where CDMA survey records can be published. For MQTT, set the MQTT topic as "cdma_message" and then publish a JSON message representing a CDMA survey record in the format defined below.

    -
    Operation IDcdma_message

    Accepts the following message:

    CDMA Record

    Represents information recorded about a CDMA tower at a particular time and geographic location.

    object
  • RECEIVE umts_message

    The umts_message topic/channel is where UMTS survey records can be published. For MQTT, set the MQTT topic as "umts_message" and then publish a JSON message representing a UMTS survey record in the format defined below.

    -
    Operation IDumts_message

    Accepts the following message:

    UMTS Record

    Represents information recorded about a UMTS NodeB at a particular time and geographic location.

    object
  • RECEIVE lte_message

    The lte_message topic/channel is where LTE survey records can be published. For MQTT, set the MQTT topic as "lte_message" and then publish a JSON message representing an LTE survey record in the format defined below.

    -
    Operation IDlte_message

    Accepts the following message:

    LTE Record

    Represents information recorded about an LTE eNodeB at a particular time and geographic location.

    object
  • RECEIVE nr_message

    The nr_message topic/channel is where 5G NR survey records can be published. For MQTT, set the MQTT topic as "nr_message" and then publish a JSON message representing a 5G NR survey record in the format defined below.

    -
    Operation IDnr_message

    Accepts the following message:

    5G NR Record

    Represents information recorded about a 5G NR gNodeB at a particular time and geographic location.

    object
  • RECEIVE 80211_beacon_message

    The 80211_beacon_message topic/channel is where 802.11 beacon survey records can be published. For MQTT, set the MQTT topic as "80211_beacon_message" and then publish a JSON message representing an 802.11 Access Point survey record in the format defined below.

    -
    Operation ID80211_beacon_message

    Accepts the following message:

    Wi-Fi Beacon Record

    Represents information recorded about an 802.11 Access Point at a particular time and geographic location. 802.11 Beacon frames are sent by Access Points to advertise their existence and to provide all the necessary connection information. This message represents a capture of a single 802.11 Beacon message.

    object
  • RECEIVE 80211_probe_request_message

    The 80211_probe_request_message topic/channel is where 802.11 probe request survey records can be published. For MQTT, set the MQTT topic as "80211_probe_request_message" and then publish a JSON message representing an 802.11 Probe Request record in the format defined below. Added in 0.9.0

    -
    Operation ID80211_probe_request_message

    Accepts the following message:

    Wi-Fi Probe Request Record

    Represents information recorded about an 802.11 Probe Request at a particular time and geographic location. 802.11 Probe Request frames are sent by clients looking to discover information about an Access Point with a specific SSID. This message represents a capture of a single 802.11 Probe Request message.

    object
  • RECEIVE 80211_deauthentication_message

    The 80211_deauthentication_message topic/channel is where 802.11 (Wi-Fi) Deauthentication Management Frames can be published. For MQTT, set the MQTT topic as "wifi_deauthentication_message". When a station wants to disassociate from another station, it invokes the deauthentication service. Deauthentication is a notification and cannot be refused. A station performs deauthentication by sending an authentication management frame (or group of frames to multiple stations) to advise of the termination of authentication.

    -
    Operation ID80211_deauthentication_message

    Accepts the following message:

    Wi-Fi Deauthentication Record

    Represents an 802.11 deauthentication management frame. When a station wants to disassociate from another station, it invokes the deauthentication service. Deauthentication is a notification and cannot be refused. A station performs deauthentication by sending an authentication management frame (or group of frames to multiple stations) to advise of the termination of authentication.

    object
  • RECEIVE 80211_ota_message

    The 80211_ota_message topic/channel is where Over The Air (OTA) 802.11 (Wi-Fi) messages can be published. For MQTT, set the MQTT topic as "wifi_ota_message" and then publish a JSON message representing an OTA WiFi message.

    -
    Operation ID80211_ota_message

    Accepts the following message:

    Wi-Fi Over The Air (OTA) Record

    Represents information recorded about an 802.11 packet recorded at a particular time and geographic location. This message represents a capture of a 802.11 packet in PCAP format.

    object
  • RECEIVE bluetooth_message

    The bluetooth_message topic/channel is where Bluetooth survey records can be published. For MQTT, set the MQTT topic as "bluetooth_message" and then publish a JSON message representing a Bluetooth survey record in the format defined below.

    -
    Operation IDbluetooth_message

    Accepts the following message:

    Bluetooth Record

    Represents information recorded about a Bluetooth device at a particular time and geographic location. This message represents a capture of a signal Bluetooth frame.

    object
  • RECEIVE gnss_message

    The gnss_message topic/channel is where GNSS positioning records can be published. For MQTT, set the MQTT topic as "gnss_message" and then publish a JSON message in the format defined below.

    -
    Operation IDgnss_message

    Accepts the following message:

    GNSS Record

    Represents information recorded about a Global Navigation Satellite System (GNSS) at a particular time and geographic location. Each record represents a single navigation message from a single satellite. These individual records are tied together using the group number field.

    object
  • RECEIVE energy_detection_message

    The energy_detection_message topic/channel is where RF energy detection records can be published. For MQTT, set the MQTT topic as "energy_detection_message" and then publish a JSON message in the format defined below.

    -
    Operation IDenergy_detection_message

    Accepts the following message:

    Energy Detection

    Represents a General Purpose Radio (GPR) Energy Detection event. This survey record represents a general RF/PTT energy detection (i.e. RF energy was detected above a pre-defined threshold).

    object
  • RECEIVE signal_detection_message

    The signal_detection_message topic/channel is where signal detection records can be published. For MQTT, set the MQTT topic as "signal_detection_message" and then publish a JSON message in the format defined below.

    -
    Operation IDsignal_detection_message

    Accepts the following message:

    Signal Detection

    Represents a General Purpose Radio (GPR) Signal Detection event. This survey record represents RF detections where the modulation and/or signal type could be determined. If both the modulation and signal type are unknown, then use the `energy_detection_message` instead.

    object
  • RECEIVE device_status_message

    The device_status_message topic/channel is where device status records can be published. This includes both DeviceStatus and PhoneState messages. For MQTT, set the MQTT topic as "device_status_message" and then publish a JSON message in one of the formats defined below.

    -
    Operation IDdevice_status_message

    Accepts one of the following messages:

    • #0Device Status

      Represents a status message sent from the device to report its current state or to act as a heartbeat. The interval of this message can vary depending on use case.

      object
    • RECEIVE cellular_ota_message

      The cellular_ota_message topic/channel is where Over The Air (OTA) cellular (LTE, UMTS/WCDMA) messages can be published. For MQTT, set the MQTT topic as "cellular_ota_message" and then publish a JSON message representing an OTA Cellular message.

      -
      Operation IDcellular_ota_message

      Accepts one of the following messages:

      • #0GSM RR Signaling OTA Message

        Represents a raw GSM RR Signaling message sent Over The Air (OTA) between a GSM BTS and a GSM ME.

        object
      • #55G NR RecordnrRecord

        Represents information recorded about a 5G NR gNodeB at a particular time and geographic location.

        Message IDnrRecord
        object
      • #16LTE RRC OTA MessagelteRrc

        Represents a raw LTE RRC message sent Over The Air (OTA) between an LTE eNodeB and an LTE UE.

        Message IDlteRrc
        object

        Additional properties are allowed.

      Additional properties are allowed.

    Additional properties are allowed.

  • #16LTE RRC OTA MessagelteRrc

    Represents a raw LTE RRC message sent Over The Air (OTA) between an LTE eNodeB and an LTE UE.

    Message IDlteRrc
    object
  • object
  • object

    Additional properties are allowed.

  • Additional properties are allowed.

    Additional properties are allowed.

  • object
  • groupNumber
    integer
    format: int32>= 1

    Starts at 1 and each subsequent scan should have its number incremented by 1. For simple frequency sweeps, all detections in the same sweep should have the same group number. For cellular surveys, each scan of the serving cell and neighbor cells should have the same group number.

  • signalStrength
    number
    format: float[ -200 .. 200 ]

    The signal strength of the received signal in dBm.

  • deviceModel
    string

    The model number of the device that this message originated from.

    +
  • appVersion
    string

    The version of the software application that this message originated from (most likely the Network Survey Android app, but could be any other app). Added in version 1.3.0.

  • accuracy
    integer
    format: int32>= 0

    The estimated horizontal accuracy of the provided location, radial, in meters. We define horizontal accuracy as the radius of 68% confidence. In other words, if you draw a circle centered at this location's latitude and longitude, and with a radius equal to the accuracy, then there is a 68% probability that the true location is inside the circle. A value of 0 indicates there was no available horizontal accuracy.

  • heading
    number
    format: float[ -180 .. 180 ]

    Heading of the sensor/antenna, in degrees from true north. One can use sensor orientation (heading, pitch, roll) and sensor characteristics (fieldofView, receiverSensitivity) to form more accurate estimates of the transmitter's position.

  • pitch
    number
    format: float[ -180 .. 180 ]

    Pitch of the sensor/antenna, in degrees from the ground plane. One can use sensor orientation (heading, pitch, roll) and sensor characteristics (fieldofView, receiverSensitivity) to form more accurate estimates of the transmitter's position.

    @@ -2579,7 +2587,7 @@ "asyncapi": "3.0.0", "info": { "title": "Network Survey Messaging API", - "version": "1.2.0", + "version": "1.3.0", "description": "The Network Survey Messaging API defines a set of messages that can be used to describe wireless survey related events. The messages range from cellular surveys such as GSM, CDMA, UMTS, LTE, and NR, to simple RF energy detection events.\n\n**NOTE:** Despite the name \"Network Survey Messaging API\", this message specification is not exclusive to the [Network Survey Android App](https://github.com/christianrowlands/android-network-survey). Instead, the Network Survey Android App is just one app that leverages Network Survey Messaging. Therefore, there are messages in this specification that do not apply to the Network Survey Android App (e.g. EnergyDetection).\n\nWhile the most common use of these messages would be to send to an MQTT broker, this API specification\nsimply defines the message schema. The transport or storage technology employed is purposefully left\nopen to allow for these messages to flow over a variety of transports such as MQTT, gRPC, AMQP, etc.\nIn addition, these messages can be written to disk by writing the JSON strings directly to a file to\nsupport unstructured data storage, or in a more structured approach such as a PostgreSQL or SQLite database.\n\nOfficially, the message schema support for the Network Survey Messaging API are the JSON defined messages from this\ndocument. However, protobuf definitions of these messages have been created as a convenience for a couple of reasons.\nFirst, it can make generating the JSON compliant messages easier and also converting the JSON messages to language\nspecific objects. Secondly, it can allow for sending the messages in protocol buffer format instead of JSON if a\ncompressed binary format is needed. It also has the side effect of supporting sending these messages over gRPC if\nRemote Procedure Call support is of interest. Check out the [Network Survey Messaging Github README](https://github.com/christianrowlands/network-survey-messaging) for more details.\n", "license": { "name": "Apache 2.0", @@ -2607,7 +2615,7 @@ "version": { "type": "string", "description": "The version number of the Network Survey Messaging API that this message is based off of.", - "example": "1.2.0", + "example": "1.3.0", "x-parser-schema-id": "version" }, "messageType": { @@ -2842,7 +2850,8 @@ } }, "x-parser-schema-id": "gsmRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The gsm_message topic/channel is where GSM survey records can be published. For MQTT, set the MQTT topic as \"gsm_message\" and then publish a JSON message representing a GSM survey record in the format defined below.", @@ -2975,7 +2984,8 @@ } }, "x-parser-schema-id": "cdmaRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The cdma_message topic/channel is where CDMA survey records can be published. For MQTT, set the MQTT topic as \"cdma_message\" and then publish a JSON message representing a CDMA survey record in the format defined below.", @@ -3107,7 +3117,8 @@ } }, "x-parser-schema-id": "umtsRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The umts_message topic/channel is where UMTS survey records can be published. For MQTT, set the MQTT topic as \"umts_message\" and then publish a JSON message representing a UMTS survey record in the format defined below.", @@ -3235,6 +3246,13 @@ "example": -11, "x-parser-schema-id": "rsrq" }, + "snr": { + "type": "number", + "format": "float", + "description": "The Reference Signal Signal-to-Noise Ratio measured in dB. Range: -20 dB to +30 dB. Added in version 1.2.0.", + "example": 19, + "x-parser-schema-id": "" + }, "ta": { "type": "integer", "format": "int32", @@ -3242,7 +3260,7 @@ "maximum": 1282, "description": "LTE Timing Advance, corresponding to the timing offset a mobile phone needs to use when transmitting a signal to the tower. Valid range 0-1282.", "example": 27, - "x-parser-schema-id": "" + "x-parser-schema-id": "" }, "signalStrength": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.signalStrength", "cqi": { @@ -3271,20 +3289,14 @@ "x-parser-schema-id": "lteBandwidth" }, "provider": "$ref:$.channels.cdma_message.messages.publish.message.payload.properties.data.properties.provider", - "slot": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.slot", - "snr": { - "type": "number", - "format": "float", - "description": "The Reference Signal Signal-to-Noise Ratio measured in dB. Range: -20 dB to +30 dB.", - "example": 19, - "x-parser-schema-id": "" - } + "slot": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.slot" }, "x-parser-schema-id": "" } }, "x-parser-schema-id": "lteRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The lte_message topic/channel is where LTE survey records can be published. For MQTT, set the MQTT topic as \"lte_message\" and then publish a JSON message representing an LTE survey record in the format defined below.", @@ -3450,7 +3462,8 @@ } }, "x-parser-schema-id": "nrRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The nr_message topic/channel is where 5G NR survey records can be published. For MQTT, set the MQTT topic as \"nr_message\" and then publish a JSON message representing a 5G NR survey record in the format defined below.", @@ -3717,7 +3730,8 @@ } }, "x-parser-schema-id": "wifiBeaconRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The 80211_beacon_message topic/channel is where 802.11 beacon survey records can be published. For MQTT, set the MQTT topic as \"80211_beacon_message\" and then publish a JSON message representing an 802.11 Access Point survey record in the format defined below.", @@ -3802,7 +3816,8 @@ } }, "x-parser-schema-id": "wifiProbeRequestRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The 80211_probe_request_message topic/channel is where 802.11 probe request survey records can be published. For MQTT, set the MQTT topic as \"80211_probe_request_message\" and then publish a JSON message representing an 802.11 Probe Request record in the format defined below. Added in 0.9.0", @@ -3897,7 +3912,8 @@ } }, "x-parser-schema-id": "wifiDeauthenticationRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The 80211_deauthentication_message topic/channel is where 802.11 (Wi-Fi) Deauthentication Management Frames can be published. For MQTT, set the MQTT topic as \"wifi_deauthentication_message\". When a station wants to disassociate from another station, it invokes the deauthentication service. Deauthentication is a notification and cannot be refused. A station performs deauthentication by sending an authentication management frame (or group of frames to multiple stations) to advise of the termination of authentication.", @@ -3982,7 +3998,8 @@ } }, "x-parser-schema-id": "wifiOtaRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The 80211_ota_message topic/channel is where Over The Air (OTA) 802.11 (Wi-Fi) messages can be published. For MQTT, set the MQTT topic as \"wifi_ota_message\" and then publish a JSON message representing an OTA WiFi message.", @@ -4093,7 +4110,8 @@ } }, "x-parser-schema-id": "bluetoothRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The bluetooth_message topic/channel is where Bluetooth survey records can be published. For MQTT, set the MQTT topic as \"bluetooth_message\" and then publish a JSON message representing a Bluetooth survey record in the format defined below.", @@ -4280,7 +4298,8 @@ } }, "x-parser-schema-id": "gnssRecordPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The gnss_message topic/channel is where GNSS positioning records can be published. For MQTT, set the MQTT topic as \"gnss_message\" and then publish a JSON message in the format defined below.", @@ -4377,7 +4396,8 @@ } }, "x-parser-schema-id": "energyDetectionPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The energy_detection_message topic/channel is where RF energy detection records can be published. For MQTT, set the MQTT topic as \"energy_detection_message\" and then publish a JSON message in the format defined below.", @@ -4459,7 +4479,8 @@ } }, "x-parser-schema-id": "signalDetectionPayload" - } + }, + "x-parser-unique-object-id": "publish.message" } }, "description": "The signal_detection_message topic/channel is where signal detection records can be published. For MQTT, set the MQTT topic as \"signal_detection_message\" and then publish a JSON message in the format defined below.", @@ -4505,6 +4526,12 @@ "altitude": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.altitude", "speed": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.speed", "deviceModel": "$ref:$.channels.gnss_message.messages.publish.message.payload.properties.data.properties.deviceModel", + "appVersion": { + "type": "string", + "description": "The version of the software application that this message originated from (most likely the Network Survey Android app, but could be any other app). Added in version 1.3.0.", + "example": 1.28, + "x-parser-schema-id": "appVersion" + }, "accuracy": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.accuracy", "heading": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.heading", "pitch": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.pitch", @@ -4604,7 +4631,8 @@ } }, "x-parser-schema-id": "deviceStatusPayload" - } + }, + "x-parser-unique-object-id": "publish.message.0" }, "publish.message.1": { "name": "PhoneState", @@ -4844,7 +4872,8 @@ } }, "x-parser-schema-id": "phoneStatePayload" - } + }, + "x-parser-unique-object-id": "publish.message.1" } }, "description": "The device_status_message topic/channel is where device status records can be published. This includes both `DeviceStatus` and `PhoneState` messages. For MQTT, set the MQTT topic as \"device_status_message\" and then publish a JSON message in one of the formats defined below.", @@ -4937,7 +4966,8 @@ } }, "x-parser-schema-id": "gsmSignalingPayload" - } + }, + "x-parser-unique-object-id": "publish.message.0" }, "publish.message.1": { "name": "UmtsNas", @@ -4990,7 +5020,8 @@ } }, "x-parser-schema-id": "umtsNasPayload" - } + }, + "x-parser-unique-object-id": "publish.message.1" }, "publish.message.2": { "name": "WcdmaRrc", @@ -5115,7 +5146,8 @@ } }, "x-parser-schema-id": "wcdmaRrcPayload" - } + }, + "x-parser-unique-object-id": "publish.message.2" }, "publish.message.3": { "name": "LteRrc", @@ -5201,7 +5233,8 @@ } }, "x-parser-schema-id": "lteRrcPayload" - } + }, + "x-parser-unique-object-id": "publish.message.3" }, "publish.message.4": { "name": "LteNas", @@ -5266,7 +5299,8 @@ } }, "x-parser-schema-id": "lteNasPayload" - } + }, + "x-parser-unique-object-id": "publish.message.4" } }, "description": "The cellular_ota_message topic/channel is where Over The Air (OTA) cellular (LTE, UMTS/WCDMA) messages can be published. For MQTT, set the MQTT topic as \"cellular_ota_message\" and then publish a JSON message representing an OTA Cellular message.", @@ -5279,91 +5313,104 @@ "channel": "$ref:$.channels.gsm_message", "messages": [ "$ref:$.channels.gsm_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "gsm_message" }, "cdma_message": { "action": "receive", "channel": "$ref:$.channels.cdma_message", "messages": [ "$ref:$.channels.cdma_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "cdma_message" }, "umts_message": { "action": "receive", "channel": "$ref:$.channels.umts_message", "messages": [ "$ref:$.channels.umts_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "umts_message" }, "lte_message": { "action": "receive", "channel": "$ref:$.channels.lte_message", "messages": [ "$ref:$.channels.lte_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "lte_message" }, "nr_message": { "action": "receive", "channel": "$ref:$.channels.nr_message", "messages": [ "$ref:$.channels.nr_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "nr_message" }, "80211_beacon_message": { "action": "receive", "channel": "$ref:$.channels.80211_beacon_message", "messages": [ "$ref:$.channels.80211_beacon_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "80211_beacon_message" }, "80211_probe_request_message": { "action": "receive", "channel": "$ref:$.channels.80211_probe_request_message", "messages": [ "$ref:$.channels.80211_probe_request_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "80211_probe_request_message" }, "80211_deauthentication_message": { "action": "receive", "channel": "$ref:$.channels.80211_deauthentication_message", "messages": [ "$ref:$.channels.80211_deauthentication_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "80211_deauthentication_message" }, "80211_ota_message": { "action": "receive", "channel": "$ref:$.channels.80211_ota_message", "messages": [ "$ref:$.channels.80211_ota_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "80211_ota_message" }, "bluetooth_message": { "action": "receive", "channel": "$ref:$.channels.bluetooth_message", "messages": [ "$ref:$.channels.bluetooth_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "bluetooth_message" }, "gnss_message": { "action": "receive", "channel": "$ref:$.channels.gnss_message", "messages": [ "$ref:$.channels.gnss_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "gnss_message" }, "energy_detection_message": { "action": "receive", "channel": "$ref:$.channels.energy_detection_message", "messages": [ "$ref:$.channels.energy_detection_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "energy_detection_message" }, "signal_detection_message": { "action": "receive", "channel": "$ref:$.channels.signal_detection_message", "messages": [ "$ref:$.channels.signal_detection_message.messages.publish.message" - ] + ], + "x-parser-unique-object-id": "signal_detection_message" }, "device_status_message": { "action": "receive", @@ -5371,7 +5418,8 @@ "messages": [ "$ref:$.channels.device_status_message.messages.publish.message.0", "$ref:$.channels.device_status_message.messages.publish.message.1" - ] + ], + "x-parser-unique-object-id": "device_status_message" }, "cellular_ota_message": { "action": "receive", @@ -5382,7 +5430,8 @@ "$ref:$.channels.cellular_ota_message.messages.publish.message.2", "$ref:$.channels.cellular_ota_message.messages.publish.message.3", "$ref:$.channels.cellular_ota_message.messages.publish.message.4" - ] + ], + "x-parser-unique-object-id": "cellular_ota_message" } }, "components": { @@ -5442,6 +5491,7 @@ "groupNumber": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.groupNumber", "signalStrength": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.signalStrength", "deviceModel": "$ref:$.channels.gnss_message.messages.publish.message.payload.properties.data.properties.deviceModel", + "appVersion": "$ref:$.channels.device_status_message.messages.publish.message.0.payload.properties.data.properties.appVersion", "accuracy": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.accuracy", "heading": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.heading", "pitch": "$ref:$.channels.gsm_message.messages.publish.message.payload.properties.data.properties.pitch",