/denhub-device

The Device Daemon and Generator for Denhub platform

Primary LanguageJavaScriptMIT LicenseMIT

denhub-device

The Device Daemon Kit for Denhub platform. It includes the generator for create your daemon.

This project is alpha testing phase.

Build Status npm

Get Started

NOTE: If you don't have denhub-server, please create your server before you trying to run the following steps.

$ sudo npm install -g denhub-device


$ mkdir ~/car-0
$ cd ~/car-0/


$ denhub-device-generator init
? deviceName ? car-0
? deviceType ? car
? deviceToken ? (Press the Enter key remains empty)
? denhubServerHost ? wss://YOUR-DENHUB-SERVER.herokuapp.com/

? The configuration file was generated. Would you write it to config.json ? Yes

? The commands file was not found. Would you write the example to commands.json ? Yes

? Would you generate the source code now ? No


$ vim commands.json
{
	"setMotorPower": {
		"description": "Set the motor power",
		"args": {
			"left": "INTEGER(0,255) DEFAULT 0",
			"right": "INTEGER(0,255) DEFAULT 0"
		}
	}
}


$ denhub-device-generator

? The entry point was generated. Would you write it to index.js ? Yes

? The commands handler was generated. Would you write it to handler.js ? Yes

? The package.json was generated. Would you write it to package.json ? Yes

? The required modules are not installed. Would you install it now ? Yes

Run the daemon as development mode:

$ npm start -- --dev

Run the daemon as production mode:

$ npm start

To check details of the generator:

$ denhub-device-generator --help

Principal Files

The following files configure your device.

These can be generated by denhub-device-generator command, or you can also edit using any text editor.

commands.json

It describes the commands for your device.

It also define a specification of the each values with using S-Spec format for validation.

Format:

{
	"COMMAND-NAME": {
		"description": "DESCRIPTION-OF-COMMAND",
		"args": {
			"VALUE-NAME": "S-SPEC-FORMAT",
			...
		}
	},
	...
}

You can also edit the commands.json using Command Editor (CLI), it can be start using denhub-device-generator commands command.

handler.js

It describes an event handler for the each commands.

You can generate the scaffold for handler.js from commands.json using denhub-device-generator command.

config.json

It describes the configurations for your device. Also, your command handler can be read those configurations.

https://github.com/odentools/denhub-device/wiki/Operation-config.json

About Command Module

In denhub-device, your commands definition and command handler can be put together to a new package and publish it. Please refer to the wiki page for details.

Also you can find the command module on npm: https://www.npmjs.com/browse/keyword/denhub-device

Hints

If you don't have the denhub-device-generator, you can install as follows:

$ sudo npm install -g denhub-device

Licenses

The MIT License (MIT).
Copyright (c) 2016 OdenTools Project.