Constellation hub access from a Nodejs context
This repo is no longer maintained. It's now an official Constellation NodeJS Package accessible from official repository : https://github.com/myconstellation/constellation-nodejs or NPM.
[Constellation] is a platform to orchestrate and interconnect your programs and devices. With constellation, you can easily manage all of your devices / sensors / switch and more, interconnect its and create intelligence between them. You can read more on [Constellation] here : https://www.myconstellation.io/
This package was created, at the beginning on my needs to access Constellation Hub from my NodeJS home context. The lack of reverse engineering on the Signal R javascript library is backed up with a DOM parallel context created with [JsDOM].
Any performances problem are noticed when I perftest it.
Don't hesitate to ask for an add, or just contribute.
Install in your app directory
$ npm install constellation-nodejs
Create configuration file in config directory from the sample attached
Create a default.json file in /config directory.
{
/**
* Constellation Configuration
**/
"constellation": {
//// Constellation url
"url" : "",
//// Constellation Hub Access key
"accessKey" : "",
//// Your application name
"applicationName" : "Test Node JS",
///// Sdk Version
"sdkVersion" : "1.8.1"
}
}
Config file is automaticaly checked before any initialization, if you don't provide parameters to init() method. The config process is managed by the fantastic library [node-config]. You can manage your multiples environments with it.
Access to the Constellation Hub context
var constellation = require('constellation-nodejs');
//// Init with config file and wait until initialization is completed
constellation.init()
.then(function(hub) {
//// Init OK
console.log("Init OK.");
return hub;
}).then((hub) => {
//// connect
hub.on('connected', () => { console.log("Connected to constellation hub.");})
return hub.connect();
}).then((hub) => {
//// subscribe
hub.client.registerStateObjectLink("R2D2", "Vera", "Flood Sensor (temperature)", "*", function (so) {
console.log(so.Value.Temperature);
});
});
** You can also configure the context through init parameters (no config file needed).
this.init = function(url, accessKey, applicationName, sdkVersion)
Now it's on https://github.com/myconstellation/constellation-nodejs