Lora-Map/doc/Communcation.yml

324 lines
10 KiB
YAML

asyncapi: 2.0.0
info:
title: Lora-Internal-Flow
version: '1.0.0'
description: |
Internal Communication for:
* Lora-Gateway
* Lora-Map
license:
name: LGPL3
url: http://www.gnu.org/licenses/lgpl-3.0.html
servers:
production:
url: 127.0.0.1:{port}
protocol: mqtt
description: Lora-Broker
security:
- userPassword: []
variables:
port:
description: Secure connection (TLS) is available through port 8883.
default: '1883'
enum:
- '1883'
- '8883'
defaultContentType: application/json
channels:
lora/data/{deviceID}:
description: Topic witch contains the tracking data.
parameters:
deviceID:
$ref: '#/components/parameters/deviceID'
subscribe:
operationId: loradata
message:
$ref: '#/components/messages/loradata'
lora/panic/{deviceID}:
description: Topic witch contains the tracking data, when the panic buttons was pressed
parameters:
deviceID:
$ref: '#/components/parameters/deviceID'
subscribe:
operationId: lorapanic
message:
$ref: '#/components/messages/loradata'
lora/status/{deviceID}:
description: Topic witch contains status of the devices
parameters:
deviceID:
$ref: '#/components/parameters/deviceID'
subscribe:
operationId: lorastatus
message:
$ref: '#/components/messages/lorastatus'
components:
messages:
loradata:
name: trackerData
title: Positionsdata
summary: Informs you about a Position and Status of a Tracker
contentType: application/json
payload:
$ref: "#/components/schemas/loradataPayload"
lorastatus:
name: loraStatus
title: Statusdata
summary: Informs you about a Status of a Tracker
payload:
$ref: "#/components/schemas/lorastausPayload"
schemas:
loradataPayload:
$ref: "#/components/schemas/loradataObject"
lorastausPayload:
$ref: "#/components/schemas/lorastatusObject"
lorastatusObject:
type: object
properties:
Bandwidth:
type: integer
description: Bandwidth on witch the Signal was recieved
minimum: 7800
maximum: 500000
BatteryLevel:
type: number
description: Voltage of the battery from the device
minimum: 2.5
maximum: 5
Calculatedcrc:
type: integer
description: The calculated CRC
Codingrate:
type: integer
description: The Codingrate in witch the Signal was recieved
minimum: 5
maximum: 8
Crcstatus:
type: string
description: Shows the CRC-Status in a Field
enum:
- Ok
- Bad
- No
DeviceStatus:
type: string
description: Shows the internal state in a Field
enum:
- Startup
- Powersave
- Shutdown
Frequency:
type: integer
description: The Frequency on that the Message was arrived
FrequencyOffset:
type: integer
description: The internal offset to the base frequency, to compensate cheap china rf modules
Host:
type: string
description: Name of the Gateway that Recieves the Data
IpAddress:
type: string
description: IP-Address of the device, for debug
default: "0.0.0.0"
format: "[0-9]\\.[0-9]\\.[0-9]\\.[0-9]"
Name:
type: string
description: Name of the GPS-Tracker, must be unique between every Device
format: "/[a-z]{2}/i"
PacketRssi:
type: number
description: Recieve Signal Strength Index for the whole LORA-Messgae
Receivedtime:
type: string
description: Timestamp of the Gateway, when it recieves the LORA-Message
format: dd/mm/YYYY hh:MM:ss
default: 01/01/2019 12:00:00
Recieverinterface:
type: integer
description: Internal virtual Radio of the Gateway, witch recieves the LORA-Messange
Recieverradio:
type: integer
description: Internal Radio of the Gateway, witch recieves the LORA-Messange
Rssi:
type: number
description: Recieve Signal Strength Index for the LORA-Message
Snr:
type: number
description: Signal to Noise Ratio of the LORA-Message
Snrmax:
type: number
description: Maximum Signal to Noise Ratio of the LORA-Message
Snrmin:
type: number
description: Minimum Signal to Noise Ratio of the LORA-Message
Spreadingfactor:
type: integer
description: The Spreadingfactor of the LORA-Message
minimum: 7
maximum: 12
Time:
type: integer
description: Internal Timecounter of the LORA-Reciever
Version:
type: integer
description: Software-Versionsnumber of the Device
WifiActive:
type: boolean
description: Status if the Device successufly connect to a wifi
WifiSsid:
type: string
description: SSID of the WIFI witch the device connects to.
loradataObject:
type: object
required:
- BatteryLevel
- Gps
- Name
- Receivedtime
- Rssi
- Snr
properties:
Bandwidth:
type: integer
description: Bandwidth on witch the Signal was recieved
minimum: 7800
maximum: 500000
BatteryLevel:
type: number
description: Voltage of the battery from the device
minimum: 2.5
maximum: 5
Calculatedcrc:
type: integer
description: The calculated CRC
Codingrate:
type: integer
description: The Codingrate in witch the Signal was recieved
minimum: 5
maximum: 8
Crcstatus:
type: string
description: Shows the CRC-Status in a Field
enum:
- Ok
- Bad
- No
Frequency:
type: integer
description: The Frequency on that the Message was arrived
Gps:
type: object
description: Gps-Data of a Message
required:
- Fix
- Hdop
- Height
- LastGPSPos
- LastLatitude
- LastLongitude
- Latitude
- Longitude
properties:
Fix:
type: boolean
description: Status of the Tracker, true if it has GPS-Signal
Hdop:
type: number
description: Dislocation from GPS-Reciever
minimum: 0.8
maximum: 25
Height:
type: number
description: Height of the GPS-Reciever
LastGPSPos:
type: string
description: Timestamp when the GPS-Reciever has its last position
format: dd/mm/YYYY hh:MM:ss
default: 01/01/2019 12:00:00
LastLatitude:
type: number
description: Last Latitude of the GPS-Reciever
default: 50.7
LastLongitude:
type: number
description: Last Longitude of the GPS-Reciever
default: 7.2
Latitude:
type: number
description: Latitude of the GPS-Reciever
default: 50.7
Longitude:
type: number
description: Longitude of the GPS-Reciever
default: 7.2
Time:
type: string
description: Timestamp of the GPS-Reciever, that it gets from the Satelites
format: dd/mm/YYYY hh:MM:ss
default: 01/01/2019 12:00:00
Host:
type: string
description: Name of the Gateway that Recieves the Data
Name:
type: string
description: Name of the GPS-Tracker, must be unique between every Device
format: "/[a-z]{2}/i"
PacketRssi:
type: number
description: Recieve Signal Strength Index for the whole LORA-Messgae
Receivedtime:
type: string
description: Timestamp of the Gateway, when it recieves the LORA-Message
format: dd/mm/YYYY hh:MM:ss
default: 01/01/2019 12:00:00
Recieverinterface:
type: integer
description: Internal virtual Radio of the Gateway, witch recieves the LORA-Messange
Recieverradio:
type: integer
description: Internal Radio of the Gateway, witch recieves the LORA-Messange
Rssi:
type: number
description: Recieve Signal Strength Index for the LORA-Message
Snr:
type: number
description: Signal to Noise Ratio of the LORA-Message
Snrmax:
type: number
description: Maximum Signal to Noise Ratio of the LORA-Message
Snrmin:
type: number
description: Minimum Signal to Noise Ratio of the LORA-Message
Spreadingfactor:
type: integer
description: The Spreadingfactor of the LORA-Message
minimum: 7
maximum: 12
Time:
type: integer
description: Internal Timecounter of the LORA-Reciever
securitySchemes:
userPassword:
type: userPassword
description: Using Username and Password to connect to online broker
parameters:
deviceID:
description: The ID of the streetlight.
schema:
type: string