🔒 Доступ запрещён

Для просмотра этой страницы необходимо авторизоваться.

Используйте логин и пароль, указанные в настройках.

'; exit; } else { $login = $_SERVER['PHP_AUTH_USER']; $password = $_SERVER['PHP_AUTH_PW']; if ($login !== ADMIN_LOGIN || $password !== ADMIN_PASSWORD) { header('WWW-Authenticate: Basic realm="Pool Control - Вход"'); header('HTTP/1.0 401 Unauthorized'); echo ' Неверный логин или пароль

❌ Неверный логин или пароль!

Пожалуйста, проверьте введённые данные и попробуйте снова.

'; exit; } } } checkAuth(); // ============================================================ // НАСТРОЙКИ ПОДКЛЮЧЕНИЯ К БД // ============================================================ $host = 'localhost'; $dbname = 'j43619317_pool_monitoring'; $username = '047461323_limin'; $password = 'Tho1a4X_EBTV'; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->query("SELECT setting_value FROM system_settings WHERE setting_key = 'hysteresis'"); $hysteresisRow = $stmt->fetch(PDO::FETCH_ASSOC); $currentHysteresis = $hysteresisRow ? floatval($hysteresisRow['setting_value']) : 1.5; $stmt = $pdo->query("SELECT mode, pump_status FROM system_state ORDER BY id DESC LIMIT 1"); $state = $stmt->fetch(PDO::FETCH_ASSOC); $isManual = ($state && $state['mode'] == 'MANUAL'); $pumpStatus = ($state && $state['pump_status'] == 'ON'); $stmt = $pdo->query("SELECT pool_temp, collector_temp, air_temp FROM pool_sensors ORDER BY id DESC LIMIT 1"); $last = $stmt->fetch(PDO::FETCH_ASSOC); $stmt = $pdo->query("SELECT message, created_at FROM event_log ORDER BY id DESC LIMIT 20"); $events = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = $pdo->query("SELECT COUNT(*) as total FROM pool_sensors"); $totalRecords = $stmt->fetch(PDO::FETCH_ASSOC); $totalRecords = $totalRecords ? $totalRecords['total'] : 0; } catch (PDOException $e) { die("Ошибка базы данных: " . $e->getMessage()); } $activeButton = 'auto'; if (!$isManual && !$pumpStatus) { $activeButton = 'auto'; } elseif ($isManual && !$pumpStatus) { $activeButton = 'off'; } elseif ($isManual && $pumpStatus) { $activeButton = 'on'; } $saveMessage = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['save_hysteresis'])) { $newHysteresis = floatval($_POST['hysteresis']); if ($newHysteresis >= 0.5 && $newHysteresis <= 10) { try { $stmt = $pdo->prepare("UPDATE system_settings SET setting_value = :value WHERE setting_key = 'hysteresis'"); $stmt->execute([':value' => $newHysteresis]); $currentHysteresis = $newHysteresis; $saveMessage = '✅ Гистерезис сохранён: ' . $newHysteresis . '°C'; } catch (PDOException $e) { $saveMessage = '❌ Ошибка сохранения: ' . $e->getMessage(); } } else { $saveMessage = '❌ Значение должно быть от 0.5 до 10°C'; } } ?> ☀️ Pool Control

☀ POOL CONTROL

загрузка...
🌤️
°C
Температура воздуха
🌡️🔥
°C
Выход радиаторов
🌊
°C
Вода в бассейне
🎛️ Управление насосом
Насос:
🎯 Гистерезис °C
0.5°C 10°C
📋 История событий
📈 Температура за последний час
Вода Радиаторы Воздух
📉 Минимум
--°C
📊 Средняя
--°C
📈 Максимум
--°C
0): ?> Всего записей: ⏳ Данных пока нет
📖 Краткая инструкция
🎛️ Режимы работы
🤖 Авто — насос управляется автоматически по температуре
🔧 Ручной — вы управляете насосом вручную
🖥️ Управление на сайте
⏹ Выкл — выключить насос (только в ручном режиме)
🤖 Авто — включить автоматический режим
▶ Вкл — включить насос (только в ручном режиме)
🔘 Кнопки на корпусе
D19 — переключение Авто ↔ Ручной
D21 — вкл/выкл насоса (только в ручном режиме)
💡 Индикация
🟢 D22 (Wi-Fi) — горит = Wi-Fi подключен, мигает = нет сети
🟡 D23 (Авто) — горит = авторежим, не горит = ручной
📟 Команды COM-порта (115200 бод)
help — показать все команды
status — статус системы (температуры, режим, насос)
setwifi <SSID> <ПАРОЛЬ> — настроить Wi-Fi
showwifi — показать текущие настройки Wi-Fi
resetwifi — сбросить Wi-Fi на значения по умолчанию
clearwifi — очистить настройки Wi-Fi из EEPROM
scansensors — сканировать все датчики на шине
showsensors — показать адреса всех датчиков
setsensor <тип> <адрес> — установить адрес датчика
resetsensors — сбросить адреса датчиков
clearall — очистить ВСЮ конфигурацию (Wi-Fi + датчики)
restart — перезагрузить ESP32
📌 Типы датчиков: pomp (радиаторы), air (воздух), pool (вода)
📌 Пример: setsensor pomp 28-2E-B2-83-12-21-01-78
📊 Условные обозначения
🟢 Насос включён / Событие включения
🔴 Насос выключен / Событие выключения
🟡 Автоматический режим
🔵 Ручной режим