EI-Connect to EI-PaaS Protocol
From ESS-WIKI
Contents
Overview
- Introduction for "EI-Agent communication protocol". EI-Agent 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: /wisepaas/<tenantId>/device/<agentId>/agentinfoack
- QoS: 2
- Retained: 0
- Payload:
{ "content":{ "parentID":"", "hostname":"WISECoreSample", "sn":"305A3A77B1CC", "mac":"305A3A77B1CC", "version":"1.0.1", "type":"IPC", "product":"Sample", "manufacture":"Sample", "account":"", "passwd":"", "status":1, "tag":"device" }, "commCmd":1, "agentID":"00000001-0000-0000-0000-305A3A770020", "handlerName":"general", "sendTS":{ "$date":1504508254652 } }
OS Info
- Description: Agent Client sends the OS Info" to RMM Server for device OS information.
- Type: Info
- Direction: Agent -> Server
- Topic: /wisepaas/<tenantId>/device/<agentId>/agentactionack
- QoS: 0
- Retained: 0
- Payload:
{ "content":{ "cagentVersion":"3.1.23", "cagentType":"IoTGW", "osVersion":"SnailOS", "biosVersion":"", "platformName":"", "processorName":"Snail", "osArch":"Snail", "totalPhysMemKB":123, "macs":"F4B85E4A9B9E", "IP":"" }, "commCmd":116, "agentID":"00000001-0000-0000-0000-305A3A770020", "handlerName":"general", "sendTS":{ "$date":1466730390 } }
Disconnect
- Description: Agent Client sends the "Disconnect Info" to Server for off-line notification.
- Type: Info
- Direction: Agent -> Server
- Topic: /wisepaas/<tenantId>/device/<agentId>/agentinfoack
- QoS: 2
- Retained: 0
- Payload:
{ "content":{ "parentID":"", "hostname":"WISECoreSample", "sn":"305A3A77B1CC", "mac":"305A3A77B1CC", "version":"1.0.1", "type":"IPC", "product":"Sample", "manufacture":"Sample", "account":"", "passwd":"", "status":0, "tag":"device" }, "commCmd":1, "agentID":"00000001-0000-0000-0000-305A3A770020", "handlerName":"general", "sendTS":{ "$date":1504508254652 } }
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/<tenantId>/device/<agentId>/willmessage
- QoS: 0
- Retained: 0
- Payload:
{ "content":{ "parentID":"", "hostname":"WISECoreSample", "sn":"305A3A77B1CC", "mac":"305A3A77B1CC", "version":"1.0.1", "type":"IPC", "product":"Sample", "manufacture":"Sample", "account":"", "passwd":"", "status":0, "tag":"device" }, "commCmd":1, "agentID":"00000001-0000-0000-0000-305A3A770020", "handlerName":"general", "sendTS":{ "$date":1504514942534 } }
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: SenHub's Capability
{ "susiCommData":{ "infoSpec": { "SenHub": { "SenData": {"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":"SenData" }, "Info": {"e":[{"n":"Name","sv":"SenHub1","asm":"rw"}, {"n":"sw","sv":"1.0.00","asm":"r"} ], "bn":"Info" }, "Net": {"e":[{"n":"sw","sv":"1.0.00","asm":"r"}, {"n":"Neighbor","sv":"","asm":"r"}, {"n":"Health","v":"100.000000","asm":"r"} ], "bn":"Net" } } }, "commCmd":2052, "requestID":2001, "agentID":"0017000E40000001", "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: /wisepaas/<tenantId>/device/<agentId>/agentactionreq
- QoS: 0
- Retained: 0
- Payload:
{ "agentId": "00000001-0000-0000-0000-305A3A770020", "handlerName": "SenHub", "commCmd": 523, "content": { "sensorIDList": { "e": [ {"n": "SenHub/Info/sw"} ] }, "sessionID": "2A1FBCA22A64C2E27341DB5FA7E83FBF" } }
- Description: Agent will reply its data value.
- Type: Reply
- Direction: Agent -> Server
- Topic: /cagent/admin/<devID>/agentactionreq
- QoS: 0
- Retained: 0
- Payload:
{ "agentID": "00000001-0000-0000-0000-305A3A770020", "commCmd": 524, "handlerName": "SenHub", "content": { "sessionID": "2746E3B65BAB115338B9668CDC5C35C4", "sensorIDList": { "e": [ { "n": "/Info/sw", "v": "1.0.00", "StatusCode": 200 } ] } }, "sendTS": {"$date": 1499328934471} }
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":"SenHub1", "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": "predict", "msg": "Hard disk long-term operation in more than 40°C or vibration environment.", "severity": 4, "handler": "HDD_PMQ", "extMsg": { "n": "WDC WD3200BUCT-63TWBY0", "eventID":"e2" } } } }
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