def is_changed(local: dict, remote: dict) -> bool:
    """ Determine if a locally defined monitor has changed from a remote version
    Excludes silenced config from the check if the monitor may be muted to avoid unmuting any monitors accidentally
    :param local: A dictionary representing the locally defined monitor
    :param remote: A dictionary representing the remote defined monitor
    :return: A boolean value that is true if the local and remote monitors differ
    """
    if local['mute_when']:
        remote['obj'].get('options', {}).pop('silenced', None)

    return local['obj'] != remote['obj']