EIS Service Protocol

From ESS-WIKI
Revision as of 04:45, 9 March 2017 by Eric.liang (talk | contribs) (Created page with "= Overview = :Introduction for "WISE-Snail communication protocol for EIS Service". WISEAgent communication protocol is base on standard MQTT protocol. We also define Advante...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

Introduction for "WISE-Snail communication protocol for EIS Service". WISEAgent communication protocol is base on standard MQTT protocol. We also define Advantech IoT Topic and message in JSON format. Follow standard to design our [Sensor Format in JSON ]

Protocol

Connect

  • Description: Agent Client sends the "Connect Info" to RMM Server for on-line notification.
  • Type: Info
  • Direction: Agent -> Server
  • Topic: /cagent/admin/<devID>/agentinfoack
  • QoS: 2
  • Retained: 0
  • Payload:
{
  "susiCommData": {
    	"devID":"0027000E40000001",     // <span style="color:#FF0000;">User Define</span>, NULL-> Auto <span style="color:#FF0000;">UUID-like</span>
    	"hostname":"<span style="color:#FF0000;"><ServiceName></span>",     // <span style="color:#FF0000;">The same with Handler Name</span> 
    	"sn":"0027000E40000001",
    	"mac":"0027000E40000001",
    	"version":"<span style="color:#000000;">3.1.23</span>",           
    	"type":"<span style="color:#FF0000;">Service</span>",               // <span style="color:#FF0000;">Fixed: Service</span>     
    	"product":"<span style="color:#FF0000;"><ServiceName></span>",
    	"manufacture":"",
    	"status":"1",
    	"commCmd":1,
    	"requestID":30002,
    	"agentID":"0027000E40000001",
    	"handlerName":"general",
    	"sendTS":160081026
   }
}

OS Info

  • Description: Agent Client sends the OS Info" to RMM Server for device OS information.
  • Type: Info
  • Direction: Agent -> Server
  • Topic: /cagent/admin/<devID>/agentactionreq
  • QoS: 0
  • Retained: 0
  • Payload:
{
  "susiCommData":{
     "osInfo":
     {
        "cagentVersion":"3.1.23",
        "cagentType":"<span style="color:#FF0000;"><ServiceName></span>",   // <span style="color:#FF0000;">The same with Handler Name</span>
        "osVersion":"SnailOS",
        "biosVersion":"",
        "platformName":"",
        "processorName":"SnailGW",
        "osArch":"SnailX86",
        "totalPhysMemKB":123,
        "macs":"000E40ABCDEF",
        "IP":"192.168.0.100"
     },
     "commCmd":116,
     "requestID":109,
     "agentID":"0027000E40000001",
     "handlerName":"general",
     "sendTS":1466730390
   }
}


Disconnect

  • Description: Agent Client sends the "Disconnect Info" to Server for off-line notification.
  • Type: Info
  • Direction: Agent -> Server
  • Topic: /cagent/admin/<devID>/agentinfoack
  • QoS: 2
  • Retained: 0
  • Payload:
{
  "susiCommData": {
    	"devID":"0027000E40000001",
    	"hostname":"<span style="color:#FF0000;"><ServiceName></span>"",
    	"sn":"0027000E40000001",
    	"mac":"0027000E40000001",
    	"version":"3.1.23",
    	"type":"<span style="color:#FF0000;">Service</span>",
    	"product":"<span style="color:#FF0000;"><ServiceName></span>",
    	"manufacture":"",
    	"status":"0",
    	"commCmd":1,
    	"requestID":30002,
    	"agentID":"0027000E40000001",
    	"handlerName":"general",
    	"sendTS":160081026
   }
}

Info or Update Device's Capability

  • Description: Agent will send it's capability to Server for description all resource.
  • Type: Auto update
  • Direction: Agent-> Server
  • Topic: /cagent/admin/<devID>/agentactionreq
  • QoS: 0
  • Retained: 0
  • Payload: 

Example: Service's Capability

{
  "susiCommData":{
    "infoSpec": {
        "<span style="color:#FF0000;"><ServiceName></span>": {
            "Info": {"e":[ {"n":"Temperature","u":"Cel","v":0.000000,"min":-100.000000,"max":200.000000,"asm":"r","type":"d","rt":"ucum.Cel","st":"ipso","exten":""},
                           {"n":"Humidity","u":"%","v":0.000000,"min":0.000000,"max":100.000000,"asm":"r","type":"d","rt":"ucum.%","st":"ipso","exten":""},
                           {"n":"GPIO1","u":"","bv":0,"min":0.000000,"max":1.000000,"asm":"r","type":"b","rt":"","st":"ipso","exten":""},
                           {"n":"GPIO2","u":"","bv":0,"min":0.000000,"max":1.000000,"asm":"r","type":"b","rt":"","st":"ipso","exten":""}
                          ],
            "bn":"Info"
            },
       "bn":"ServiceName"
       }
   },
   "commCmd":2052,
   "requestID":2001,
   "agentID":"0027000E40000001",
   "handlerName":"general",
   "sendTS":160081024
  }
}




