def METHOD_NAME(self):
    try:
        # Initialize a Preference that stores the last version checked for this printer.
        Application.getInstance().getPreferences().addPreference(
            getSettingsKeyForMachine(self._lookups.getMachineId()), "")
        # Get headers
        application_name = Application.getInstance().getApplicationName()
        application_version = Application.getInstance().getVersion()
        self._headers = {"User-Agent": "%s - %s" % (application_name, application_version)}
        # If it is not None, then we compare between the checked_version and the current_version
        machine_id = self._lookups.getMachineId()
        if machine_id is not None:
            Logger.log("i", "You have a(n) {0} in the printer list. Do firmware-check.".format(self._machine_name))
            current_version = self.getCurrentVersion()
            # This case indicates that was an error checking the version.
            # It happens for instance when not connected to internet.
            if current_version == self.ZERO_VERSION:
                return
            # If it is the first time the version is checked, the checked_version is ""
            setting_key_str = getSettingsKeyForMachine(machine_id)
            checked_version = Version(Application.getInstance().getPreferences().getValue(setting_key_str))
            # If the checked_version is "", it's because is the first time we check firmware and in this case
            # we will not show the notification, but we will store it for the next time
            Application.getInstance().getPreferences().setValue(setting_key_str, current_version)
            Logger.log("i", "Reading firmware version of %s: checked = %s - latest = %s",
                       self._machine_name, checked_version, current_version)
            # The first time we want to store the current version, the notification will not be shown,
            # because the new version of Cura will be release before the firmware and we don't want to
            # notify the user when no new firmware version is available.
            if checked_version != "" and checked_version != current_version:
                Logger.log("i", "Showing firmware update message for new version: {version}".format(version = current_version))
                message = FirmwareUpdateCheckerMessage(machine_id, self._machine_name, current_version,
                                                       self._lookups.getRedirectUserUrl())
                message.actionTriggered.connect(self._callback)
                message.show()
        else:
            Logger.log("i", "No machine with name {0} in list of firmware to check.".format(self._machine_name))
    except Exception as e:
        Logger.logException("w", "Failed to check for new version: %s", e)
        if not self.silent:
            Message(i18n_catalog.i18nc("@info", "Could not access update information.")).show()
        return