constructor({ipAddr: 'Device IP Address',password: 'device password',retryDelay: 1000,//(optional) How often to try and reconnect after loosing connection in millisrawCodes: false,//(optional) Use rawCode data (properties are not uniform)resetTime: 900,//(optional) Time in seconds which to reset the connection. Setting to 0 does not reset.debug: false//'raw', 'debug', and 'error' messages are sent out on the main listen stream.})isAlive();//returns promise(bool)takeSnapshot();//returns promise(buffer)start();//start listening to eventsstop();//stop listening to eventslisten(listener);//listen to all events (event object contains an 'action' and sometimes 'data' object or an 'index' value)//When debugging is on, 'raw', 'debug', and 'error' are also outputunlisten();//remove all listeners//Specific events (Processed Events Only):onMotion(listener);onVideoMotion(listener);onVideoBlindStart(listener);onDoorbellButtonPress(listener);onDoorbellAnswer(listener);onDoorbellHangup(listener);onCallNotAnswered(listener);onRawData(listener);onError(listener);