docs: def start(self, bind_address=None, bind_port: int = None, fps: int = None) -> None:
          """
          Starts or restarts a new Thread with the parameters given in the constructor or
          the parameters given in this function.
          The parameters in this function do not override the class specific values!
          :param bind_address: the IP-Address to bind to
          :param bind_port: the port to bind to
          :param fps: the fps to use. Note: this is not precisely hold, use for load balance in the network
          """
          if bind_address is None:
              bind_address = self.bindAddress
          if fps is None:
              fps = self._fps
          if bind_port is None:
              bind_port = self.bind_port
          self.stop()
          self._output_thread = OutputThread(cid=self.__CID, source_name=self.source_name,
                                             outputs=self._outputs, bind_address=bind_address,
                                             bind_port=bind_port, fps=fps, universe_discovery=self._universeDiscovery)
          self._output_thread.start()