docs: def scan(self, callback=None):
          """
          Scan the bus and call the callback when a new module is discovered
  
          :return: None
          """
          def scan_finished():
              """
              Callback when scan is finished
              """
              time.sleep(3)
              logging.info('Scan finished')
              self._nb_of_modules_loaded = 0
  
              def module_loaded():
                  self._nb_of_modules_loaded += 1
                  if self._nb_of_modules_loaded >= len(self._modules):
                      callback()
              for module in self._modules:
                  self._modules[module].load(module_loaded)
          for address in range(0, 256):
              message = velbus.ModuleTypeRequestMessage(address)
              if address == 255:
                  self.send(message, scan_finished)
              else:
                  self.send(message)