aquila-client
v0.0.3
Published
Biblioteca para aplicaciones cliente de la API Aquila en node.js. Facilita la creación de aplicaciones que consuman esta API.
Downloads
10
Readme
Aquila Client
Biblioteca para aplicaciones cliente de la API Aquila en node.js. Facilita la creación de aplicaciones que consuman esta API.
Funcionalidades
- Permite conectarse a un hub Aquila con usuario y contraseña.
- Listar los dispositivos en la red Aquila, así como filtrarlos por clase, nombre, dirección e id.
- Ejecutar acciones en cualquier dispositivo.
- Escuchar eventos de cualquier dispositivo e inscribir funciones a éstos.
- Obtener y modificar la PAN de la red del hub.
- Ordenar al hub a que recargue o descubra nuevos dispositivos.
Instalación
npm install aquila-clientUso
var Aquila = require("aquila-client");
// specify your hub url
aq = new Aquila("http://localhost:8080");
// make connection and login
aq.login("Your Username", "Your secure password", function(err)
{
// attend any error on connection
if(err) return console.log(err.message);
// do your stuff...
var things;
// get all devices
things = aq.devices();
// filter by name
things = aq.devices("#Device Name");
// filter by class
things = aq.devices(".mx.makerlab.deviceClass");
// filter by address
things = aq.devices([252,194,61,0,0,5,178,228]);
// filter by id
things = aq.devices("544987f20e027eb259a88a6f");
// execute action by number
things.action(0);
// execute action by name, with param 255
things.action("Turn On", 255);
// subscribe function to an event
things.on("Button Pressed", function(param) {
console.log("Got event 'Button Pressed' with param ", param);
});
// discover nearby devices
aq.discover();
// reload all devices
aq.reload();
// get PAN
aq.getPAN(function(err, pan){
console.log(pan);
});
// set PAN
var newPAN = 0xCA5A;
aq.setPAN(newPAN, function(err, pan) {
if(err) console.log("Error setting PAN");
console.log("PAN set OK and is now: ", pan);
});
});Métodos
aq.login(user, password, callback)
Realiza la conexión con el hub y llama a callback al terminar, pasándole como parámetro un error en caso de haberlo.
Nota: no se debe usar ninguna otra función de esta biblioteca sin antes haber realizado la conexión.
aq.devices(filter)
retorna una especie de arreglo especial con dispositivos según el filtro usado.
Sintaxis del filtro:
- Si no hay filtro, o es "*", se retornan todos los dispositivos.
- Si el filtro empieza con "#", se busca por nombre.
- Si el filtro empieza con ".", se busca por clase.
- Si el filtro es un arreglo, se busca por dirección.
- Si el filtro es un string y ninguno de los anteriores, se busca por id.
dispositivo.action(action, param)
Ejecuta una acción en uno o varios dispositivos (el objeto retornado por aq.devices()).
- action puede ser un número de acción o su nombre.
- param es opcional y es un número de 0 a 255.
dispositivo.on(event, function)
Inscribe una función a un evento.
- event es el nombre del evento.
- function recibe param, que puede ser null o un número de 0 a 255.
aq.discover(callback)
Empieza a descubrir dispositivos cercanos. Al terminar, ejecuta callback.
aq.reload(callback)
Olvida todo y empieza a descubrir dispositivos cercanos. Al terminar, ejecuta callback.
aq.getPAN(callback)
Obtiene la PAN del hub y ejecuta callback con err (error, si hay) y pan.
aq.setPAN(pan, callback)
Cambia la PAN del hub y ejecuta callback con err (error, si hay) y pan.
