code: def three_hours_forecast_at_id(self, id):
          
          assert type(id) is int, "'id' must be an int"
          if id < 0:
              raise ValueError("'id' value must be greater than 0")
          params = {'id': id, 'lang': self._language}
          uri = http_client.HttpClient.to_url(THREE_HOURS_FORECAST_URL,
                                              self._API_key,
                                              self._subscription_type,
                                              self._use_ssl)
          _, json_data = self._wapi.cacheable_get_json(uri, params=params)
          forecast = self._parsers['forecast'].parse_JSON(json_data)
          if forecast is not None:
              forecast.set_interval("3h")
              return forecaster.Forecaster(forecast)
          else:
              return None
docs: Queries the OWM Weather API for three hours weather forecast for the
          specified city ID (eg: 5128581). A *Forecaster* object is returned,
          containing a *Forecast* instance covering a global streak of
          five days: this instance encapsulates *Weather* objects, with a time
          interval of three hours one from each other
  
          :param id: the location's city ID
          :type id: int
          :returns: a *Forecaster* instance or ``None`` if forecast data is not
              available for the specified location
          :raises: *ParseResponseException* when OWM Weather API responses' data
              cannot be parsed, *APICallException* when OWM Weather API can not be
              reached