<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def recompute_home(self):
 """ Return the antenna where the user spends most of his time at night. None is returned if there are no candidates for a home antenna """


        if self.night_start < self.night_end:
            night_filter = lambda r: self.night_end > r.datetime.time(
            ) > self.night_start
        else:
            night_filter = lambda r: not(
                self.night_end < r.datetime.time() < self.night_start)

        # Bin positions by chunks of 30 minutes
        candidates = list(
            positions_binning(filter(night_filter, self._records)))

        if len(candidates) == 0:
            self.home = None
        else:
            self.home = Counter(candidates).most_common()[0][0]

        self.reset_cache()
        return self.home