code: function iControl(config) {
    this.system = config.system;
    this.email = config.email;
    this.password = config.password;
    this.pinCode = config.pinCode;
  
    // interested parties in us being logged in
    this._loginCompleteCallbacks = [];
    this._loggingIn = false;
  
    storage.initSync();
  
    // try to load the refresh token if we have one stored from a previous session
    var data = storage.getItem("iControl." + this.email + ".json");
    this._refreshToken = data && data.refresh_token;
    this._accessToken = data && data.access_token;
    this._accessTokenExpires = data && data.access_token_expires;
  }
docs: iControl represents an iControl-based security system (like Xfinity Home, ADT Pulse), and handles logging in
  and state changes.