code: def _scale_steps(self, duration, commands, *steps):
          
          factor = duration / ((self.wait * self.reps * commands) - \
                   (self.wait * self.reps * self._bridge.active))
          steps = [math.ceil(factor * step) for step in steps]
          if len(steps) == 1:
              return steps[0]
          else:
              return steps
docs: Scale steps
  
          :param duration: Total time (in seconds)
          :param commands: Number of commands to be executed.
          :param steps: Steps for one or many properties to take.
          :return: Steps scaled to time and total.