/**
   * Tries to connect either by IP or serial bus, depending on supplied config data.
   *
   * @return true if connection was established, false otherwise
   */
  public static synchronized boolean connect() {
    if (cvIp != null && cvPort > 0) {
      OwfsConnectionFactory owfsConnectorFactory = new OwfsConnectionFactory(cvIp, cvPort);
      OwfsConnectionConfig owConnectionConfig = new OwfsConnectionConfig(cvIp, cvPort);
      owConnectionConfig.setTemperatureScale(cvTempScale);
      owConnectionConfig.setPersistence(OwPersistence.ON);
      owConnectionConfig.setBusReturn(OwBusReturn.ON);
      owfsConnectorFactory.setConnectionConfig(owConnectionConfig);

      try {
        cvOwConnection = owfsConnectorFactory.createNewConnection();
        cvOwConnection.listDirectory("/");
        logger.info("Connected to owserver [IP '" + cvIp + "' Port '" + cvPort + "']");
        cvIsEstablished = true;
        return true;
      } catch (Exception exception) {
        logger.error(
            "Couldn't connect to owserver [IP '" + cvIp + "' Port '" + cvPort + "']: ",
            exception.getLocalizedMessage());
        cvIsEstablished = false;
        return false;
      }
    } else {
      logger.warn(
          "Couldn't connect to owserver because of missing connection parameters [IP '{}' Port '{}'].",
          cvIp,
          cvPort);
      return false;
    }
  }
 /**
  * Reconnects to owserver
  *
  * @return
  */
 public static synchronized boolean reconnect() {
   logger.info("Trying to reconnect to owserver...");
   try {
     cvOwConnection.disconnect();
   } catch (Exception lvException) {
     logger.error("Error while disconnecting from owserver: " + lvException, lvException);
   }
   cvOwConnection = null;
   return connect();
 }