Having to learn about IoT, the Web, and Exosite all at one time


Hey Exosite Community,

Exosite received this question in our help desk recently, and we thought that it was broad enough that it would apply to enough people to make a post about. This post is here to give developers a head start using Exosite’s One Platform if they have never used it before and haven’t really ever written code for an IoT application.

The first thing that you will need to know is that Exosite’s software is hosted on the Internet. So to be effective, you will need to get comfortable using some of the technologies that are commonly used in the Internet. You won’t need to understand the foundational technologies, but in order to get your device and application code to talk to Exosite’s platform in a useful way you will need to be at least familiar with HTTP and JSON.

What is HTTP?

Long ago, Sir Tim Berners-Lee, and people with much grayer and longer beards than I, created a protocol to exchange standardized documents over a network. Today this is a protocol that has become ubiquitous with using the Internet. Though Exosite supports more protocols than HTTP for IoT applications, due to the overwhelming support in languages and tools, HTTP is generally the easiest to get started with.

Reading the original specification isn’t important, but knowing how to make the code you write make an HTTP request of Exosite is integral to using our software and services.

If you want to get a quick understanding of what HTTP is in general, Wikipedia’s article on the protocol is a good place to start.

What is JSON?

JavaScript Object Notation is a language-independent data format. This makes it very useful in serialization, as it is almost a certainty that the way Exosite’s software interprets a string of bytes will be different than your device or your application. The representation of data in JSON format is commonly done inside of Exosite APIs. So learning how to encode and decode your data or object in JSON will be important for reading and writing data from the platform.

JSON support in programming languages is pretty wide spread. Be sure to check with the community of the language of your choice to see if code already exists to handle this encoding before spending a lot of time tackling a parsing problem yourself.

What do I need to make a HTTP request?

Boiled down to the most basic requirement, in order to interface with Exosite you need to be able to open a network socket. Typically any modern personal computer is more than qualified to do this. Some popular open source hardware platforms(especially with add-on shields) are also capable to making a request.

What should I start reading?

The One Platform Guide hosted on our documentation site is the best place to start. This document and its supporting links will get you familiar with how Exosite software works, and what you can do with it.

Where can I get more help?

Additional places to learn about Exosite software and our APIs are in this forum, our documentation page, and our platform help center. The links to these sites are at the top of this forum. Try clicking on the DOCUMENTATION and SUPPORT links.

On our documentation site, be sure to scroll down and click on ‘One Platform & Portals Documentation’ in order to view One Platform documentation.

If you find that you have business specific problems, or talking about your issue contains sensitive information, you can also get help by emailing support@exosite.com

Where can I find examples and example code?

Exosite hosts our publicly available example code that talks to Exosite Portals and One Platform in our Github organization ‘Exosite Garage’. A number of these examples will detail how to get a given hardware platform to read and write data with the Exosite One Platform.

Where can I find tools to make my using Exosite easier?

A powerful and popular tool for developers heavily Using Exosite is Exoline. Exoline is a python based command line tool that wraps Exosite’s RPC API. This tool will allow you to investigate and interact with resources in the Exosite One Platform.

To make the development of your application code easier, we did right a handful of libraries that wrap our device APIs. You can download them from Github organization linked below:

Hopefully this gets you started using Exosite, and makes the ‘Internet’ part of the IoT firehose easier to drink from.

Happy to help,