WISE-PaaS/2.0 Protocol
From ESS-WIKI
Revision as of 08:14, 29 December 2017 by Eric.liang (talk | contribs)
Contents
Overview
- Introduction for "EI-Agent to WISE-PaaS-2.0 communication protocol". 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 WISE-PaaS-2.0 Server for on-line notification.
- Type: Info
- Direction: Agent -> Server
- Topic: /wisepaas/device/00000001-0000-0000-0000-001077C25002/agentinfoack
- QoS: 0
- Retained: 0
- Payload:
{ "content": { "parentID": "00000001-0000-0000-8888-0034115521a4", "hostname": "ESL-Tag-5002", "sn": "0000001077C25002", "mac": "0000001077C25002", "version": "1.0.7.252316989", "type": "SenHub", "product": "ESL-Tag", "manufacture": "", "account": "", "passwd": "", "status": 1, "tag": "ESL" }, "commCmd": 1, "agentID": "00000001-0000-0000-0000-001077C25002", "handlerName": "SenHub", "sendTS": { "$date": 1513232002117 } }
OS Info
- Description: Agent Client sends the OS Info" to RMM Server for device OS information.
- Type: Info
- Direction: Agent -> Server
- Topic: /wisepaas/RMM/00000001-0000-0000-0000-999BAB6F4000/agentactionack
- QoS: 0
- Retained: 0
- Payload:
{ "content": { "cagentVersion": "1.0.6.0", "cagentType": "IPC", "osVersion": "Windows Embedded Standard", "biosVersion": "V1.10", "platformName": "ARK-DS762", "processorName": "Intel(R) Core(TM) i7-3610QE CPU @ 2.30GHz", "osArch": "X64", "totalPhysMemKB": 1973544, "macs": "00:0B:AB:6F:37:52", "IP": "172.22.12.84" }, "commCmd": 116, "agentID": "00000001-0000-0000-0000-999BAB6F4000", "handlerName": "general", "sendTS": { "$date": 1510044371812 } }
Disconnect
- Description: Agent Client sends the "Disconnect Info" to Server for off-line notification.
- Type: Info
- Direction: Agent -> Server
- Topic: /wisepaas/device/00000001-0000-0000-0000-001077C25002/agentinfoack
- QoS: 0
- Retained: 0
- Payload:
{ "content": { "parentID": "00000001-0000-0000-8888-0034115521a4", "hostname": "ESL-Tag-5002", "sn": "0000001077C25002", "mac": "0000001077C25002", "version": "1.0.7.252316989", "type": "SenHub", "product": "ESL-Tag", "manufacture": "", "account": "", "passwd": "", "status": 0, "tag": "ESL" }, "commCmd": 1, "agentID": "00000001-0000-0000-0000-001077C25002", "handlerName": "SenHub", "sendTS": { "$date": 1513232002117 } }
Will Message
- Description: While Client lost connection or keep-alive timeout, the will message will send to the client that subscribe the topic
- Type: Info
- Direction: Agent -> Broker
- Topic: /wisepaas/device/00000001-0000-0000-0000-999BAB6F4000/willmessage
- QoS: 0
- Retained: 0
- Payload:
{ "content": { "parentID": "", "hostname": "chihyu-PC", "sn": "000BAB578433", "mac": "000BAB6F3752", "version": "1.0.6.0", "type": "IPC", "product": "", "manufacture": "", "account": "", "passwd": "", "status": 0, "tag": "RMM" }, "commCmd": 1, "agentID": "00000001-0000-0000-0000-999BAB6F4000", "handlerName": "general", "sendTS": { "$date": 1510044370561 } }
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: /wisepaas/RMM/00000001-0000-0000-0000-999BAB6F4000/agentactionack
- QoS: 0
- Retained: 0
- Payload:
Example: HDD PMQ Capability
{ "content": { "HDD_PMQ": { "info": { "bn": "info", "e": [ { "n": "type", "sv": "PMQ", "asm": "r" }, { "n": "name", "sv": "HDD_PMQ", "asm": "r" }, { "n": "description", "sv": "This service is HDD PMQ Service", "asm": "r" }, { "n": "version", "sv": "1.0.2", "asm": "r" }, { "n": "confidence level", "v": 83.12, "asm": "r", "u": "%" }, { "n": "update", "sv": null, "asm": "rw" }, { "n": "eventNotify", "bv": true, "asm": "r" } ] }, "action": { "bn": "action", "e": [ { "n": "a1", "bv": false, "asm": "r", "msg": "Lower system temperature ( < 40 Celsius )." }, { "n": "a2", "bv": false, "asm": "r", "msg": "Backup data to new disk." }, { "n": "a3", "bv": false, "asm": "r", "msg": "Check power source." }, { "n": "ActionLog", "sv": null, "asm": "r" } ] }, "param": { "bn": "param", "e": [ { "n": "report interval", "v": 60, "max": 3600, "min": 10, "asm": "rw", "u": "sec" }, { "n": "enable report", "bv": true, "asm": "rw" } ] }, "opTS": { "$date": 1510044371815 } } }, "commCmd": 2052, "agentID": "00000001-0000-0000-0000-999BAB6F4000", "handlerName": "general", "sendTS": { "$date": 1510044371815 } }
Auto Update Data Value
- Description: Agent will update latest value to server.
- Type: Auto update
- Direction: Agent-> Server
- Topic: /wisepaas/RMM/00000001-0000-0000-0000-999BAB6F4000/agentactionack
- QoS: 0
- Retained: 0
- Payload:
{ "content": { "HDD_PMQ": { "info": { "bn": "info", "e": [ { "n": "version", "sv": "1.0.2" }, { "n": "confidence level", "v": 89.6, "asm": "r", "u": "%" } ] }, "param": { "bn": "param", "e": [ { "n": "report interval", "v": 30 }, { "n": "enable report", "bv": true } ] }, "opTS": { "$date": 1510044371815 } } }, "commCmd": 2055, "agentID": "00000001-0000-0000-0000-999BAB6F4000", "handlerName": "general", "sendTS": { "$date": 1510044371815 } }
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:
// WISE-PaaS/2.0 { "content": { "catalogID": 4 }, "commCmd": 2051, "agentID": "", "handlerName": "general", "sendTS": { "$date": 1512550184369 } } { "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 Data
- Description: Server can send mqtt message to set sensor data value.
- Type: Request
- Direction: Server -> Agent
- Topic:/wisepaas/RMM/00000001-0000-0000-0000-000babbb7ef3/agentactionreq
- QoS: 0
- Retained: 0
- Payload:
{ "agentId": "00000001-0000-0000-0000-000babbb7ef3", "handlerName": "SenHub", "commCmd": 525, "sessionID": "B303E3DE2C062B8C148DAEF2D3F6C723", "content": { "sensorIDList": { "e": [{"n": "SenHub/Action/image-update","sv":"<BASE64>"}] } } }
- Description: Agent will reply its result. There are have two status 1. status code: 202 -> device receive this command, 2. code: 200 -> succesful to set, code: is not 200 => Fail to set
- Type: Reply
- Direction: Agent -> Server
- Topic: /wisepaas/RMM/00000001-0000-0000-0000-000babbb7ef3/agentactionreq
- QoS: 0
- Retained: 0
- Payload:
Accept 1:
{ "susiCommData":{ "commCmd":526, "handlerName":"SenHub", "sessionID":"B303E3DE2C062B8C148DAEF2D3F6C723", "sensorInfoList":{ "e":[ { "n":"Accept", "StatusCode":202} ] } } }
Success:
{ "susiCommData":{ "commCmd":526, "handlerName":"SenHub", "sessionID":"B303E3DE2C062B8C148DAEF2D3F6C723", "sensorInfoList":{ "e":[ { "n":"SenHub/Action/image-update", "StatusCode":200 } ] } } }