code: function(params, callback) {
        var t = this,
            disconnectError = false;
  
        if (!t.get('started')) {
          var err = {code:'NOT_RUNNING', msg:'The recipe is already stopped.'};
          logger.warn('precondition', err);
          return callback(err);
        }
  
        // Called when a monitor has disconnected
        var onDisconnect = function(error) {
          if (disconnectError) {return;}
          if (error) {
            var err = {code:'DISONNECT_ERROR', err: error};
            disconnectError = true;
            logger.error('onDisconnect', err);
            return callback(err);
          }
          for (var name1 in t.monitors) {
            if (t.monitors[name1].isConnected()) {
              return;
            }
          }
          t.set({started:false});
          t.compiledScript = null;
          callback();
        };
  
        // Disconnect all monitors
        t.connectListeners(false);
        t.context = null;
        for (var name2 in t.monitors) {
          t.monitors[name2].disconnect(onDisconnect);
        }
      }
docs: Stop the recipe
  
  This disconnects each monitor
  
  @method stop_control