-
Notifications
You must be signed in to change notification settings - Fork 17
Basic Concepts
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 are the expected data and their types.
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 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 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.*
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!