Actions
REST APIs¶
Monitor Node (imwww)¶
The following describe the API used by the monitor to process incoming requests.
Resource Name | HTTP Verbs | HTTP Methods | Returns | Direction | Description |
---|---|---|---|---|---|
Pair | CREATE Pair | POST /pair/iot/<uuid> | ACK | From IoT Node | Register an IoT node w/Monitor using UUID |
Pair | UPDATE Pair | POST /ping | ACK | From IoT Node | IoT device is verifying its stored pairing information |
Pair | CREATE Pair | POST /pair/jarvis/<uuid> | ACK | From Jarvis | Pair a Jarvis node with Monitor |
Monitor | GET Monitor ID | GET /monitor | Monitor ID | From Jarvis | Monitor Identity information |
Device | GET Devices | POST /devices | Device list | From Jarvis | Get list of device IDs and descriptors |
Device | UPDATE Device | POST /set/device | Device state | From Jarvis | Change device state with JSON |
Device | UPDATE Device | PUT /set/device | Ack | From monitor | Change device state with JSON; only valid from localhost |
Device | DELETE Device | DELETE /set/device | Ack | From monitor | Remove device pairing; only valid from localhost |
Monitor | GET Query Devices | GET /query/devices | Updates states | From monitor | Causes monitor to update its device state information; only valid from localhost |
- Monitor identity includes location and possibly other descriptors that uniquely identify the monitor
- POST is required for GET requests because the sender must identify themselves with a valid encryption key, which is sent in a JSON body that GET does not allow. This is because we are not using HTTPS but rather encrypting the requests and responses inside a JSON packet stored in the body of messages.
IoT Node (embedded in Arduino device code)¶
The following describe the API used by a sensor to process incoming requests.
Resource Name | HTTP Verbs | HTTP Methods | Returns | Direction | Description |
---|---|---|---|---|---|
Device | UPDATE Device | POST /set | Device config | From Monitor | Change device state with JSON |
Device | POST Query | POST /query | Device config | From Monitor | Get Device state as JSON |
Device | GET Register | GET /register/<uuid> | ACK | From Monitor | Provides UUID from monitor |
Updated by Hammel about 6 years ago · 16 revisions