code: def _set_cycle_time(self):
          
          now = time()
          try:
              cycle_time = now - self._cycle_time
              if cycle_time < 0:
                  cycle_time = 0
          except AttributeError:
              cycle_time = 0
          cycle_time += self.cycle_time
          if cycle_time == int(cycle_time):
              self._cycle_time = math.ceil(now + cycle_time)
          else:
              self._cycle_time = math.ceil((now + cycle_time) * 10) / 10
          self._cycle_time = now + self.cycle_time
docs: Set next cycle update time synced to nearest second or 0.1 of second.