def METHOD_NAME(self, wait=True, timeout=None):
    if self._ready():
        try:
            self.cmd_attr.set_value(self._moves["OUT"])
            if wait:
                timeout = timeout or self.timeout
                self._wait_ready(timeout)
            self.value_changed(self.state_attr.get_value())
        except Exception as e:
            logging.getLogger("user_level_log").error(
                "Cannot put %s out", self.username
            )
    else:
        logging.getLogger("user_level_log").error(
            "Microdiff is not ready, will not put %s out", self.username
        )