Skip to content

Latest commit

 

History

History
154 lines (118 loc) · 3.26 KB

mqtt.md

File metadata and controls

154 lines (118 loc) · 3.26 KB

MQTT Topic

Node

NodeStatus

Topic: nodes/:id/status

Field Type Description
msg string Node Status Enum: online, offline, neterror
status object
status.lat string
status.lng string
status.alt string

NodeNetwork

Topic: nodes/:id/network

Field Type Description
delay number Network Delay [ms]
loss number packet loss (0~100)%

Plan

Running

Topic: plans/:id/running

If This plan not running:

{}

If This plan running:

{
  "files":{},
  "extra":{},
  "job":{
    "job_id":1,
    "files":{},
    "extra":{}
  }
}
Field Type Description
files map[string]string key/blob_id
extra map[string]string key/value
job Object This plan run log
job.job_id int64 plan_id + job_id == job.id
job.files map[string]string Job key/blob_id
job.extra map[string]string Job key/value

Term

Topic: plans/:id/term

Any data, NOTE: not json, may be plain

Notification

Topic: plans/:id/notification

{"time":1565413755,"level":1,"msg":""}
Field Type Description
time uint64 unix timestamp length 10
level uint 0-7 levelEnum
msg string message body

levelEnum: 0-7

level Name
0 Emergency
1 Alert
2 Critical
3 Error
4 Warn
5 Notice
6 Info
7 Debug

Reference: RFC5424

Dialog

Topic: plans/:id/dialog

Field Type Description
name string Opt: A title
message string Opt: A descriptive message
level string Opt: levelEnum
items array Opt: Items
items.name string Name
items.message string Opt: A descriptive message
items.level string Opt: levelEnum
buttons array Opt: Button Group
buttons.name string Button name
buttons.message string Send message payload
buttons.level string Opt: levelEnum

levelEnum : primary, success, info, warning, danger

Example 0: Clean Dialog

{}

Example 1: Check Form

{
  "name": "Checker ~",
  "message": "Not recommended",
  "level": "warning",
  "items": [
    {"name": "Check", "message": "check check", "level": "unkonw"},
    {"name": "Drone", "message": "ok", "level": "primary"},
    {"name": "Depot", "message": "ok", "level": "success"},
    {"name": "Weather: Wind speed", "message": "Strong wind", "level": "warning"},
    {"name": "Weather: Rain forecast", "message": "It is raining", "level": "danger"}
  ],
  "buttons": [
    {"name": "Cancel", "message": "cancel", "level": "primary"},
    {"name": "Confirm","message": "confirm", "level": "danger"}
  ]
}

Example 2: Ask Status

{
  "name": "ARE YOU OK ?",
  "buttons": [
    {"name": "Fine, thank you.", "message": "fine", "level": "primary"},
    {"name": "I feel bad.", "message": "bad", "level": "danger"}
  ]
}