IoTGateway/CoAP-like
From ESS-WIKI
Contents
Advantech CoAP-like Packet Structure
Header Size: 8 Bytes
Payload Size: 0 ~ 70 (Max) Bytes
Name | Size ( bits ) |
---|---|
Ver | 2 |
Type (T) | 2 |
TKL: Token Length | 4 |
Code | 8 |
Message ID | 16 |
Length | 32 |
Type (T) : 2-bit unsigned integer Transaction Type field. Indicates if this message is
- Confirmable (0): Some messages require an acknowledgment
- Non-Confirmable (1): Some other messages do not require an acknowledgment
- Acknowledgment (2): An Acknowledgment message acknowledges that a specific Confirmable message (identified by its Transaction ID) arrived
- Reset (3): A Reset message indicates that a specific Confirmable message was received, but some context is missing to properly process it. This condition is usually caused when
- the receiving node has rebooted and has forgotten some state that would be required to interpret the message
Code : : 8-bit unsigned integer
Request
- GET(0.01): 1
- PUT(0.03): 3
Response
- Change(2.04): 68
- Content(2.05): 69
- Bad Request(4.00): 128
- Unauthorized(4.01): 129
- Not Found(4.04): 132
- Method Not Allowed(4.05): 133
- Not Implemented(5.01): 161
IPSO for CoAP-like
IPSO RESTful API Rule: /{Object ID}/{Object Instance}/{Resource ID}/
IPSO Smart Object ID
Sensor | Object ID |
---|---|
Temperature | 3303 |
Humidity | 3304 |
Magnetic | 3314 |
Accelerometer | 3313 |
Light Sensor | 3301 |
Digital Output | 3201 |
Digital Input | 3200 |
CO2 | 9001 |
CO | 9002 |
Ultrasonic | 9200 |
IPSO Smart Resource ID
Resource | Object ID |
---|---|
DI Status | 5500 |
DO Status | 5550 |
Min Range Value | 5603 |
Max Range Value | 5604 |
Sensor Value | 5700 |
Sensor Units | 5701 |
X Value | 5702 |
Y Value | 5703 |
Z Value | 5704 |
Compass Direction | 5705 |
CoAP-like Command
URI Resources | Description |
---|---|
/dev/info | Information of Sensor Hub |
/net/info | Information of Net Communication |
/net/status | Status of Network |
/sen/info | Information of Sensor |
/sen/status | Status of Sensors |
Commands (Key) | Value | Description | For URI Resources | Example |
---|---|---|---|---|
action | list | List detail information | /sen/info, /dev/info, /net/info | GET /sen/info?action=list |
action | observe | Observe status | /sen/status, /net/status | GET /sen/status?action=observe&id=all |
action | cancel | Cancel observe | /sen/status, /net/status | GET /sen/status?action=cancel&id=all |
field | id | List all sensor id | /sen/info | GET /sen/info?action=list&field=id |
field | health | Network health status | /net/status | GET /net/status?field=health |
id | all | Get all sensor’s data | /sen/info, /sen/status | GET /sen/status?action=observe&id=all |
id | 0,1,2,3... | Get one of sensor data | /sen/info, /sen/status | GET /sen/status?action=observe&id=0,1 |
CoAP-like Protocols
Get SenHub Info
Get SenHub Device info
Request GET /dev/info?action=list Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /dev/info?action=list
Response Direction: SenHub-> GW TP : Content Type:2 Code:69 PAYLOAD: </dev>;n="Room1", mdl="WISE1020", sw="1.0.01", reset=0
Get SenHub Net info
Request GET /net/info?action=list Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /net/info?action=list
Response Direction: SenHub -> GW TP : Content Type:2 Code:69 PAYLOAD: </net>;n="dust", sw="1.0.01"
Get Sensor Info
Get Sensor id List
Request GET /sen/info?action=list&field=id Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/info?action=list&field=id
Response Direction: SenHub -> GW TP : Content Type:2 Code:69 PAYLOAD: </sen>;0,1,2,3,4,5
Get Detail Info of Sensor
Request GET /sen/info?action=list&id=0 Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/info?action=list&id=0
Response Direction: SenHub -> GW TP: Content Type:2 Code:69 PAYLOAD: </0>;n="Room_Tempature", mdl="mp6050", sid="3303"
Get Sensor Properties
Request GET /sen/info?query=list&sid=3303 Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/info?query=list&sid=3303
Response Direction: SenHub -> GW TP: Content Type:2 Code:69 PAYLOAD: </3303>;asm="r", rt="ucum.Cel", type="d", st="ipso", u="Cel"
Get Sensor Model
Request GET /sen/info?query=list&id=0&mdl=mp6050 Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/info?query=list&id=0
Response Direction: SenHub -> GW TP: Content Type:2 Code:69 PAYLOAD: </0>;min="-20", max="100"
Get Sensor Value
Observe all sensors' value
Request GET /sen/status?action=observe&id=all Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/status?action=observe&id=all
Response Direction: SenHub -> GW TP: Content Type:2 Code:69 PAYLOAD: 0 36.2,1 26.5,2 9000,3 100,4 0, 5 10 20 30 . . . 0 36,1 26.5,2 9100,3 380,4 1, 5 10 20 20
Cancel all sensors' value
Request GET /sen/status?action=cancel&id=all Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/status?action=cancel&id=all
Response Direction: SenHub-> GW TP: Change Type:2 Code:68 PAYLOAD: cancel /sen/status?id=all
Observe sensors' value
Request GET /sen/status?action=observe&id=0,1 Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/status?action=observe&id=0,1
Response Direction: SenHub -> GW TP: Content Type:2 Code:69 PAYLOAD: 0 36.2, 1 9000 . . . 0 35, 1 9236
Cancel sensors' value
Request GET /sen/status?action=cancel&id=0,1 Direction: GW -> SenHub TP: GET Type:0 Code:1 PAYLOAD: /sen/status?action=cancel&id=0,1
Response Direction: SenHub -> GW TP: Change Type:2 Code:68 PAYLOAD: cancel /sen/status?id=0,1
Set SenHub Value
Set Device Name
Request' PUT /dev/info?n="Demo 1" Direction: GW -> SenHub TP: PUT Type:0 Code:3 PAYLOAD: /dev/info?n="Demo 1" Response Direction: SenHub -> GW TP:Change Type:2 Code:68 PAYLOAD: n="Demo1"
Reset SenHub
Request PUT /dev/info?reset=1 Direction: GW -> SenHub TP: PUT Type:0 Code:3 PAYLOAD: /dev/info?reset=1
Response Direction: SenHub -> GW TP:Change Type:2 Code:68 PAYLOAD: reset=1
Set Sensor Value
Set Sensor value by id
Request PUT /sen/status?id=5&bv=1 Direction: GW -> SenHub TP: PUT Type:0 Code:3 PAYLOAD: /sen/status?id=5&bv=1
Response Direction: SenHub -> GW TP:Change Type:2 Code:68 PAYLOAD: id=5, bv=1