<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_update(self, nids, fw_type, fw_ver, fw_bin=None):
 """Start firmware update process for one or more node_id."""

        try:
            fw_type, fw_ver = int(fw_type), int(fw_ver)
        except ValueError:
            _LOGGER.error(
                'Firmware type %s or version %s not valid, '
                'please enter integers', fw_type, fw_ver)
            return
        if fw_bin is not None:
            fware = prepare_fw(fw_bin)
            self.firmware[fw_type, fw_ver] = fware
        if (fw_type, fw_ver) not in self.firmware:
            _LOGGER.error(
                'No firmware of type %s and version %s found, '
                'please enter path to firmware in call', fw_type, fw_ver)
            return
        if not isinstance(nids, list):
            nids = [nids]
        for node_id in nids:
            if node_id not in self._sensors:
                continue
            for store in self.unstarted, self.started:
                store.pop(node_id, None)
            self.requested[node_id] = fw_type, fw_ver
            self._sensors[node_id].reboot = True