code: function Yeelight(address, port){
    var u = url.parse(address);
    if(u.protocol === 'yeelight:'){
      address = u.hostname;
      port    = u.port;
    }
    if(!(this instanceof Yeelight)){
      console.debug('creating new instance of Yeelight with addr & port', address, port)
      return new Yeelight(address, port);
    }
    var buffer = '';
    port = port || 55443;
    EventEmitter.call(this);
    this.queue = {};
    this.socket = new tcp.Socket();
    this.socket
    .on('data', function(chunk){
      buffer += chunk;
      buffer.split(/\r\n/g).filter(function(line){
        return !!line;
      }).forEach(this.parse.bind(this));
      buffer = '';
    }.bind(this))
    .on('error', function(err){
      this.connected = false;
      this.emit('error', err);
      this.emit('disconnect', this);
    }.bind(this))
    .on('end', function(){
      this.connected = false;
      this.emit('disconnect', this);
    }.bind(this))
    .connect(port, address, function(err){
      this.connected = true;
      this.sync().then(function(){
        this.emit('connect', this);
      }.bind(this));
    }.bind(this));
    return this;
  }
docs: [Yeelight description]
  @docs http://www.yeelight.com/download/Yeelight_Inter-Operation_Spec.pdf