  public void monitorWeather() throws Exception {
	int errorCount = 0;
    try {
        getStation().test();
    } catch (IOException ex) {
        LOGGER.error(ex);
    }
    while (true) {
      try {
        for (int i = 0; i < 15; i++) {
          getStation().readCurrentConditions();
        }
        if (isCheckArchive()) {
          getStation().readArchiveMemory();
        }
      } catch (Exception e) {
        LOGGER.error("exception - waiting 5s", e);
        try {
          Thread.sleep(5000);
          boolean ok = getStation().test();
          LOGGER.warn("station test:" + (ok ? "ok" : "not ok"));
        } catch (Exception e1) {
          if (errorCount++ > MAX_ERRORS) {
            System.exit(1);
          }
          LOGGER.error(e1);
          throw e1;
        }
      }
    }
  }

  public void monitorWeather() throws Exception {
	int errorCount = 0;
    try {
        getStation().test();
    } catch (IOException ex) {
        LOGGER.error(ex);
    }
    while (true) {
      try {
        for (int i = 0; i < 15; i++) {
          getStation().readCurrentConditions();
        }
        if (isCheckArchive()) {
          getStation().readArchiveMemory();
        }
      } catch (Exception e) {
        LOGGER.error("exception - waiting 5s", e);
        try {
          if (errorCount++ > MAX_ERRORS) {
            System.exit(1);
          }
          Thread.sleep(5000);
          boolean ok = getStation().test();
          LOGGER.warn("station test:" + (ok ? "ok" : "not ok"));
        } catch (Exception e1) {
          LOGGER.error(e1);
          throw e1;
        }
      }
    }
  }
