def _get_appliance(request):
    """
    Get's the user target appliance, should always detect something

    Args:
        request (Request): contains info about the conversation up to this point
        (e.g. domain, intent, entities, etc)

    Returns:
        string: resolved appliance entity
    """
    appliance_entity = next((e for e in request.entities if e['type'] == 'appliance'), None)

    if appliance_entity:
        return appliance_entity['text'].lower()
    elif 'appliance' in request.frame:
        return request.frame['appliance']
    else:
        raise Exception("There should always be a recognizable appliance if we go down this intent")