Suspend or unsuspend a zone or all zones for an amount of time.

        :param days: Number of days to suspend the zone(s)
        :type days: int
        :param zone: The zone to suspend. If no zone is specified then suspend
                     all zones
        :type zone: int or None
        :returns: The response from set_zones() or None if there was an error.
        :rtype: None or string

def suspend_zone(self, days, zone=None):
        """
        Suspend or unsuspend a zone or all zones for an amount of time.

        :param days: Number of days to suspend the zone(s)
        :type days: int
        :param zone: The zone to suspend. If no zone is specified then suspend
                     all zones
        :type zone: int or None
        :returns: The response from set_zones() or None if there was an error.
        :rtype: None or string
        """
        if zone is None:
            zone_cmd = 'suspendall'
            relay_id = None
        else:
            if zone < 0 or zone > (len(self.relays) - 1):
                return None
            else:
                zone_cmd = 'suspend'
                relay_id = self.relays[zone]['relay_id']

        # If days is 0 then remove suspension
        if days <= 0:
            time_cmd = 0
        else:
            # 1 day = 60 * 60 * 24 seconds = 86400
            time_cmd = time.mktime(time.localtime()) + (days * 86400)

        return set_zones(self._user_token, zone_cmd, relay_id, time_cmd)