'Set up a request for configuration.'

def request_config(self, name, callback, description, description_image, submit_caption, fields, link_name, link_url, entity_picture):

    entity_id = generate_entity_id(ENTITY_ID_FORMAT, name, hass=self.hass)
    if (fields is None):
        fields = []
    request_id = self._generate_unique_id()
    self._requests[request_id] = (entity_id, fields, callback)
    data = {ATTR_CONFIGURE_ID: request_id, ATTR_FIELDS: fields, ATTR_FRIENDLY_NAME: name, ATTR_ENTITY_PICTURE: entity_picture}
    data.update({key: value for (key, value) in [(ATTR_DESCRIPTION, description), (ATTR_DESCRIPTION_IMAGE, description_image), (ATTR_SUBMIT_CAPTION, submit_caption), (ATTR_LINK_NAME, link_name), (ATTR_LINK_URL, link_url)] if (value is not None)})
    self.hass.states.set(entity_id, STATE_CONFIGURE, data)
    return request_id