Auto Update Sensor Data Value

  • Description: Agent will update latest value to server.
  • Type: Auto update
  • Direction: Agent-> Server
  • Topic: /cagent/admin/<devID>/deviceinfo
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "data":{  
        "SenHub":{  
           "SenData":{  
              "e":[  
                 {  
                    "n":"Temperature",
                    "v":1
                 },
                 {  
                    "n":"Humidity",
                    "v":57
                 },
                 {  
                    "n":"GPIO1",
                    "bv":0
                 },
                 {  
                    "n":"GPIO2",
                    "bv":0
                 }
              ],
              "bn":"SenData"
           },
           "ver":1
        }
     },
     "commCmd":2055,
     "requestID":2001,
     "agentID":"0017000E40000001",
     "handlerName":"general",
     "sendTS":160081031
  }
}

Get Sensor Data

  • Description: Server can send mqtt message to get sensor data value.
  • Type: Request
  • Direction: Server -> Agent
  • Topic: /cagent/admin/<devID>/agentcallbackreq
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "sessionID":"2746E3B65BAB115338B9668CDC5C35C4",
     "sensorIDList":{  
        "e":[  
           {  
              "n":"SenHub/Info/sw"
           }
        ]
     },
     "commCmd":523,
     "requestID":0,
     "agentID":"",
     "handlerName":"SenHub",
     "sendTS":1466057267
  }
}
  • Description: Agent will reply its data value.
  • Type: Reply
  • Direction: Agent -> Server
  • Topic: /cagent/admin/<devID>/agentactionreq
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "commCmd":524,
     "handlerName":"SenHub",
     "sessionID":"2746E3B65BAB115338B9668CDC5C35C4",
     "sensorInfoList":{  
        "e":[  
           {  
              "n":"/Info/sw",
              "sv":"1.0.00",
              "StatusCode":200
           }
        ]
     }
  }
}

Set Sensor Data

  • Description: Server can send mqtt message to set sensor data value.
  • Type: Request
  • Direction: Server -> Agent
  • Topic: /cagent/admin/<devID>/agentcallbackreq
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "sensorIDList":{  
        "e":[  
           {  
              "sv":"SenHub1",
              "n":"SenHub/Info/Name"
           }
        ]
     },
     "sessionID":"4DDF0B6DE2773176095F55E8C930507A",
     "commCmd":525,
     "requestID":0,
     "agentID":"",
     "handlerName":"SenHub",
     "sendTS":1466088605
  }
}
  • Description: Agent will reply its result.
  • Type: Reply
  • Direction: Agent -> Server
  • Topic: /cagent/admin/<devID>/agentactionreq
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "commCmd":526,
     "handlerName":"SenHub",
     "sessionID":"4DDF0B6DE2773176095F55E8C930507A",
     "sensorInfoList":{  
        "e":[  
           {  
              "n":"/Info/Name",
              "sv":"Success",
              "StatusCode":200
           }
        ]
     }
  }
}


EventNotify

  • Description: 
  • Type: Auto update
  • Direction: Agent -> Server
  • Topic: /cagent/admin/<devID>/eventnotify
  • QoS: ?
  • Retained: ?
  • Payload:
{  
   "susiCommData":{  
      "commCmd":2059,
      "requestID":2001,
      "agentID":"000014DAE996BE04",
      "handlerName":"general",
      "sendTS":1453356274,
      "eventnotify":{  
         "subtype":"predictError", #predictError/predictInfo
         "msg":"HDD smart 5 over the threshold",
         "severity":2,
         "handler":"MsgGen",
         "extMsg":{
            "predictMsg":{
               "health":"Sick",
               "suggestion1":"Please back up your HDD data. The HDD has the probability to break down in 30 days.",
               "deviceName":"ST9250315AS"
            },
            "alertMsg":{
               "warning":"Yes",
               "suggestion1":"Please lower the environment temperature under 40C.",
               "suggestion2":"Please make sure the cooling system is working properly.",
               "deviceName":"ST9250315AS"
            }
         }
      }
   }
}


severity:
     Severity_Emergency = 0,
     Severity_Alert     = 1,
     Severity_Critical  = 2,
     Severity_Error     = 3,
     Severity_Warning   = 4,
     Severity_Informational = 5,
     Severity_Debug     = 6,

subtype: 
     THRESHOLD_CHECK_INFO
     THRESHOLD_CHECK_ERROR

Service Discover

Interactive Communication

  • Description: Request Communication protocol to others service (agent)
  • Type: Request
  • Direction: Service-1 -> Service-2
  • Topic: /cagent/admin/<devID>/Input
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "Input":{  
        "e":[{"n":"Name","sv":"disk2"},
             {"n":"SMART1","v":68},
             {"n":"SMART2","v":10}]
        ]
     },
     "sessionID":"4DDF0B6DE2773176095F55E8C930507A",
     "commCmd":525,
     "requestID":0,
     "agentID":"",
     "handlerName":"ML",
     "sendTS":1466088605
  }
}
  • Description: Service will response
  • Type: Request
  • Direction: Service-2 -> Service-1
  • Topic: /cagent/admin/<devID>/Output
  • QoS: 0
  • Retained: 0
  • Payload:
{  
  "susiCommData":{  
     "Output":{
               "e":[{"n":"Name","sv":"disk2"},
                    {"n":"Health","bv":0}],
       "bn":"Output"
     },
     "sessionID":"4DDF0B6DE2773176095F55E8C930507A",
     "commCmd":2055,
     "requestID":2001,
     "agentID":"0085458221447854589",
     "handlerName":"general",
     "sendTS":160081031
  }
}

Action

  • Description: 
  • Type: ?
  • Direction: Agent -> Server
  • Topic: ????
  • QoS: ?
  • Retained: ?
  • Payload:?
???