Lucy-Client-NodeJS
This repository hosts the client side library of the lucy smart house framework. An extensible event driven framework used to connect smart devices accross multiple platforms and programming languages via generic message passing.
Available via npm
If you are using npm go ahead and add the module to your project npm i lucyclient --save
Hello World
//Import moduleconst SmartHouse = ; //Settingsconst DEVICE_NAME = "UniqueDeviceName"; //Device name matching identifier at server sideconst UDP = false; //Do we wish to estabish a udp connection //Loggingconst winston = ;var logger = winstonloggers; const lucy = DEVICE_NAMEUDP; //Register event handlerslucy;lucy;lucy; //Perform handshake with the serverlucy; //Event callbacks { logger;} { logger;} { logger; logger;}
Please be aware that opposed to all other client libraries no IDE extension is currently available, therefor the above boilerplate code has to be written by yourself. For extensive examples please refer to the main git repository .
Logging
Logging is performed via winston v3.xx. Please see the winston github page on how to configure the logger. A named logger with the category lucyLogger
is available and can be configured to output the desired information.
The logging defaults to the format given in the example below with an info log level.
This snippet is to be placed after you have required the smarthouse module.
var winston = require('winston');//Retrieve logger used in the packagevar logger = winston.loggers.get('lucyLogger'); //Define a logging formatconst loggingFormat = winston.format.printf(info => { return `${info.timestamp} ${info.level}: ${info.message}`}); //Set log level and transport (e.g. file or console)logger.configure({ level: 'silly', format: winston.format.combine( winston.format.timestamp(), loggingFormat ), transports: [new winston.transports.Console()]});
Winston log levels:
{error: 0, //Errors experienced during connectionwarn: 1, //Timeoutsinfo: 2, //Information about which stage the module is inverbose: 3,debug: 4, //Notify the arrival of network packets packetssilly: 5 //Byte level content of tcp packets}