siot.net-nodejs-api
v1.0.5
Published
This module implements the siot.net gateway api specification.
Downloads
3
Readme
Siot.net Library
What's Siot.net?
Siot.net is an integration platform for the internet of things. The main purpose of this platform is that every user can easily connect smart devices together over a standardized interface. Once a thing (a smart device) is connected to the siot.net platform, there are some basic applications availabe, i.e. display sensor values on a dashboard, etc.
To connect a thing with sensors and actors to the siot.net platform, the user has to write a gateway which acts as the bridge between them. This way, there isn't any limitation which tings can be connected to the siot.net platform as long they have some interface which a custom developed siot.net gateway can use.
This NodeJS Module implements the siot.net specification to develop such gateways. Siot.net uses MQTT as under laying messaging protocol. The siot.net specification is basically a formal description which mqtt topics with which payload format a siot.net gateway has to use for full compatibility with the siot.net ecosystem.
Installation
npm install siot.net-nodejs-api --save
Debugging
The library uses the debug npm module with the tags siotgateway:http and siotgateway:mqtt
To see these debug output, set the environment variable DEBUG=siotgateway:*
Example for bash
DEBUG=siotgateway:* node siot_dummy_gateway.js
see also https://www.npmjs.com/package/debug for further examples.
Example Siot.net Gateway
In this example we instantiate a sensor and an actor and register them on the gateway. We also send some dummy sensor values and register a listener for messages for the actor.
var siot = require('siot.net-nodejs-api'),
async = require('async');
var gateway = new siot.gateway({
centerLicense: "xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx" // insert your license here
});
var sensor = new siot.sensor({
uuid: "29d265c1-daf0-4a91-a1d9-45e48239728b",
name: "SensorTest1",
valueType: "text"
});
var actor = new siot.actor({
uuid: "71e36799-25f5-4b7f-882f-041f5104add7",
name: "ActorTest1",
valueType: "text"
});
async.series([
function (done) {
gateway.registerDevice(sensor, done)
},
function (done) {
gateway.registerDevice(actor, done)
},
function (done) {
gateway.connect(done)
},
function (done) {
sensor.sendSensorData("test", done)
}
],
function (err) {
if (err) return console.error(err);
actor.on('siot_data', function(message) {
console.log('received data for actor:', message);
});
console.log("setup complete");
});
API Documentation
See file api_doc.md
Contributing
Please just raise a pull request on GitHub.
Copyright and license
Copyright 2016, Roger Jaggi and Pascal Bohni under the Apache 2.0 license.