code: def run_zone(self, minutes, zone=None):
          
          if zone is None:
              zone_cmd = 'runall'
              relay_id = None
          else:
              if zone < 0 or zone > (len(self.relays) - 1):
                  return None
              else:
                  zone_cmd = 'run'
                  relay_id = self.relays[zone]['relay_id']
  
          if minutes <= 0:
              time_cmd = 0
              if zone is None:
                  zone_cmd = 'stopall'
              else:
                  zone_cmd = 'stop'
          else:
              time_cmd = minutes * 60
  
          return set_zones(self._user_token, zone_cmd, relay_id, time_cmd)
docs: Run or stop a zone or all zones for an amount of time.
  
          :param minutes: The number of minutes to run.
          :type minutes: int
          :param zone: The zone number to run. If no zone is specified then run
                       all zones.
          :type zone: int or None
          :returns: The response from set_zones() or None if there was an error.
          :rtype: None or string