eliot platform - fieldcloud/eliot-api GitHub Wiki
Presentation
eliot
eliot (ExperimentaL Internet Of Things), is a converged data platform developed by fieldcloud SAS to simplify Internet of Things connectivity between devices on multiple networks and application platforms by handling data payload parsing, formatting and 3rd party cloud API integrations.
Purpose
The eliot platform helps developers integrate diverse, heterogeneous groups of devices on different access networks into consistent interfaces with cloud or on premise applications.
Sensor data are accessible via a unified JSON format independent of the IoT access network they're connected to.
eliot can also store historical data separately from cloud applications. This is useful during proof of concept projects where data may need to be verified using manual analytic tools or in cases where data may need to be replayed or reinjected into another toolset. In production applications having an independent backup data store is useful for disaster recovery purposes.
As the eliot platform supports multiple parallel API integrations at the same time it is possible to deliver device data to more than one platform at the same time. For example your visualization dashboard might be running on Cayenne MyDevices, your data scientist might prefer storing historical data in an Amazon S3 bucket and your customer service team may prefer a blended application using a mix of IFTTT and Zapier. We even support MQTT!
Principles
eliot architecture
eliot cloud platform accepts data from devices connected to:
- SigFox
- Objenious (LoRa)
- Inmarsat/Actility (LoRa)
- Mobile GSM/GPRS/3G/LTE (via our partner Arkessa)
- WiFi
- Native TCP/IP websockets or HTTPS REST across IPSEC VPNs
- Custom integrations if you have a special requirement

Typical Use Case
Simplify device deployment when:
- The same IoT device is deployed in multiple locations that have different network coverage (e.g. GSM in one country, LoRa in another).
- The same physical site has a mix of devices that are connected using different access networks (e.g. a small SigFox temperature sensor and an intrusion detection system connected using 4G mobile broadband).

eliot JSON Objects
Data are stored and transmitted in JSON format:
{
"client": "",
"eliot_time": "2018-06-05 16:14:35.367015",
"id": "",
"response_data": {
"code": null,
"payload": "",
"trainer_kit": ""
},
"response_meta": {
"com_type": "",
"data_type": "uplink",
"error": null,
"id_module": "",
"latitude": "",
"longitude": "",
"rssi": "",
"station": "",
"time": "2018-06-05 16:14:34"
},
"time": "2018-06-05 16:14:35.363014"
}
JSON object description:
-
client: client id
-
eliot_time: when data are stored
-
id: device serial number
-
time: when eliot receive the message
-
response_data: data from sensor
- payload: data hexadecimal representation
- trainer_kit: device group id
-
response_meta: additional information from network operator
- com_type: network operator and
- data_type: type of message (uplink)
- error: error message and type
- id_module: operator UID
- latitude: estimated device latitude from operator
- longitude: estimated device longitude from operator
- rssi: signal quality
- station: operator basestation id
- time: operator time
API
Device Networks
To allow devices to communicate across heterogeneous IoT networks, fieldcloud has integrated operator APIs for public & hybrid networks. We have also implemented native device APIs using websockets, lightweight TCP payloads and HTTPS REST for private network deployments such as WiFi, IPSEC VPNs and GSM/GPRS.
Data Access
Authorized developers may access data published on the eliot platform using a RESTful API. We have published the API specification using Swagger.
Provisioning
Client Creation & API Keys
Contact your fieldcloud point of contact for client creation and API key provisioning. Typically this is done at the start of a customer engagement.
Device Provisioning
Please use this template to submit a provisioning request to the fieldcloud team.