Difference between revisions of "EIS Service Protocol"
Eric.liang (talk | contribs) |
Eric.liang (talk | contribs) |
||
Line 14: | Line 14: | ||
*Retained: 0 | *Retained: 0 | ||
*Payload: | *Payload: | ||
− | <div>{<br/> "susiCommData": {<br/> "devID":"<span style="color:#FF0000;"> | + | <div>{<br/> "susiCommData": {<br/> "devID":"<span style="color:#FF0000;">0005000E40000001</span>", // User Define, NULL-> Auto <span style="color:#FF0000;">UUID-like</span><br/> "hostname":"<span style="color:#FF0000;"><ServiceName></span>", // The same with Handler Name<br/> "sn":"0005000E40000001",<br/> "mac":"0005000E40000001",<br/> "version":"3.1.23", <br/> "type":"<span style="color:#0000FF;">Service</span>", // Fixed: Service<br/> "product":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "manufacture":"",<br/> "status":"1",<br/> "commCmd":1,<br/> "requestID":30002,<br/> "agentID":"0005000E40000001",<br/> "handlerName":"general",<br/> "sendTS":160081026<br/> }<br/>}</div> |
− | |||
== OS Info == | == OS Info == | ||
Line 26: | Line 25: | ||
*Payload: | *Payload: | ||
− | {<br/> "susiCommData":{<br/> "osInfo":<br/> {<br/> "cagentVersion":"3.1.23",<br/> "cagentType":"<span style="color:#FF0000;"><ServiceName></span>", // The same with Handler Name<br/> "osVersion":"SnailOS",<br/> "biosVersion":"",<br/> "platformName":"",<br/> "processorName":"SnailGW",<br/> "osArch":"SnailX86",<br/> "totalPhysMemKB":123,<br/> "macs":"000E40ABCDEF",<br/> "IP":"192.168.0.100"<br/> },<br/> "commCmd":116,<br/> "requestID":109,<br/> "agentID":" | + | {<br/> "susiCommData":{<br/> "osInfo":<br/> {<br/> "cagentVersion":"3.1.23",<br/> "cagentType":"<span style="color:#FF0000;"><ServiceName></span>", // The same with Handler Name<br/> "osVersion":"SnailOS",<br/> "biosVersion":"",<br/> "platformName":"",<br/> "processorName":"SnailGW",<br/> "osArch":"SnailX86",<br/> "totalPhysMemKB":123,<br/> "macs":"000E40ABCDEF",<br/> "IP":"192.168.0.100"<br/> },<br/> "commCmd":116,<br/> "requestID":109,<br/> "agentID":"0005000E40000001",<br/> "handlerName":"general",<br/> "sendTS":1466730390<br/> }<br/>} |
== Disconnect == | == Disconnect == | ||
Line 38: | Line 37: | ||
*Payload: | *Payload: | ||
− | {<br/> "susiCommData": {<br/> "devID":" | + | {<br/> "susiCommData": {<br/> "devID":"0005000E40000001",<br/> "hostname":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "sn":"0005000E40000001",<br/> "mac":"0005000E40000001",<br/> "version":"3.1.23",<br/> "type":"<span style="color:#0000FF;">Service</span>",<br/> "product":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "manufacture":"",<br/> "status":"0",<br/> "commCmd":1,<br/> "requestID":30002,<br/> "agentID":"0005000E40000001",<br/> "handlerName":"general",<br/> "sendTS":160081026<br/> }<br/>} |
== Info or Update Service's Capability == | == Info or Update Service's Capability == | ||
Line 52: | Line 51: | ||
Example: Service's Capability | Example: Service's Capability | ||
− | {<br/> "susiCommData":{<br/> "infoSpec": {<br/> "<span style="color:#FF0000;"><ServiceName></span>": {<br/> "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":""},<br/> {"n":"Humidity","u":"%","v":0.000000,"min":0.000000,"max":100.000000,"asm":"r","type":"d","rt":"ucum.%","st":"ipso","exten":""},<br/><span style="color:#FF0000;"> {"n":"SmartML", "sv":"<xml>", "asm":"rw", "format":"xml", "encoding":"base64"},<br/> {"n":"SmartData", "sv":"<json>", "asm":"r", "format":"json", "encoding":"base64"}</span><br/> ] | + | {<br/> "susiCommData":{<br/> "infoSpec": {<br/> "<span style="color:#FF0000;"><ServiceName></span>": {<br/> "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":""},<br/> {"n":"Humidity","u":"%","v":0.000000,"min":0.000000,"max":100.000000,"asm":"r","type":"d","rt":"ucum.%","st":"ipso","exten":""},<br/><span style="color:#FF0000;"> {"n":"SmartML", "sv":"<xml>", "asm":"rw", "format":"xml", "encoding":"base64"},<br/> {"n":"SmartData", "sv":"<json>", "asm":"r", "format":"json", "encoding":"base64"}</span><br/> ] |
− | }<br/> "bn":"Info"<br/> },<br/> "bn":<span style="color:#FF0000;">"<ServiceName></span>"<br/> }<br/> },<br/> "commCmd":2052,<br/> "requestID":2001,<br/> "agentID":" | + | }<br/> "bn":"Info"<br/> },<br/> "bn":<span style="color:#FF0000;">"<ServiceName></span>"<br/> }<br/> },<br/> "commCmd":2052,<br/> "requestID":2001,<br/> "agentID":"0005000E40000001",<br/> "handlerName":"general",<br/> "sendTS":160081024<br/> }<br/>} |
== Auto Update Sensor Data Value == | == Auto Update Sensor Data Value == | ||
Line 66: | Line 65: | ||
*Payload: | *Payload: | ||
− | { <br/> "susiCommData":{ <br/> "data":{ <br/> "<span style="color:#FF0000;"><ServiceName></span>":{ <br/> "Info":{ <br/> "e":[ <br/> <span style="color:#FF0000;">{"n":"SmartData", "sv":"<json>"}</span><br/> ]<br/> "bn":"Info"<br/> },<br/> "ver":1<br/> "bn":"<span style="color:#FF0000;"><ServiceName></span>"<br/> }<br/> },<br/> "commCmd":2055,<br/> "requestID":2001,<br/> "agentID":" | + | { <br/> "susiCommData":{ <br/> "data":{ <br/> "<span style="color:#FF0000;"><ServiceName></span>":{ <br/> "Info":{ <br/> "e":[ <br/> <span style="color:#FF0000;">{"n":"SmartData", "sv":"<json>"}</span><br/> ]<br/> "bn":"Info"<br/> },<br/> "ver":1<br/> "bn":"<span style="color:#FF0000;"><ServiceName></span>"<br/> }<br/> },<br/> "commCmd":2055,<br/> "requestID":2001,<br/> "agentID":"0005000E40000001",<br/> "handlerName":"general",<br/> "sendTS":160081031<br/> }<br/>} |
== Get Sensor Data == | == Get Sensor Data == | ||
Line 78: | Line 77: | ||
*Payload: | *Payload: | ||
− | { <br/> "susiCommData":{ <br/> "sessionID":"2746E3B65BAB115338B9668CDC5C35C4",<br/> "sensorIDList":{ <br/> "e":[ <br/> { <br/> "n":"<span style="color:#FF0000;">ServiceName/Info/SmartML</span>"<br/> }<br/> ]<br/> },<br/> "commCmd":523,<br/> "requestID":0,<br/> "agentID":"",<br/> "handlerName":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "sendTS":1466057267<br/> }<br/>} | + | { <br/> "susiCommData":{ <br/> "sessionID":"2746E3B65BAB115338B9668CDC5C35C4",<br/> "sensorIDList":{ <br/> "e":[ <br/> { <br/> "n":"<span style="color:#FF0000;">ServiceName/Info/SmartML</span>"<br/> }<br/> ]<br/> },<br/> "commCmd":523,<br/> "requestID":0,<br/> "agentID":"",<br/> "handlerName":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "sendTS":1466057267<br/> }<br/>} |
*Description: Agent will reply its data value. | *Description: Agent will reply its data value. | ||
Line 88: | Line 87: | ||
*Payload: | *Payload: | ||
− | { <br/> "susiCommData":{ <br/> "commCmd":524,<br/> "handlerName":"<ServiceName>",<br/> "sessionID":"2746E3B65BAB115338B9668CDC5C35C4",<br/> "sensorInfoList":{ <br/> "e":[ <br/> { <br/> "n":"<span style="color:#FF0000;"><ServiceName>/Info/SmartML</span>",<br/> <span style="color:#FF0000;">"sv":"<xml>",</span><br/> "StatusCode":200<br/> }<br/> ]<br/> }<br/> }<br/>} | + | { <br/> "susiCommData":{ <br/> "commCmd":524,<br/> "handlerName":"<ServiceName>",<br/> "sessionID":"2746E3B65BAB115338B9668CDC5C35C4",<br/> "sensorInfoList":{ <br/> "e":[ <br/> { <br/> "n":"<span style="color:#FF0000;"><ServiceName>/Info/SmartML</span>",<br/> <span style="color:#FF0000;">"sv":"<xml>",</span><br/> "StatusCode":200<br/> }<br/> ]<br/> }<br/> }<br/>} |
== Set Sensor Data == | == Set Sensor Data == | ||
Line 100: | Line 99: | ||
*Payload: | *Payload: | ||
− | { <br/> "susiCommData":{ <br/> "sessionID":"4DDF0B6DE2773176095F55E8C930507A", <br/> "commCmd":525, <br/> "requestID":0, <br/> "agentID":"", <br/> "handlerName":"<span style="color:#FF0000;"><ServiceName></span>", <br/> "sendTS":1466088605<br/> "sensorIDList":{ <br/> "e":[ <br/> { <br/> "sv":"<span style="color:#FF0000;"><xml></span>",<br/> "n":"<span style="color:#FF0000;"><ServiceName>/Info/SmartML</span>"<br/> }<br/> ]<br/> }<br/> }<br/>} | + | { <br/> "susiCommData":{ <br/> "sessionID":"4DDF0B6DE2773176095F55E8C930507A",<br/> "commCmd":525,<br/> "requestID":0,<br/> "agentID":"",<br/> "handlerName":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "sendTS":1466088605<br/> "sensorIDList":{ <br/> "e":[ <br/> { <br/> "sv":"<span style="color:#FF0000;"><xml></span>",<br/> "n":"<span style="color:#FF0000;"><ServiceName>/Info/SmartML</span>"<br/> }<br/> ]<br/> }<br/> }<br/>} |
*Description: Agent will reply accept this command | *Description: Agent will reply accept this command | ||
Line 120: | Line 119: | ||
*Payload: | *Payload: | ||
− | { <br/> "susiCommData":{ <br/> "commCmd":526,<br/> "handlerName":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "sessionID":"4DDF0B6DE2773176095F55E8C930507A",<br/> "sensorInfoList":{ <br/> "e":[ <br/> { <br/> "n":"<span style="color:#FF0000;"><ServiceName>/Info/SmartML</span>",<br/> "sv":"<span style="color:#FF0000;"><xml></span>",<br/> "StatusCode":<span style="color:#FF0000;">200</span><br/> }<br/> ]<br/> }<br/> }<br/>} | + | { <br/> "susiCommData":{ <br/> "commCmd":526,<br/> "handlerName":"<span style="color:#FF0000;"><ServiceName></span>",<br/> "sessionID":"4DDF0B6DE2773176095F55E8C930507A",<br/> "sensorInfoList":{ <br/> "e":[ <br/> { <br/> "n":"<span style="color:#FF0000;"><ServiceName>/Info/SmartML</span>",<br/> "sv":"<span style="color:#FF0000;"><xml></span>",<br/> "StatusCode":<span style="color:#FF0000;">200</span><br/> }<br/> ]<br/> }<br/> }<br/>} |
== EventNotify == | == EventNotify == | ||
Line 132: | Line 131: | ||
*Payload: | *Payload: | ||
− | { <br/> "susiCommData":{ <br/> "commCmd":2059,<br/> "requestID":2001,<br/> "agentID":" | + | { <br/> "susiCommData":{ <br/> "commCmd":2059,<br/> "requestID":2001,<br/> "agentID":"0005000E40000001",<br/> "handlerName":"general",<br/> "sendTS":1453356274,<br/> "eventnotify":{ <br/> "subtype":"predictError", #predictError/predictInfo<br/> "msg":"HDD smart 5 over the threshold",<br/> "severity":2,<br/> "handler":"MsgGen",<br/> "extMsg":{<br/> "predictMsg":{<br/> "health":"Sick",<br/> "suggestion1":"Please back up your HDD data. The HDD has the probability to break down in 30 days.",<br/> "deviceName":"ST9250315AS"<br/> },<br/> "alertMsg":{<br/> "warning":"Yes",<br/> "suggestion1":"Please lower the environment temperature under 40C.",<br/> "suggestion2":"Please make sure the cooling system is working properly.",<br/> "deviceName":"ST9250315AS"<br/> }<br/> }<br/> }<br/> }<br/>} |
Revision as of 09:04, 9 March 2017
Contents
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":"0005000E40000001", // User Define, NULL-> Auto <span style="color:#FF0000;">UUID-like</span>
"hostname":"<ServiceName>", // The same with Handler Name
"sn":"0005000E40000001",
"mac":"0005000E40000001",
"version":"3.1.23",
"type":"Service", // Fixed: Service
"product":"<ServiceName>",
"manufacture":"",
"status":"1",
"commCmd":1,
"requestID":30002,
"agentID":"0005000E40000001",
"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":"<ServiceName>", // The same with Handler Name
"osVersion":"SnailOS",
"biosVersion":"",
"platformName":"",
"processorName":"SnailGW",
"osArch":"SnailX86",
"totalPhysMemKB":123,
"macs":"000E40ABCDEF",
"IP":"192.168.0.100"
},
"commCmd":116,
"requestID":109,
"agentID":"0005000E40000001",
"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":"0005000E40000001",
"hostname":"<ServiceName>",
"sn":"0005000E40000001",
"mac":"0005000E40000001",
"version":"3.1.23",
"type":"Service",
"product":"<ServiceName>",
"manufacture":"",
"status":"0",
"commCmd":1,
"requestID":30002,
"agentID":"0005000E40000001",
"handlerName":"general",
"sendTS":160081026
}
}
Info or Update Service'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": {
"<ServiceName>": {
"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":"SmartML", "sv":"<xml>", "asm":"rw", "format":"xml", "encoding":"base64"},
{"n":"SmartData", "sv":"<json>", "asm":"r", "format":"json", "encoding":"base64"}
]
}
"bn":"Info"
},
"bn":"<ServiceName>"
}
},
"commCmd":2052,
"requestID":2001,
"agentID":"0005000E40000001",
"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":{
"<ServiceName>":{
"Info":{
"e":[
{"n":"SmartData", "sv":"<json>"}
]
"bn":"Info"
},
"ver":1
"bn":"<ServiceName>"
}
},
"commCmd":2055,
"requestID":2001,
"agentID":"0005000E40000001",
"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":"ServiceName/Info/SmartML"
}
]
},
"commCmd":523,
"requestID":0,
"agentID":"",
"handlerName":"<ServiceName>",
"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":"<ServiceName>",
"sessionID":"2746E3B65BAB115338B9668CDC5C35C4",
"sensorInfoList":{
"e":[
{
"n":"<ServiceName>/Info/SmartML",
"sv":"<xml>",
"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":{
"sessionID":"4DDF0B6DE2773176095F55E8C930507A",
"commCmd":525,
"requestID":0,
"agentID":"",
"handlerName":"<ServiceName>",
"sendTS":1466088605
"sensorIDList":{
"e":[
{
"sv":"<xml>",
"n":"<ServiceName>/Info/SmartML"
}
]
}
}
}
- Description: Agent will reply accept this command
- Type: Reply
- Direction: Agent -> Server
- Topic: /cagent/admin/<devID>/agentactionreq
- QoS: 0
- Retained: 0
- Payload:
{
"susiCommData":{
"commCmd":526,
"handlerName":"<ServiceName>",
"sessionID":"4DDF0B6DE2773176095F55E8C930507A",
"sensorInfoList":{
"e":[
{
"n":"<ServiceName>/Info/SmartML",
"StatusCode":202
}
]
}
}
}
- 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":"<ServiceName>",
"sessionID":"4DDF0B6DE2773176095F55E8C930507A",
"sensorInfoList":{
"e":[
{
"n":"<ServiceName>/Info/SmartML",
"sv":"<xml>",
"StatusCode":200
}
]
}
}
}
EventNotify
- Description:
- Type: Auto update
- Direction: Agent -> Server
- Topic: /cagent/admin/<devID>/eventnotify
- QoS: 0
- Retained: 0
- Payload:
{
"susiCommData":{
"commCmd":2059,
"requestID":2001,
"agentID":"0005000E40000001",
"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