def _scale_steps(self, duration, commands, *steps):
        """ 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.
        """
        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