diff --git a/internal/api/ui/iot-console.html b/internal/api/ui/iot-console.html
index e7cd9eb..add9bb1 100644
--- a/internal/api/ui/iot-console.html
+++ b/internal/api/ui/iot-console.html
@@ -267,6 +267,7 @@ const S = {
mqttConnecting: false,
mqttLog: [],
autoTimer: null,
+ autoTopic: '', // топик сохраняется при старте авто — не зависит от DOM
// Телеметрия
telemetryRows: [], // загруженные строки [{id, device_id, ts, payload}]
@@ -841,12 +842,12 @@ function deviceLayout(d) {
// switchTab — переключить вкладку без перезагрузки данных устройства
function switchTab(tab) {
- if (tab !== 'emulator') {
- // Останавливаем авто-отправку при уходе с вкладки эмулятора
+ // Останавливаем авто-отправку только когда УХОДИМ с вкладки эмулятора
+ if (S.activeTab === 'emulator' && tab !== 'emulator') {
mqttStopAuto();
}
- if (tab !== 'telemetry') {
- // Останавливаем авто-рефреш при уходе с вкладки телеметрии
+ // Останавливаем авто-рефреш только когда УХОДИМ с вкладки телеметрии
+ if (S.activeTab === 'telemetry' && tab !== 'telemetry') {
clearInterval(S.telemetryRefreshTimer);
S.telemetryRefreshTimer = null;
S.telemetryAutoRefresh = false;
@@ -1064,10 +1065,14 @@ function toggleAuto() {
if (btn) btn.textContent = 'Запустить';
return;
}
- const sec = parseInt((document.getElementById('auto-sec') || {}).value) || 5;
- const topic = (document.getElementById('emu-topic') || {}).value || '';
+ const sec = parseInt((document.getElementById('auto-sec') || {}).value) || 5;
+ // Топик читаем из DOM один раз при старте и сохраняем в S.autoTopic —
+ // чтобы авто-отправка продолжалась при переходе на вкладку Телеметрии
+ S.autoTopic = (document.getElementById('emu-topic') || {}).value || '';
+ if (!S.autoTopic) return;
if (btn) btn.textContent = 'Стоп';
- mqttStartAuto(topic, () => (document.getElementById('emu-payload') || {value:'{}'}).value.trim(), sec);
+ // getPayload генерирует случайные данные каждый тик — не зависит от DOM
+ mqttStartAuto(S.autoTopic, generateSensorPayload, sec);
}
// =============================================================