   timerMatrixId = timerMatrix.setInterval(1000L, showOnMatrixSinceUpdated);
   timerMatrix.disable(timerMatrixId);
 }
-
-
 
 void loop() {
   server.handleClient();

    Serial.println();
  #endif

  display.print("setup done");
  display.display();
  delay(2000);
}

void setupServerHandlers() {
  server.on("/",        handleStatus);
  server.on("/devices", handleDevices);
  server.on("/update",  handleUpdate);
  server.onNotFound(handleNotFound);
}

void setupDisplay() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // 0x3C or 0x3D
  display.clearDisplay();
  display.display();
}

void setupMatrix() {
   matrix.begin(0x70); // 0x70 - 0x77
   matrix.setBrightness(12); // 0 - 15, with 1 too much high freq noice from holtek
}

void matrixSelfTest() {
  matrix.clear();
  matrix.fillRect(0, 0, 8, 8, LED_GREEN);
  matrix.writeDisplay();
  delay(500);
  matrix.fillRect(0, 0, 8, 8, LED_YELLOW);
  matrix.writeDisplay();
  delay(500);
  matrix.fillRect(0, 0, 8, 8, LED_RED);
  matrix.writeDisplay();
  delay(500);
  matrix.fillRect(0, 0, 8, 8, 0);
  matrix.writeDisplay();
}

    CABIN_2_WAS_OPENED = true;
  }

  // empty respose was bad while testing via browser, so just "ok"
  server.send(200, "text/plain", "ok");

  TS_LAST_UPDATED = millisWithOverlap();
  TS_LAST_UPDATED_OVERLAPS = TS_UPTIME_OVERLAPS;

  #ifdef SERIAL_VERBOSE
    Serial.printf("CABIN-1: %d", CABIN_1_CLOSED ? 1 : 0);
    Serial.println();
