Skip to content

Basic Concepts

Sea Yo edited this page Feb 25, 2016 · 23 revisions

Channel


Channel is a logical group of devices. They should share the same authentication keys, similar data schema, and the same handlers of their messages.

Here is an example channel formatted in json for monitoring hotel rooms:

{
  "name": "hotel monitoring",
  "description": "This is a channel created for monitoring hotel.",
  "tags": ["building", "floor", "room", "room_type"],
  "fields": {
    "brightness": "int",
    "co2": "float",
    "cooler": "boolean",
    "humidity": "int",
    "noise": "float",
    "pm2_5": "int",
    "temperature": "float"
  },
  "message_handlers": ["indexer"],
  "access_tokens": ["abcdefg"]
}

A channel typically comes with a name and description. But more importantly, it needs to know what data is expected from the sensors, which sensor is it, how should uploaded data be treated, and also the access_tokens for authenticating the sensor connection.

Fields

Fields are the expected data and their types.

Tags

Tags are more like meta data of the actual field data. It tells which room does this data come from, what kinda of room type it is, etc. Tags are useful when you are interested in seeing data visualizations. They can be used to graph out the correlation between data and room types, etc.

Access Tokens

Access Tokens are used for authenticating connections and requests. To successfully setup a connection, the client should carry http header: 'Access Token: abcdefg' along with request. More on Client Side Reference

Message Handlers

Message Handlers are kinda of middlewares, which defines what you can do with the data. Multiple message handlers are chained together. But currently only indexer is supported. You can leave the message_handlers as an empty array, which means, Octopus will solely just be your connection manager and won't try to index your data. As a result, the data won't be queryable, and you won't be able to do data visualization either.

More message handlers will be supported soon, including web hooks, alerters, etc. Please check out Road Map for more details.*

Dashboard


A dashboard is a collection of data visualizations. You can create multiple dashboards, each displays a group of graphs. Octopus provides an easy-to-use interface to make sense of your data. And a tutorial of graphing out of them is also available! Check out our Online Demo and play with it!

Clone this wiki locally