docs: def needs_check(self):
          """
          Check if enough time has elapsed to perform a check().
  
          If this time has elapsed, a state change check through
          has_state_changed() should be performed and eventually a sync().
  
          :rtype: boolean
          """
          if self.lastcheck is None:
              return True
          return time.time() - self.lastcheck >= self.ipchangedetection_sleep