Difference between revisions of "Connectivity/AdvHeartBeat"
From ESS-WIKI
Eric.liang (talk | contribs) |
Eric.liang (talk | contribs) |
||
Line 1: | Line 1: | ||
<parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black"> | <parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black"> | ||
=== This page contains the following errors: === | === This page contains the following errors: === | ||
− | <div style="font-family:monospace;font-size:12px">error on line 215 at column | + | <div style="font-family:monospace;font-size:12px">error on line 215 at column 251: attributes construct error </div> |
=== Below is a rendering of the page up to the first error. === | === Below is a rendering of the page up to the first error. === | ||
</parsererror> | </parsererror> | ||
= AdvHeartBeat Protocol = | = AdvHeartBeat Protocol = | ||
− | == < | + | == AdvHeartBeat Topic & Payload == |
+ | <pre>Type: Response | ||
+ | Direction: Agent -> Server | ||
+ | Topic: /cagent/admin/<devID>/notify | ||
+ | QoS: 0 | ||
+ | Retained: 0 | ||
+ | Payload: ~ 35 character | ||
+ | {"hb":{"devID":"0017000E40000001"}} | ||
+ | </pre> | ||
− | + | == Client Site == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
:Agent needs send "AdvHeartBeat" message ( refer to AdvHeartBeat Topic & Payload ) by period as below picture. | :Agent needs send "AdvHeartBeat" message ( refer to AdvHeartBeat Topic & Payload ) by period as below picture. | ||
Line 22: | Line 22: | ||
[[File:AdvHeartBeat-FC-1.jpg|500x400px|AdvHeartBeat Protocol]] | [[File:AdvHeartBeat-FC-1.jpg|500x400px|AdvHeartBeat Protocol]] | ||
− | == | + | == Server Site == |
#Server would send "Get Capability" and "Change AdvHeartBeat sending rate" after receiving a "Connect Info" message. | #Server would send "Get Capability" and "Change AdvHeartBeat sending rate" after receiving a "Connect Info" message. | ||
Line 32: | Line 32: | ||
##Server sends a re-connect message to this device. | ##Server sends a re-connect message to this device. | ||
− | == | + | == Re-Connect Message == |
:If Server aware any problem of a device's status/information. Server will send a "Re-Connect" Message to Agent. Agent will send a "Connect Info" to Server after receiving a re-connect message. You can refer below for detail. | :If Server aware any problem of a device's status/information. Server will send a "Re-Connect" Message to Agent. Agent will send a "Connect Info" to Server after receiving a re-connect message. You can refer below for detail. | ||
[[File:AdvHeartBeat-FC-2.jpg|800x500px|AdvHeartBeat Protocol]] | [[File:AdvHeartBeat-FC-2.jpg|800x500px|AdvHeartBeat Protocol]] | ||
− | + | <pre>Description: Server sends "Re-Connect" message for asking agent re-send its "Connect Info". | |
− | + | Type: Request | |
− | + | Direction: Server -> Agent | |
− | + | Topic: /cagent/admin/<devID>/agentcallbackreq | |
− | + | QoS: 0 | |
− | + | Retained: 0 | |
− | + | Payload: | |
− | + | { | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
"susiCommData": { | "susiCommData": { | ||
− | + | "commCmd": 125, | |
− | + | "handlerName": "general", | |
− | + | "response": { | |
− | + | "statuscode": 4, | |
− | + | "msg": "Reconnect" | |
− | + | } | |
− | + | } | |
− | + | } | |
− | + | </pre> | |
− | + | <pre>Description: Agent will send "Connect Info" after receiving a "Re-Connect" message. | |
− | + | Type: Response | |
− | + | Direction: Agent -> Server | |
− | + | Topic: /cagent/admin/<devID>/agentinfoack | |
− | + | QoS: 2 | |
− | + | Retained: 0 | |
− | + | Payload: | |
+ | { | ||
+ | "susiCommData": { | ||
+ | "devID":"0017000E40000001", | ||
+ | "hostname":"AAA", | ||
+ | "sn":"0017000E40000001", | ||
+ | "mac":"0017000E40000001", | ||
+ | "version":"3.1.23", | ||
+ | "type":"SenHub", | ||
+ | "product":"WISE-1020", | ||
+ | "manufacture":"", | ||
+ | "status":"1", | ||
+ | "commCmd":1, | ||
+ | "requestID":30002, | ||
+ | "agentID":"0017000E40000001", | ||
+ | "handlerName":"general", | ||
+ | "sendTS":160081026 | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
− | == | + | == Connect Info == |
Agent Client sends the "Connect Info" to Server for on-line notification. Server would send "Get Capability" to get capability of this agent device and "Change AdvHeartBeat rate" to sync with System's sending rate. | Agent Client sends the "Connect Info" to Server for on-line notification. Server would send "Get Capability" to get capability of this agent device and "Change AdvHeartBeat rate" to sync with System's sending rate. | ||
[[File:AdvHeartBeat-FC-6.jpg|800x400px|Agent Connect Info]] | [[File:AdvHeartBeat-FC-6.jpg|800x400px|Agent Connect Info]] | ||
− | + | <pre>Description: gent Client sends the "Connect Info" to Server for on-line notification. | |
− | + | Type: Info | |
− | + | Direction: Agent -> Server | |
− | + | Topic: /cagent/admin/<devID>/agentinfoack | |
− | + | QoS: 2 | |
− | + | Retained: 0 | |
− | + | Payload: | |
− | + | { | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
"susiCommData": { | "susiCommData": { | ||
"devID":"0017000E40000001", | "devID":"0017000E40000001", | ||
Line 264: | Line 111: | ||
"sendTS":160081026 | "sendTS":160081026 | ||
} | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Get Capability == | ||
+ | |||
+ | Server will send a "Get Capability" message to Agent after receiving a "Connect Info" message.<br/>Agent will send back below messages when receiving a "Get Capability" message. | ||
+ | |||
+ | #OS Info | ||
+ | #All handler's capability ( ex: HWM, KVM, HDD, IoTGW...) | ||
+ | #All SenHub's "Connect Info" message. ( Send by IoTGWHandler ) | ||
+ | #Update the latest data of IoTGW ( Update by IoTGWHandler ) | ||
+ | |||
+ | [[File:AdvHeartBeat-FC-3.jpg|500x600px|Get Agent's Capability]] | ||
+ | <pre>Description: Server will send a "Get Capability" message to Agent after receiving a "Connect Info" message | ||
+ | Type: Request | ||
+ | Direction: Server -> Agent | ||
+ | Topic: /cagent/admin/<agentID>/agentcallbackreq | ||
+ | QoS: 0 | ||
+ | Retained: 0 | ||
+ | Payload: | ||
+ | { | ||
+ | "susiCommData": { | ||
+ | "requestID":1001, | ||
+ | "catalogID": 4, | ||
+ | "commCmd":2051, | ||
+ | "handlerName":"general" | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | <pre>Description: Agent will send back OS Info to Server after receiving "Get Capability" message. | ||
+ | Note: This feature will be implemented in version 3.2. | ||
+ | Type: Response | ||
+ | Direction: Agent -> Server | ||
+ | Topic: /cagent/admin/<devID>/agentactionreq | ||
+ | QoS: 0 | ||
+ | Retained: 0 | ||
+ | Payload: | ||
+ | { | ||
+ | "susiCommData":{ | ||
+ | "osInfo": { | ||
+ | "cagentVersion":"3.1.23", | ||
+ | "cagentType":"IoTGW", | ||
+ | "osVersion":"SnailOS", | ||
+ | "biosVersion":"", | ||
+ | "platformName":"", | ||
+ | "processorName":"SnailGW", | ||
+ | "osArch":"SnailX86", | ||
+ | "totalPhysMemKB":123, | ||
+ | "macs":"000E40ABCDEF", | ||
+ | "IP":"192.168.0.100" | ||
+ | }, | ||
+ | "commCmd":116, | ||
+ | "requestID":109, | ||
+ | "agentID":"0000000E40ABCDEF", | ||
+ | "handlerName":"general", | ||
+ | "sendTS":1466730390 | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | <pre>Description: Agent will send all handlers' capability to server. | ||
+ | Type: Response | ||
+ | Direction: Agent -> Server | ||
+ | Topic: /cagent/admin/<agentID>/agentactionreq | ||
+ | QoS: 0 | ||
+ | Retained: 0 | ||
+ | Payload: ( ex: HWM ) | ||
+ | { | ||
+ | "susiCommData": { | ||
+ | "infoSpec": { | ||
+ | "HWM": { | ||
+ | "e": [ | ||
+ | {"n": "v01","type": "volt","u": "V","max": 20,"min": 10}, | ||
+ | {"n": "v02","type": "volt","u": "V","max": 20,"min": 10}, | ||
+ | {"n": "t01","type": "temp","u": "Cel","max": 100,"min": 10}, | ||
+ | {"n": "V143360","type": "current","u": "A","max": 100,"min": 10} | ||
+ | ], | ||
+ | "bn": "HWM" | ||
+ | }, | ||
+ | "requestID": 2001, | ||
+ | "commCmd": 2052, | ||
+ | "catalogID": 4, | ||
+ | "agentID": "000014DAE996BE04", | ||
+ | "sendTS": 1417000000004, | ||
+ | "handlerName": "general" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | <pre>Description: IoTGW Handler will update latest value of IoTGW. | ||
+ | Type: Response | ||
+ | Direction: Agent -> Server | ||
+ | Topic: /cagent/admin/<devID>/deviceinfo | ||
+ | QoS: 0 | ||
+ | Retained: 0 | ||
+ | Payload: | ||
+ | { | ||
+ | "susiCommData":{ | ||
+ | "data": { | ||
+ | "IoTGW": { | ||
+ | "WSN": { | ||
+ | "WSN0": { | ||
+ | "Info":{ | ||
+ | "e":[ | ||
+ | {"n":"SenHubList","sv":"0017000E40000000,0017000E40000001"}, | ||
+ | {"n":"Neighbor","sv":"0017000E40000000,0017000E40000001"}, | ||
+ | {"n":"Name","sv":"WSN0"}, | ||
+ | {"n":"Health","v":"100.000000"}, | ||
+ | {"n":"sw","sv":"1.2.1.12"}, | ||
+ | {"n":"reset","bv":"0"} | ||
+ | ], | ||
+ | "bn":"Info" | ||
+ | }, | ||
+ | "bn":"0007000E40ABCDEF", | ||
+ | "ver":1 | ||
+ | }, | ||
+ | "bn":"WSN" | ||
+ | }, | ||
+ | "ver":1 | ||
+ | } | ||
+ | }, | ||
+ | "commCmd":2055, | ||
+ | "requestID":2001, | ||
+ | "agentID":"0000000E40ABCDEF", | ||
+ | "handlerName":"general", | ||
+ | "sendTS":160081025 | ||
} | } | ||
+ | } | ||
+ | </pre> | ||
+ | <pre>Description: IoTGW Handler will send "Connect Info" for all "SenHub" devices. | ||
+ | Type: Response | ||
+ | Direction: Agent -> Server | ||
+ | Topic: /cagent/admin/<devID>/agentinfoack | ||
+ | QoS: 0 | ||
+ | Retained: 0 | ||
+ | Payload: | ||
+ | { | ||
+ | "susiCommData": { | ||
+ | "devID":"0017000E40000001", | ||
+ | "hostname":"AAA", | ||
+ | "sn":"0017000E40000001", | ||
+ | "mac":"0017000E40000001", | ||
+ | "version":"3.1.23", | ||
+ | "type":"SenHub", | ||
+ | "product":"WISE-1020", | ||
+ | "manufacture":"", | ||
+ | "status":"1", | ||
+ | "commCmd":1, | ||
+ | "requestID":30002, | ||
+ | "agentID":"0017000E40000001", | ||
+ | "handlerName":"general", | ||
+ | "sendTS":160081026 | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
= Parameters of "AdvHeartBeat Protocol" = | = Parameters of "AdvHeartBeat Protocol" = | ||
− | == | + | == Sending Rate == |
− | + | <pre> Unit: second | |
− | + | Default: 60 | |
− | + | Range: 1 ~ 0xFFFFFFFF | |
− | + | -1 => Agent doesn't send "AdvHeartBeat" message | |
− | + | </pre> | |
− | == | + | == Query parameters of "AdvHeartBeat" == |
Revision as of 10:47, 29 November 2016
<parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black">
Contents
This page contains the following errors:
error on line 215 at column 251: attributes construct error
Below is a rendering of the page up to the first error.
</parsererror>
AdvHeartBeat Protocol
AdvHeartBeat Topic & Payload
Type: Response Direction: Agent -> Server Topic: /cagent/admin/<devID>/notify QoS: 0 Retained: 0 Payload: ~ 35 character {"hb":{"devID":"0017000E40000001"}}
Client Site
- Agent needs send "AdvHeartBeat" message ( refer to AdvHeartBeat Topic & Payload ) by period as below picture.
Server Site
- Server would send "Get Capability" and "Change AdvHeartBeat sending rate" after receiving a "Connect Info" message.
- Server updates latest update time after receiving a AdvHeartBeat message with its AdvHeartBeat Table( NoSQL ).
- Server checks update time of AdvHeartBeat Table only.
- If the latest update time is over timeout ( Note: This value is depend on Server. Recommend: 3 x send rate => 3 x 60 = 180 sec => tolerate drop 2 AdvHeartBeat MSG ).
- If ( timeout & status is connected ) => changes status to disconnect & send a "Re-Connect" message to this device
- If there is latest AdvHeartBeat message in "AdvHeartBeat Table" but there is not device information in device list table ( SQL ).
- Server sends a re-connect message to this device.
Re-Connect Message
- If Server aware any problem of a device's status/information. Server will send a "Re-Connect" Message to Agent. Agent will send a "Connect Info" to Server after receiving a re-connect message. You can refer below for detail.
Description: Server sends "Re-Connect" message for asking agent re-send its "Connect Info". Type: Request Direction: Server -> Agent Topic: /cagent/admin/<devID>/agentcallbackreq QoS: 0 Retained: 0 Payload: { "susiCommData": { "commCmd": 125, "handlerName": "general", "response": { "statuscode": 4, "msg": "Reconnect" } } }
Description: Agent will send "Connect Info" after receiving a "Re-Connect" message. Type: Response Direction: Agent -> Server Topic: /cagent/admin/<devID>/agentinfoack QoS: 2 Retained: 0 Payload: { "susiCommData": { "devID":"0017000E40000001", "hostname":"AAA", "sn":"0017000E40000001", "mac":"0017000E40000001", "version":"3.1.23", "type":"SenHub", "product":"WISE-1020", "manufacture":"", "status":"1", "commCmd":1, "requestID":30002, "agentID":"0017000E40000001", "handlerName":"general", "sendTS":160081026 } }
Connect Info
Agent Client sends the "Connect Info" to Server for on-line notification. Server would send "Get Capability" to get capability of this agent device and "Change AdvHeartBeat rate" to sync with System's sending rate.
Description: gent Client sends the "Connect Info" to Server for on-line notification. Type: Info Direction: Agent -> Server Topic: /cagent/admin/<devID>/agentinfoack QoS: 2 Retained: 0 Payload: { "susiCommData": { "devID":"0017000E40000001", "hostname":"AAA", "sn":"0017000E40000001", "mac":"0017000E40000001", "version":"3.1.23", "type":"SenHub", "product":"WISE-1020", "manufacture":"", "status":"1", "commCmd":1, "requestID":30002, "agentID":"0017000E40000001", "handlerName":"general", "sendTS":160081026 } }
Get Capability
Server will send a "Get Capability" message to Agent after receiving a "Connect Info" message.
Agent will send back below messages when receiving a "Get Capability" message.
- OS Info
- All handler's capability ( ex: HWM, KVM, HDD, IoTGW...)
- All SenHub's "Connect Info" message. ( Send by IoTGWHandler )
- Update the latest data of IoTGW ( Update by IoTGWHandler )
Description: Server will send a "Get Capability" message to Agent after receiving a "Connect Info" message Type: Request Direction: Server -> Agent Topic: /cagent/admin/<agentID>/agentcallbackreq QoS: 0 Retained: 0 Payload: { "susiCommData": { "requestID":1001, "catalogID": 4, "commCmd":2051, "handlerName":"general" } }
Description: Agent will send back OS Info to Server after receiving "Get Capability" message. Note: This feature will be implemented in version 3.2. Type: Response Direction: Agent -> Server Topic: /cagent/admin/<devID>/agentactionreq QoS: 0 Retained: 0 Payload: { "susiCommData":{ "osInfo": { "cagentVersion":"3.1.23", "cagentType":"IoTGW", "osVersion":"SnailOS", "biosVersion":"", "platformName":"", "processorName":"SnailGW", "osArch":"SnailX86", "totalPhysMemKB":123, "macs":"000E40ABCDEF", "IP":"192.168.0.100" }, "commCmd":116, "requestID":109, "agentID":"0000000E40ABCDEF", "handlerName":"general", "sendTS":1466730390 } }
Description: Agent will send all handlers' capability to server. Type: Response Direction: Agent -> Server Topic: /cagent/admin/<agentID>/agentactionreq QoS: 0 Retained: 0 Payload: ( ex: HWM ) { "susiCommData": { "infoSpec": { "HWM": { "e": [ {"n": "v01","type": "volt","u": "V","max": 20,"min": 10}, {"n": "v02","type": "volt","u": "V","max": 20,"min": 10}, {"n": "t01","type": "temp","u": "Cel","max": 100,"min": 10}, {"n": "V143360","type": "current","u": "A","max": 100,"min": 10} ], "bn": "HWM" }, "requestID": 2001, "commCmd": 2052, "catalogID": 4, "agentID": "000014DAE996BE04", "sendTS": 1417000000004, "handlerName": "general" } } }
Description: IoTGW Handler will update latest value of IoTGW. Type: Response Direction: Agent -> Server Topic: /cagent/admin/<devID>/deviceinfo QoS: 0 Retained: 0 Payload: { "susiCommData":{ "data": { "IoTGW": { "WSN": { "WSN0": { "Info":{ "e":[ {"n":"SenHubList","sv":"0017000E40000000,0017000E40000001"}, {"n":"Neighbor","sv":"0017000E40000000,0017000E40000001"}, {"n":"Name","sv":"WSN0"}, {"n":"Health","v":"100.000000"}, {"n":"sw","sv":"1.2.1.12"}, {"n":"reset","bv":"0"} ], "bn":"Info" }, "bn":"0007000E40ABCDEF", "ver":1 }, "bn":"WSN" }, "ver":1 } }, "commCmd":2055, "requestID":2001, "agentID":"0000000E40ABCDEF", "handlerName":"general", "sendTS":160081025 } }
Description: IoTGW Handler will send "Connect Info" for all "SenHub" devices. Type: Response Direction: Agent -> Server Topic: /cagent/admin/<devID>/agentinfoack QoS: 0 Retained: 0 Payload: { "susiCommData": { "devID":"0017000E40000001", "hostname":"AAA", "sn":"0017000E40000001", "mac":"0017000E40000001", "version":"3.1.23", "type":"SenHub", "product":"WISE-1020", "manufacture":"", "status":"1", "commCmd":1, "requestID":30002, "agentID":"0017000E40000001", "handlerName":"general", "sendTS":160081026 } }
Parameters of "AdvHeartBeat Protocol"
Sending Rate
Unit: second Default: 60 Range: 1 ~ 0xFFFFFFFF -1 => Agent doesn't send "AdvHeartBeat" message