void loop() {
  // 🔹 Обработка кнопки S1
  if (digitalRead(PIN_S1) == LOW) {
    delay(200);
    if (digitalRead(PIN_S1) == LOW) {
      led1_state = !led1_state;
      
      // Сразу обновляем физический светодиод на ESP32
      digitalWrite(PIN_LED1_ESP32, led1_state ? HIGH : LOW);

      while (digitalRead(PIN_S1) == LOW) delay(10);
      
      checkAndSendStatus(); // Проверяем общее состояние и отправляем команду
    }
  }

  // 🔹 Обработка кнопки S2
  if (digitalRead(PIN_S2) == LOW) {
    delay(200);
    if (digitalRead(PIN_S2) == LOW) {
      led2_state = !led2_state;
      
      // Сразу обновляем физический светодиод на ESP32
      digitalWrite(PIN_LED2_ESP32, led2_state ? HIGH : LOW);

      while (digitalRead(PIN_S2) == LOW) delay(10);
      
      checkAndSendStatus(); // Проверяем общее состояние и отправляем команду
    }
  }
}

// Новая вспомогательная функция
void checkAndSendStatus() {
  if (led1_state && led2_state) {
    // Оба включены → отправляем общую команду
    sendCommand("LEDS_ON", -1, true); // -1 означает "не управлять локальным пином"
  } 
  else if (!led1_state && !led2_state) {
    // Оба выключены → отправляем общую команду
    sendCommand("LEDS_OFF", -1, false);
  } 
  else {
    // Включен только один → отправляем индивидуальную команду
    if (led1_state) {
       sendCommand("LED_1_ON", PIN_LED1_ESP32, true);
    } else {
       sendCommand("LED_2_ON", PIN_LED2_ESP32, true);
    }
  }
}