Files
2026-06-25 17:25:41 +03:00

73 lines
3.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Тепло и клапаны — управление</title>
<link rel="stylesheet" href="styles.css?v=20260625-ds18b20-id-1" />
</head>
<body>
<div class="shell">
<header class="header">
<h1>Панель температуры и клапанов</h1>
<p>Мониторинг датчиков, управление уставками и ручным/авто управлением клапанов.</p>
</header>
<section class="panel">
<label for="apiBase">API endpoint</label>
<div class="api-row">
<input id="apiBase" placeholder="http://127.0.0.1:1923 (пусто = демо)" value="" />
<button id="refreshBtn">Обновить</button>
<button id="saveApiBtn">Сохранить адрес API</button>
<span id="status" class="status">Режим: не подключен</span>
</div>
<p class="hint">Если API не задан, интерфейс работает в автономном демо-режиме с локальным хранением.</p>
<div class="serial-block">
<div class="serial-row">
<label for="modbusTransport">Обмен</label>
<select id="modbusTransport">
<option value="rtu">Modbus RTU / COM</option>
<option value="tcp">Modbus TCP / IP</option>
</select>
<label for="modbusSlaveId">Slave ID</label>
<input id="modbusSlaveId" type="number" min="1" max="247" value="3">
</select>
<label class="rtu-field" for="comPortSelect">COM порт</label>
<select id="comPortSelect" class="rtu-field">
<option value="">Порт не выбран</option>
</select>
<button id="refreshPortsBtn" class="rtu-field">Обновить порты</button>
<label class="tcp-field hidden" for="tcpHost">IP</label>
<input id="tcpHost" class="tcp-field hidden" type="text" value="192.168.0.10" placeholder="192.168.0.10">
<label class="tcp-field hidden" for="tcpPort">TCP порт</label>
<input id="tcpPort" class="tcp-field hidden" type="number" min="1" max="65535" value="502">
<button id="connectPortBtn">Подключить</button>
<button id="calibrateAllBtn">Калибровать все</button>
<span id="serialStatus" class="status status-warn">COM: не подключён</span>
</div>
</div>
</section>
<section class="panel grid">
<article class="card">
<h2>Датчики температуры</h2>
<div id="sensors" class="list"></div>
</article>
<article class="card">
<h2>Клапаны</h2>
<div id="valves" class="list"></div>
</article>
</section>
<footer class="footer">
<span>Статус: </span>
<span id="globalStatus">Ожидание...</span>
</footer>
</div>
<script src="app.js?v=20260625-setpoint-draft-1"></script>
</body>
</html>