Novatek-Electro TR-100E Documentation
https://www.overvis.com/docs/uk/tr-100e/
2026-10-28
| |
|---|
Novatek-Electro TR-100E
TR-100E - цифрове реле температури для контролю до чотирьох температурних зон. Прилад забезпечує релейний захист, журналювання подій і температури, Web-інтерфейс, Modbus TCP та захищений віддалений доступ через VPN WireGuard. ДокументаціяSection titled “Документація”
Додаткові ресурсиSection titled “Додаткові ресурси” |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Посібник з експлуатації TR-100EТОВ «НОВАТЕК-ЕЛЕКТРО» інтелектуальна промислова електроніка ЦИФРОВЕ ТЕМПЕРАТУРНЕ РЕЛЕ TR-100ESection titled “ЦИФРОВЕ ТЕМПЕРАТУРНЕ РЕЛЕ TR-100E”
КЕРІВНИЦТВО З ЕКСПЛУАТАЦІЇ (ПАСПОРТ)Section titled “КЕРІВНИЦТВО З ЕКСПЛУАТАЦІЇ (ПАСПОРТ)”Керівництво з експлуатації призначене для ознайомлення з пристроєм, принципом дії, правилами експлуатації та налаштування цифрового температурного реле TR-100E. Під час експлуатації та технічного обслуговування необхідно дотримуватися вимог нормативних документів:
Підключення та технічне обслуговування виробу мають виконувати кваліфіковані фахівці, які вивчили це Керівництво з експлуатації. За умови дотримання правил експлуатації виріб є безпечним у використанні. ТЕРМІНИ ТА СКОРОЧЕННЯSection titled “ТЕРМІНИ ТА СКОРОЧЕННЯ”
1 ПРИЗНАЧЕННЯ ТА ТЕХНІЧНІ ХАРАКТЕРИСТИКИSection titled “1 ПРИЗНАЧЕННЯ ТА ТЕХНІЧНІ ХАРАКТЕРИСТИКИ”1.1 Призначення виробуSection titled “1.1 Призначення виробу”Цифрове температурне реле TR-100E (далі TR-100E) призначене для вимірювання та контролю температури об’єкта за чотирма датчиками, що підключаються за дво- або трипровідною схемою. TR-100E відображає виміряні значення температури на дисплеї, контролює лінії датчиків на обрив і коротке замикання, формує сигнали керування «Перегрів», «Тривога», «Відмова», «Вентиляція», веде журнал подій (до 2048 записів) і реєстрацію температури із заданим інтервалом (до 16384 записів), а також надає Web-інтерфейс. За потреби TR-100E може бути підключене до системи верхнього рівня (SCADA) за протоколом Modbus TCP або Web API. TR-100E має універсальне живлення: 24–250 V AC/DC. Основні можливості:
1.2 Технічні характеристикиSection titled “1.2 Технічні характеристики”Основні технічні характеристики наведено в таблиці 1. Таблиця 1 – основні технічні характеристики
1.3 Умови експлуатаціїSection titled “1.3 Умови експлуатації”TR-100E призначене для експлуатації в таких умовах:
1.4 Зовнішній вигляд і габаритні розміриSection titled “1.4 Зовнішній вигляд і габаритні розміри”На рисунку 1 показано зовнішній вигляд і габаритні розміри TR-100E.
Рисунок 1 – зовнішній вигляд і габаритні розміри 1.5 Датчики температуриSection titled “1.5 Датчики температури”TR-100E підтримує такі типи датчиків температури: Pt100/Pt1000, Ni100/Ni1000, Cu100, Ptc1000/EKS111, KTY83, KTY84 і PTC minika. Pt100 / Pt1000 — платинові терморезистори з номінальним опором 100 Ω і 1000 Ω за 0 °C відповідно. Характеристика описується коефіцієнтом W₁₀₀=1.3850 (за IEC 60751) або W₁₀₀=1.3910. Діапазон вимірювання: від мінус 40 до +240 °C. Підключаються до каналів 1–4 за дво- або трипровідною схемою. Ni100 / Ni1000 — нікелеві терморезистори з номінальним опором 100 Ω і 1000 Ω за 0 °C (W₁₀₀=1.6178). Діапазон вимірювання: від мінус 40 до +180 °C. Підключаються до каналів 1–4 за дво- або трипровідною схемою. Cu100 — мідні терморезистори з номінальним опором 100 Ω за 0 °C (W₁₀₀=1.4274). Діапазон вимірювання: від мінус 40 до +200 °C. Підключаються до каналів 1–4 за дво- або трипровідною схемою. Ptc1000 / EKS111 — платиновий терморезистор із номінальним опором 1000 Ω за 0 °C і підвищеним температурним коефіцієнтом (W₁₀₀=2.0805). Діапазон вимірювання: від мінус 40 до +100 °C. Підключаються до каналів 1–4 за дво- або трипровідною схемою. KTY83 — кремнієвий терморезистор із номінальним опором R₂₅=1000 Ω за 25 °C, моделі 110/120/150. Діапазон вимірювання: від мінус 40 до +175 °C. Підключаються до каналів 1–4 за дво- або трипровідною схемою. KTY84 — кремнієвий терморезистор із номінальним опором R₁₀₀=1000 Ω за 100 °C, моделі 130/150. Діапазон вимірювання: від мінус 40 до +200 °C. Підключаються до каналів 1–4 за дво- або трипровідною схемою. PTC minika — напівпровідникові позистори, що різко збільшують свій електричний опір у разі досягнення номінальної температури спрацьовування (НТС). Датчики випускаються з різними значеннями НТС у діапазоні від 60 до 180 °C з кроком 10 °C. 1.6 Комплект постачанняSection titled “1.6 Комплект постачання”До комплекту постачання входять:
2 ВИКОРИСТАННЯ ЗА ПРИЗНАЧЕННЯМSection titled “2 ВИКОРИСТАННЯ ЗА ПРИЗНАЧЕННЯМ”2.1 Підготовка TR-100E до використанняSection titled “2.1 Підготовка TR-100E до використання”2.1.1 Заходи безпекиSection titled “2.1.1 Заходи безпеки”2.1.2 Підключити TR-100E згідно зі схемою підключення на рисунку 2.
Рисунок 2 – схема підключення TR-100E 2.1.3 Увімкнути живлення TR-100E і встановити, за потреби, режими роботи згідно з таблицею 3. 2.2 Використання TR-100ESection titled “2.2 Використання TR-100E”2.2.1 Принцип діїSection titled “2.2.1 Принцип дії”TR-100E постійно вимірює температуру в 4-х зонах за допомогою підключених датчиків (канали 1–4). Канали 1–3 призначені для контролю температури обмоток трансформатора, а канал 4 — для контролю температури осердя трансформатора або довкілля. Журналювання подій і реєстрація температури здійснюються у фоновому режимі, не впливаючи на основну роботу TR-100E. Збережені дані доступні для перегляду на дисплеї та можуть бути експортовані у файл через Web-інтерфейс. Після увімкнення живлення виконуються контроль цілісності та запуск вбудованого ПЗ, після чого TR-100E переходить на головний екран — основний режим відображення інформації за нормальної роботи (рисунок 3).
Рисунок 3 – головний екран TR-100E На головному екрані відображаються:
Якщо датчик каналу несправний (обрив або коротке замикання), замість значення температури відображається символ помилки: «ОБРИВ» (обрив) або «КЗ» (коротке замикання). Якщо канал налаштований на датчик PTC minika і температура ще не досягла НТС, відображається символ «< НТС». Якщо канал вимкнено (параметр Канал N → Увімкнення = 0, де N — номер каналу; таблиця 3), його поле на екрані залишається порожнім. Окрім головного екрана, для кожного увімкненого каналу доступний екран графіка температури. Графік показує зміну температури каналу за останні 10 хвилин із періодом оновлення 5 s. На екрані відображаються номер каналу, шкала температури та останнє виміряне значення. Масштаб графіка вибирається автоматично. Ця оперативна історія формується після увімкнення TR-100E і не замінює дані реєстратора температури. Для перегляду графіків короткочасно натиснути кнопку «Вгору» (UP) для переходу до наступного екрана або кнопку «Вниз» (DOWN) для переходу до попереднього. Екрани перемикаються циклічно; графіки вимкнених каналів пропускаються. Стани всіх світлодіодних індикаторів наведено в таблиці 2. Таблиця 2 – Стани світлодіодних індикаторів
2.2.2 Журнал подійSection titled “2.2.2 Журнал подій”У процесі роботи TR-100E автоматично веде журнал подій у фоновому режимі — жодних дій з боку користувача для цього не потрібно. До журналу записуються значущі події та діагностичні повідомлення про роботу TR-100E. Нижче наведено основні види записів; цей перелік не є вичерпним:
Кожний запис містить дату й час події, її опис і додаткові відомості, що дають змогу з’ясувати причину спрацювання захисту або несправності. Журнал розрахований на 2048 записів. Після досягнення межі нові події продовжують записуватися, витісняючи найстаріші. Дані зберігаються в енергонезалежній пам’яті й не втрачаються у разі вимкнення живлення. Робота з журналом з лицьової панелі: перебуваючи на головному екрані, натиснути й утримувати кнопку «Меню» (MENU) не менше 5 s. За потреби ввести пароль згідно з п. 2.2.5. Кнопками «Вгору» / «Вниз» (UP/DOWN) вибрати пункт Журнал подій і натиснути кнопку «Ввід» (SET). Далі виконати потрібну дію:
Перегляд і експорт через Web-інтерфейс: відкрити Web-інтерфейс TR-100E і перейти на вкладку Журнал. Для збереження журналу у файл 2.2.3 Реєстратор температуриSection titled “2.2.3 Реєстратор температури”Реєстратор періодично зберігає значення температури всіх чотирьох каналів, що дає змогу аналізувати тепловий режим об’єкта за період, дані якого збережено в пам’яті реєстратора. За замовчуванням реєстратор увімкнено з періодом запису 600 секунд. Період можна змінити в діапазоні від 5 до 3600 секунд параметром Реєстратор → Період запису, а вимкнути реєстратор — параметром Реєстратор → Увімкнення (таблиця 3). Кожний запис містить дату й час вимірювання, температуру всіх чотирьох каналів, а також поточні прапори стану кожного каналу (спрацювання TRIP, ALARM, FAN, несправність датчика). Реєстратор розрахований на 16384 записи. Після досягнення межі нові дані продовжують записуватися, витісняючи найстаріші. Чим менший період запису, тим швидше заповнюється буфер і тим менша глибина збереженої історії. Дані зберігаються в енергонезалежній пам’яті й не втрачаються у разі вимкнення живлення. Робота з реєстратором з лицьової панелі: перебуваючи на головному екрані, натиснути й утримувати кнопку «Меню» (MENU) не менше 5 s. За потреби ввести пароль згідно з п. 2.2.5. Кнопками «Вгору» / «Вниз» (UP/DOWN) вибрати пункт Реєстратор і натиснути кнопку «Ввід» (SET). Далі виконати потрібну дію:
Перегляд і експорт через Web-інтерфейс: відкрити Web-інтерфейс TR-100E і перейти на вкладку Реєстратор. Для збереження записів у файл 2.2.4 Керування TR-100ESection titled “2.2.4 Керування TR-100E”Керування TR-100E здійснюється кнопками, розташованими на передній панелі (рис. 1, пп. 10, 11, 13–15):
2.2.5 Зміна параметрів (меню налаштувань)Section titled “2.2.5 Зміна параметрів (меню налаштувань)”Для входу в режим зміни параметрів, перебуваючи на головному екрані, натиснути й утримувати кнопку «Меню» (MENU) не менше 5 s. Якщо доступ захищено паролем, ввести пароль згідно з наведеною нижче інструкцією. У разі правильного введення на дисплеї відображається повідомлення Пароль принят, після чого відкривається меню параметрів. У разі неправильного введення відображається кількість спроб, що залишилися. Після п’яти невдалих спроб доступ блокується на 5 хвилин. Заводський пароль зазначено на наклейці з QR-кодом. У меню Доступ можна змінити паролі й незалежно увімкнути або вимкнути їх перевірку. Вимкнення перевірки не видаляє збережений пароль. Пароль локального доступу має містити 4…23 символи, паролі Web і Modbus — 8…23 символи. Поточні паролі не відображаються: у разі вибору пункту Змінити пароль введення починається з порожнього поля, скасування зберігає попереднє значення. 2.2.6 Відновлення заводських установокSection titled “2.2.6 Відновлення заводських установок”Існує два способи виконати відновлення заводських установок: Після збереження паролі користувача замінюються заводськими паролями, зазначеними на наклейці з QR-кодом. 2.2.7 Діагностичний режим і тестування TR-100ESection titled “2.2.7 Діагностичний режим і тестування TR-100E”Діагностичний режим призначений для проведення сервісних робіт кваліфікованими фахівцями і не використовується під час штатної експлуатації TR-100E. Під час увімкнення діагностичного режиму заводські значення завантажуються до тимчасової робочої копії налаштувань, але не зберігаються до flash-пам’яті автоматично. До наступного перезапуску локальне меню та Web-інтерфейс доступні без введення пароля, а Web-інтерфейсу надається рівень доступу Для увімкнення діагностичного режиму:
Під час увімкнення режиму в журнал подій записується повідомлення User run device in diagnostic mode. Поки режим активний, на дисплеї періодично відображається попередження про ввімкнений діагностичний режим. Для запуску TR-100E у штатному режимі перезапустити прилад без утримання кнопок «Вгору» і «Вниз» або вимкнути й повторно подати живлення. Якщо налаштування не були збережені, у разі такого запуску прилад завантажить раніше збережені налаштування та відновить штатну перевірку паролів. 2.2.7.1 Перевірка світлодіодної індикації та перегляд мінімальної й максимальної температури каналівSection titled “2.2.7.1 Перевірка світлодіодної індикації та перегляд мінімальної й максимальної температури каналів”Для перевірки світлодіодної індикації необхідно, перебуваючи на головному екрані, натиснути кнопку «Тест» (TEST). TR-100E перейде до окремого екрана тестування, увімкне всі світлодіодні індикатори та відобразить для кожного каналу мінімальну й максимальну зареєстровану температуру. Для виходу з режиму тестування натиснути кнопку «Меню» (MENU). За відсутності натискань кнопок протягом 60 s тестовий екран закривається автоматично. 2.2.7.2 Тестування вихідних релеSection titled “2.2.7.2 Тестування вихідних реле”Порядок тестування:
Для завершення тестування натиснути кнопку «Меню» (MENU). Тестові стани всіх реле буде вимкнено, після чого TR-100E повернеться до меню параметрів. 2.2.8 Оновлення вбудованого програмного забезпечення (прошивки)Section titled “2.2.8 Оновлення вбудованого програмного забезпечення (прошивки)”TR-100E підтримує два способи оновлення вбудованого програмного забезпечення без використання програматора:
Для оновлення використовується файл прошивки TR-100E у форматі Докладний порядок дій, відновлення раніше завантаженого образу та розшифрування повідомлень завантажувача наведено в «Додатку А. Аварійне відновлення прошивки». 2.2.9 Установлення дати, часу та часового поясуSection titled “2.2.9 Установлення дати, часу та часового поясу”TR-100E використовує годинник реального часу (RTC) для позначення часу в журналі подій і реєстраторі. Дату й час можна встановити вручну з лицьової панелі або через Web-інтерфейс. Також доступна автоматична синхронізація часу за NTP. Установлення дати й часу з лицьової панелі:
Для скасування введення без запису натиснути кнопку «Меню» (MENU). Установлення дати й часу через Web-інтерфейс:
Часовий пояс: У розділі Налаштування → Дата і час у полі Часовий пояс вибрати потрібне зміщення відносно UTC, наприклад UTC+02:00 або UTC+03:00. Вибраний часовий пояс застосовується під час відображення місцевого часу. Для збереження налаштування натиснути кнопку Зберегти. Літній час (DST): У полі Режим DST доступні такі значення:
Після зміни режиму DST і пов’язаних із ним параметрів натиснути кнопку Зберегти. 2.3 Програмовані та використовувані параметри TR-100ESection titled “2.3 Програмовані та використовувані параметри TR-100E”Повний перелік збережуваних параметрів наведено в таблиці 3. У колонці «Адреса Holding-регістру» знак Таблиця 3 – Програмовані та використовувані параметри
2.4 Використання Web-інтерфейсуSection titled “2.4 Використання Web-інтерфейсу”Для доступу до Web-інтерфейсу TR-100E потрібен ПК зі встановленим Web-браузером. В адресному рядку Web-браузера введіть поточну IP-адресу TR-100E, що відображається на його дисплеї, і натисніть Enter. 2.4.1 Вхід і рівні доступуSection titled “2.4.1 Вхід і рівні доступу”Після відкриття Web-інтерфейсу відображається форма введення пароля.
TR-100E використовує два незалежні паролі Web-доступу:
Введений пароль визначає наданий рівень доступу. Користувачу рівня Перевірка Web-паролів 2.4.2 Вкладка «Моніторинг»Section titled “2.4.2 Вкладка «Моніторинг»”Вкладка відображає поточний стан TR-100E:
Непрочитані події можна позначити як переглянуті кнопкою Підтвердити.
2.4.3 Вкладка «Реєстратор»Section titled “2.4.3 Вкладка «Реєстратор»”Вкладка відображає кількість збережених записів, період запису, таблицю записів і графіки температур каналів. Доступні:
Очищення реєстратора доступне лише користувачу рівня
2.4.4 Вкладка «Журнал»Section titled “2.4.4 Вкладка «Журнал»”Вкладка відображає події з датою, часом, рівнем важливості та описом. Доступні:
Очищення журналу доступне лише користувачу рівня
2.4.5 Вкладка «Налаштування»Section titled “2.4.5 Вкладка «Налаштування»”Вкладка доступна лише користувачу рівня Налаштування кожного розділу завантажуються та зберігаються окремо. Кнопка Оновити повторно зчитує налаштування відкритого розділу з TR-100E, кнопка Зберегти записує зміни. Якщо для застосування збережених налаштувань потрібен перезапуск, Web-інтерфейс виводить відповідне попередження; перезапуск автоматично не виконується. У розділі Безпека збережені паролі не відображаються. Щоб залишити пароль без змін, не заповнюйте відповідне поле; щоб замінити пароль, введіть нове значення.
2.4.6 Вкладка «Сервіс»Section titled “2.4.6 Вкладка «Сервіс»”Вкладка доступна лише користувачу рівня
2.5 Використання VPN WireGuardSection titled “2.5 Використання VPN WireGuard”2.5.1 Призначення VPNSection titled “2.5.1 Призначення VPN”TR-100E підтримує VPN-з’єднання за протоколом WireGuard. VPN створює захищений мережевий канал між TR-100E і віддаленим вузлом WireGuard та дає змогу звертатися до мережевих служб пристрою через VPN-інтерфейс. Параметри VPN-з’єднання можуть бути задані вручну або отримані автоматично. Режим налаштування вибирається у Web-інтерфейсі TR-100E. Для роботи VPN TR-100E повинен мати доступ до мережі Internet, коректно налаштовані шлюз і DNS-сервери, а мережа не повинна блокувати з’єднання з віддаленим вузлом WireGuard. 2.5.2 Ручне налаштування WireGuardSection titled “2.5.2 Ручне налаштування WireGuard”Параметри VPN розташовані у Web-інтерфейсі в розділі Налаштування → VPN-WireGuard. Ручне налаштування використовується для підключення до самостійно вибраного вузла WireGuard. Для його застосування:
Після збереження змінених параметрів служба WireGuard перезапускається автоматично; перезапуск TR-100E не потрібен. Докладний порядок ручного налаштування наведено в «Додатку Б. Налаштування VPN WireGuard». 2.5.3 Автоматичне налаштування через OvervisSection titled “2.5.3 Автоматичне налаштування через Overvis”Overvis — хмарна система моніторингу та візуалізації, яка може використовувати VPN WireGuard для доступу до TR-100E. У разі вибору автоматичного режиму TR-100E ідентифікується за заводським PIN-кодом, отримує від Overvis параметри WireGuard і встановлює VPN-з’єднання. Статична зовнішня IP-адреса та перенаправлення вхідних портів на маршрутизаторі при цьому не потрібні. Коли параметр Автоматичне підключення до сервера Overvis увімкнено, поля ручного налаштування не використовуються. Поле URL сервера автоматичної конфігурації слід залишити порожнім, якщо іншу адресу не надано виробником або службою технічної підтримки. Для підключення через Overvis необхідно:
Покроковий порядок підключення наведено в «Додатку Б. Налаштування VPN WireGuard». Додаткову інформацію про систему Overvis розміщено на сайті www.overvis.com. 2.5.4 Доступ до Web-інтерфейсу та Modbus TCP через VPNSection titled “2.5.4 Доступ до Web-інтерфейсу та Modbus TCP через VPN”Установлене VPN-з’єднання саме по собі не дозволяє доступ до мережевих служб TR-100E. Потрібні служби й доступ до них через VPN налаштовуються окремо:
У режимі За загальним захистом VPN-сесії підпорядковуються загальному режиму захисту Modbus і потребують розблокування паролем на тих самих умовах, що й локальні підключення. Режим Лише читання дозволяє читання через VPN без пароля та відхиляє всі команди запису. Режим Читання та запис дозволяє читання й запис через VPN без пароля; локальні підключення й надалі підпорядковуються загальному режиму захисту Modbus. Дозволяйте через VPN лише потрібні служби й призначайте мінімально достатній рівень доступу. 2.6 Використання Modbus TCPSection titled “2.6 Використання Modbus TCP”TR-100E підключається до локальної мережі через інтерфейс Ethernet. Протокол Modbus TCP використовується для обміну даними між TR-100E і Modbus-клієнтом у мережі TCP/IP. Через Modbus TCP можна:
З міркувань безпеки пряме керування вихідними реле через Modbus TCP не передбачено: реле керуються вбудованими алгоритмами захисту відповідно до результатів вимірювань, установлених порогів, гістерезису та затримок. Це виключає обхід алгоритмів захисту віддаленою командою. TR-100E використовує дві незалежні групи регістрів Modbus: Input-регістри та Holding-регістри. Поточні стани зчитуються з Input-регістрів функцією Параметр Тайм-аут визначає допустимий час відсутності даних від Modbus-клієнта. Якщо дані не надходять протягом заданого часу, TR-100E закриває TCP-з’єднання. Службові пакети TCP Keepalive не скидають цей тайм-аут. Значення За замовчуванням механізм захисту Modbus обмежує запис у захищені Holding-регістри. Для розблокування необхідно записати пароль Modbus у регістри 52–63 символами ASCII (по два символи в регістрі, старший байт першим, рядок завершується нульовим байтом). За замовчуванням діє заводський пароль, зазначений на наклейці з QR-кодом. Успішна перевірка розблоковує лише поточну TCP-сесію; стан механізму захисту доступний у регістрі 51. Після п’яти неправильних спроб запити з цієї IP-адреси блокуються на 5 хвилин. У разі зміни пароля Modbus допускається пароль завдовжки 8…23 символи. Перевірка пароля вмикається та вимикається параметром Пароль Modbus → Захист; вимкнення перевірки не видаляє збережений пароль. Режим роботи механізму захисту задається регістром 169: Для VPN-сесій додатково діє рівень доступу, заданий параметром Доступ до Modbus через VPN. Рівні Лише читання та Читання та запис не потребують розблокування паролем через VPN і не змінюють захист локальних Modbus-підключень. Таблиця 4 - Перелік підтримуваних функцій (Modbus)
Таблиця 5 - Типи даних
Таблиця 6 – Input-регістри (функція 0x04)
Розшифрування регістрів 5–6 «Прапори стану» Установлений біт (
Розшифрування регістрів 7–8 «Готовність функцій пристрою» Кожен біт показує готовність відповідної підсистеми:
Розшифрування регістрів 24–27 «Стан CH1–CH4» Кожному каналу відповідає окремий регістр: 24 — CH1, 25 — CH2, 26 — CH3, 27 — CH4.
Таблиця 7 – Holding-регістри: службові значення та команди
2.7 Мережеві портиSection titled “2.7 Мережеві порти”Для налаштування маршрутизатора або міжмережевого екрана слід враховувати мережеві з’єднання, наведені в таблиці 8. Таблиця 8 – Мережеві порти TR-100E
Вхідні з’єднання до Web-інтерфейсу та Modbus TCP необхідно дозволяти лише з довірених мереж. Якщо використовуються лише вихідні з’єднання з NTP, DNS і сервером автоконфігурації, перенаправлення портів на маршрутизаторі не потрібне; міжмережевий екран повинен дозволяти зворотний трафік встановлених з’єднань. 3 ТЕХНІЧНЕ ОБСЛУГОВУВАННЯSection titled “3 ТЕХНІЧНЕ ОБСЛУГОВУВАННЯ”3.1 Заходи безпекиSection titled “3.1 Заходи безпеки”3.2 Періодичність технічного обслуговуванняSection titled “3.2 Періодичність технічного обслуговування”Рекомендована періодичність технічного обслуговування - кожні шість місяців. 3.3 Порядок технічного обслуговування:Section titled “3.3 Порядок технічного обслуговування:”
3.4 Діагностика та усунення несправностейSection titled “3.4 Діагностика та усунення несправностей”Таблиця 9 - Можливі несправності та способи їх усунення
4 СТРОК СЛУЖБИ ТА ГАРАНТІЯ ВИРОБНИКАSection titled “4 СТРОК СЛУЖБИ ТА ГАРАНТІЯ ВИРОБНИКА”4.1 Строк служби виробуSection titled “4.1 Строк служби виробу”Строк служби виробу становить 15 років. Після закінчення строку служби звернутися до виробника. 4.2 Строк зберіганняSection titled “4.2 Строк зберігання”Строк зберігання виробу становить 3 роки. 4.3 Гарантійний строк експлуатаціїSection titled “4.3 Гарантійний строк експлуатації”Гарантійний строк експлуатації виробу становить 10 років від дня продажу. 4.4 Гарантійне обслуговуванняSection titled “4.4 Гарантійне обслуговування”Гарантійне обслуговування здійснюється за місцем придбання або виробником виробу. 4.5 Післягарантійне обслуговуванняSection titled “4.5 Післягарантійне обслуговування”Післягарантійне обслуговування виробу виконується виробником за чинними тарифами. 5 ТРАНСПОРТУВАННЯ ТА ЗБЕРІГАННЯSection titled “5 ТРАНСПОРТУВАННЯ ТА ЗБЕРІГАННЯ”TR-100E в упаковці виробника дозволяється транспортувати та зберігати за температури від мінус 30 до +60 °C і відносної вологості не більше 98% за 35 °C (без конденсації вологи). |
| | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Додаток А: Аварійне відновлення прошивкиДОДАТОК А. АВАРІЙНЕ ВІДНОВЛЕННЯ ПРОШИВКИSection titled “ДОДАТОК А. АВАРІЙНЕ ВІДНОВЛЕННЯ ПРОШИВКИ”Основний документ: «Посібник з експлуатації TR-100E» Цей додаток описує відновлення вбудованого програмного забезпечення TR-100E за допомогою завантажувача. Процедуру застосовують, якщо штатний Web-інтерфейс не відкривається, оновлення завершилося з помилкою або TR-100E повідомляє про недійсний застосунок. Завантажувач надає два способи відновлення:
Для відновлення необхідні:
А.1 Вхід до меню завантажувачаSection titled “А.1 Вхід до меню завантажувача”
Для керування меню використовуються:
Меню містить такі пункти:
А.2 Відновлення раніше завантаженого образуSection titled “А.2 Відновлення раніше завантаженого образу”Цей спосіб не потребує комп’ютера. Використовуйте його, якщо перед збоєм файл оновлення було повністю завантажено до TR-100E.
Якщо з’являється Image not found, Image invalid або Operation failed, завантажити новий файл А.3 Завантаження нового образу через Recovery modeSection titled “А.3 Завантаження нового образу через Recovery mode”А.3.1 ПідключенняSection titled “А.3.1 Підключення”
У режимі відновлення використовуються фіксовані параметри мережі:
А.3.2 Завантаження та перевірка файлуSection titled “А.3.2 Завантаження та перевірка файлу”
Якщо завантаження було перервано до натискання Firmware, встановлена прошивка не змінюється. Не перезавантажуючи TR-100E, виберіть файл та натисніть Send ще раз: незавершене завантаження буде замінено новим. А.3.3 Встановлення прошивкиSection titled “А.3.3 Встановлення прошивки”
Перед встановленням завантажувач перевіряє сумісність, цілісність та автентичність файлу. Пошкоджений, змінений після випуску або призначений для іншого пристрою файл встановити неможливо. А.4 Повідомлення завантажувачаSection titled “А.4 Повідомлення завантажувача”
Якщо сторінка відновлення не відкривається:
Якщо після повторного завантаження справного файлу відновлення не завершується, запишіть текст повідомлення на дисплеї, стан |
| | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Додаток Б: Налаштування VPN WireGuardДОДАТОК Б. НАЛАШТУВАННЯ VPN WIREGUARDSection titled “ДОДАТОК Б. НАЛАШТУВАННЯ VPN WIREGUARD”Основний документ: «Посібник з експлуатації TR-100E» Цей додаток описує два режими налаштування VPN WireGuard:
В обох режимах TR-100E самостійно ініціює обмін із віддаленим вузлом. Для налаштування потрібен доступ до Web-інтерфейсу TR-100E з рівнем Б.1 Ручне налаштування WireGuardSection titled “Б.1 Ручне налаштування WireGuard”Б.1.1 Введення параметрівSection titled “Б.1.1 Введення параметрів”Для статичного налаштування адміністратор VPN повинен надати параметри WireGuard для TR-100E та налаштувати відповідний peer на віддаленому вузлі.
Приватний ключ, адреса інтерфейсу, публічний ключ та хост peer є обов’язковими. Для адреси інтерфейсу використовується префікс від
Якщо через статичне VPN-з’єднання потрібен доступ до Web-інтерфейсу або Modbus TCP, додатково виконати налаштування, зазначені в кроках 5–11 п. Б.2.2.
Рисунок Б.1 – статичне налаштування WireGuard Б.1.2 Перевірка підключенняSection titled “Б.1.2 Перевірка підключення”Перейти на вкладку Сервіс, у блоці Діагностика вибрати Мережа → VPN та увімкнути Автооновлення. Для правильно заповненої статичної конфігурації відображаються:
Успішний обмін із віддаленим вузлом підтверджується станом Підключено або Активно, часом у полі Рукостискання та збільшенням лічильників пакетів RX/TX. Стан Конфігурація неправильна означає, що не заповнено принаймні один обов’язковий параметр: приватний ключ, адреса інтерфейсу, публічний ключ або хост peer.
Рисунок Б.2 – стан статичного підключення WireGuard Якщо статичне підключення не встановлюється:
Б.2 Автоматичне налаштування через OvervisSection titled “Б.2 Автоматичне налаштування через Overvis”Б.2.1 Перевірка ідентифікаційних данихSection titled “Б.2.1 Перевірка ідентифікаційних даних”
Рисунок Б.3 – ідентифікаційні дані TR-100E Б.2.2 Увімкнення автоматичного підключенняSection titled “Б.2.2 Увімкнення автоматичного підключення”
Рисунок Б.4 – налаштування автоматичного підключення до Overvis
Рисунок Б.5 – налаштування доступу до Web-інтерфейсу через VPN
Рівень Читання та запис надає доступ без пароля будь-якій сесії Modbus TCP, прийнятій через VPN-інтерфейс. Використовуйте його лише для довіреної конфігурації WireGuard. Якщо віддалена зміна параметрів не потрібна, виберіть Лише читання.
Рисунок Б.6 – налаштування доступу до Modbus TCP через VPN Б.2.3 Контроль автоматичного підключенняSection titled “Б.2.3 Контроль автоматичного підключення”Після збереження налаштувань перейти на вкладку Сервіс, у блоці Діагностика вибрати Мережа → VPN та увімкнути Автооновлення. Дочекатися завершення автоматичного налаштування. Ознаки готовності до підключення через Overvis:
Після появи цих станів перейти до підключення TR-100E до облікового запису Overvis HMI.
Рисунок Б.7 – готовність WireGuard до підключення через Overvis Б.2.4 Підключення TR-100E до облікового запису Overvis HMISection titled “Б.2.4 Підключення TR-100E до облікового запису Overvis HMI”Перед продовженням переконайтеся, що TR-100E підключений до інтернету, а автоматичне налаштування WireGuard завершено відповідно до п. Б.2.3. Підготуйте 8-символьний PIN-код, зазначений на наклейці корпусу.
Рисунок Б.8 – створення підключення TR-100E за PIN-кодом
Рисунок Б.9 – TR-100E підключено до робочого простору Після створення Тип і прив’язаний пристрій змінити не можна. Якщо PIN зазначено неправильно, підключення видаляють і створюють заново. Температури це підключення саме по собі не показує: параметри TR-100E додають окремо. Б.2.5 Додавання параметрів TR-100E із шаблонуSection titled “Б.2.5 Додавання параметрів TR-100E із шаблону”Після створення підключення додайте параметри контролера із шаблону Novatek-Electro TR-100E. Адресу та порт підключення повторно вводити не потрібно.
Рисунок Б.10 – додавання параметрів TR-100E із шаблону Після застосування шаблону в дереві Параметри з’явиться нова коренева гілка з параметрами TR-100E. Щоб перевірити обмін із контролером, виділіть нову гілку та натисніть Читати (Read). Праворуч від параметрів мають з’явитися отримані значення. Для безперервного опитування увімкніть Онлайн (Live).
Рисунок Б.11 – перевірка читання параметрів TR-100E Якщо замість значень відображається помилка, перевірте, що поле ID пристрою відповідає адресі Modbus контролера та що створене підключення має стан Підключено. Додаткові відомості наведено в документації Overvis щодо підключення обладнання. |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HTTP APIHTTP API для взаємодії з пристроєм TR-100E. Усі шляхи запитів починаються з Загальні принципиSection titled “Загальні принципи”
Рівні доступуSection titled “Рівні доступу”
Усі запити АвторизаціяSection titled “Авторизація”
Для Web-авторизації використовуються два незалежні паролі: один для рівня
Часткове оновлення налаштуваньSection titled “Часткове оновлення налаштувань”
Запити GETSection titled “Запити GET”
Запити POSTSection titled “Запити POST”
Помилки та коди стануSection titled “Помилки та коди стану”
|
| | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/version/Базова загальнодоступна кінцева точка для ідентифікації пристрою та отримання версії прошивки перед входом у систему. Авторизація: не потрібна. Кінцева точка не повертає конфіденційних налаштувань, паролів, мережевих секретів або діагностичних даних. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
deviceId | число | так | Числовий ідентифікатор типу пристрою |
deviceName | рядок | так | Назва пристрою |
firmwareVersion | рядок | так | Версія прошивки |
bootloaderVersion | рядок | null | так | Версія завантажувача, яку він записав до резервного регістру RTC; null, якщо завантажувач не повідомив версію |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
GET /api/auth/status/Повертає поточний рівень доступу для цього запиту. Авторизація: не потрібна. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
accessLevel | рядок | так | Поточний рівень доступу: guest, user або powerUser |
guest, user або powerUser.powerUser вимкнено, повертається powerUser; інакше, якщо перевірку user вимкнено, повертається user.| | ||||||||
|---|---|---|---|---|---|---|---|---|
GET /api/auth/salt/Отримує Авторизація: не потрібна. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
salt | рядок | так | 40-символьний рядок ASCII |
salt40 символів.[A-Za-z0-9].POST /api/auth/login/, незалежно від її результату.| | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/auth/login/Створює авторизований сеанс. Авторизація: не потрібна. Поля запитуSection titled “Поля запиту”
Формула хешуSection titled “Формула хешу”де
Значення Якщо перевірку Web-пароля вимкнено налаштуванням Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
authType | рядок | так | Завжди "Bearer" |
token | рядок | так | 48-символьний рядок ASCII [A-Za-z0-9] |
ttlSec | число | так | Тривалість сеансу в секундах |
accessLevel | рядок | так | "user" або "powerUser" |
5 невдалих спроб усі інтерфейси блокуються на 300 секунд.300 секунд бездіяльності або після успішного входу.401 (неправильний пароль){ "error": "ERROR_UNAUTHORIZED", "message": "3 attempts left"}429 (активне блокування){ "error": "ERROR_LOCKED", "message": "Retry after 247 seconds"}| |
|---|
POST /api/auth/logout/Завершує поточний сеанс. Авторизація: Bearer. Тіло запиту не містить значущих полів. Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/state/get/?device&network&relays&leds&protection&recorder&channels&log&ntp&httpd&modbus&wireguardОтримує одну або кілька груп верхнього рівня з поточним станом роботи. Авторизація: Bearer. Параметри запитуSection titled “Параметри запиту”Кожен ключ запиту є прапорцем, що запитує відповідну групу. Допустимі ключі:
Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
uptimeSec | число | Час роботи від моменту ввімкнення (секунди) |
dateTimeUtc | рядок | Поточний час пристрою у форматі ISO 8601 UTC |
localOffsetMin | число | Фактичне зміщення місцевого часу у хвилинах, з урахуванням DST |
dstActive | логічний | Чи активний DST |
deviceNeedReboot | логічний | Пристрій потребує перезавантаження |
isDiagnosticMode | логічний | Режим діагностики активовано під час запуску натисканням кнопок «Вгору» + «Вниз» |
settingsValid | логічний | Збережені налаштування коректні |
calibrationValid | логічний | Збережене заводське калібрування коректне |
rebootAfterSec | число|null | Секунд до запланованого перезавантаження (null = не заплановано) |
network| Поле | Тип | Опис |
|---|---|---|
macAddress | рядок | MAC-адреса |
isUnique | логічний | true = унікальна EUI-48, false = резервна |
ipAddress | рядок | IP-адреса |
subnetMask | рядок | Маска підмережі |
gateway | рядок | Шлюз |
dns | масив рядків | DNS-сервери |
dhcp.state | рядок | Стан DHCP: off, configuring, searching, requesting, bound, renewing, rebinding, retrying |
dhcp.serverAddress | рядок | IPv4-адреса DHCP-сервера |
dhcp.leaseSeconds | число | Повна тривалість оренди у секундах |
dhcp.remainingSeconds | число | Залишок тривалості оренди у секундах |
relays| Поле | Тип | Опис |
|---|---|---|
trip | логічний | Стан реле «Перегрів» |
alarm | логічний | Стан реле «Тривога» |
fan | логічний | Стан реле «Вентиляція» |
fault | логічний | Стан реле «Відмова» |
inTestMode | логічний | Активна службова перевірка реле |
leds| Поле | Тип | Опис |
|---|---|---|
inTestMode | логічний | Активна службова перевірка світлодіодів |
protection| Поле | Тип | Опис |
|---|---|---|
trip | логічний | Логічний прапорець захисту «Перегрів» |
alarm | логічний | Логічний прапорець захисту «Тривога» |
fan | логічний | Логічний прапорець захисту «Вентиляція» |
fault | логічний | Логічний прапорець захисту «Відмова» |
recorder| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Реєстратор увімкнено |
available | логічний | Реєстратор доступний |
total | число | Кількість доступних записів |
periodSec | число | Поточний період записування (секунди) |
lastError | число | Код останньої помилки |
errorCount | число | Кількість помилок |
channelsМасив із 4 елементів (CH1..CH4).
| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Канал увімкнено |
temperature | рядок|null | Поточна температура (десяткове число, 1 цифра після крапки), null якщо значення некоректне |
minTemperature | рядок|null | Мінімальна температура |
maxTemperature | рядок|null | Максимальна температура |
trend | рядок | "up", "down", "stable" |
circuitState | рядок | "normal", "open", "short" |
trip | логічний | Канал у стані «Перегрів» |
alarm | логічний | Канал у стані «Тривога» |
fan | логічний | Канал у стані «Вентиляція» |
log| Поле | Тип | Опис |
|---|---|---|
available | логічний | Журнал доступний |
total | число | Кількість доступних подій |
lastTimestampUtc | рядок|null | Мітка часу UTC останньої події; null якщо журнал порожній |
pending | число | Кількість непідтверджених подій у поточному сеансі живлення |
ntp| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | NTP увімкнено в налаштуваннях |
available | логічний | Клієнт NTP готовий у поточному стані роботи |
lastSyncUtc | рядок|null | Час UTC останньої успішної синхронізації; null якщо синхронізації не було |
syncCount | число | Кількість успішних синхронізацій від моменту ввімкнення |
failCount | число | Кількість невдалих спроб від моменту ввімкнення |
httpd| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Web-сервер увімкнено в налаштуваннях |
available | логічний | HTTPD готовий у поточному стані роботи |
activeConnections | число | Активні наразі TCP-з’єднання |
maxConnections | число | Максимальна кількість одночасних з’єднань (константа) |
activeSessions | число | Авторизовані наразі сеанси |
maxSessions | число | Максимальна кількість одночасних сеансів (константа) |
port | число | TCP-порт HTTP-сервера |
connections | масив | Активні TCP-з’єднання |
connections[].ip | рядок | IP-адреса клієнта |
connections[].port | число | TCP-порт клієнта |
modbus| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Modbus TCP увімкнено в налаштуваннях |
available | логічний | Сервер Modbus TCP готовий |
activeConnections | число | Поточна кількість активних TCP-з’єднань |
maxConnections | число | Максимальна кількість одночасних з’єднань |
blockedIps | число | Кількість заблокованих IP-адрес після невдалих спроб введення пароля |
port | число | Modbus Порт TCP |
rxPackets | число | Отримано пакетів через усі з’єднання від моменту запуску |
txPackets | число | Надіслано пакетів через усі з’єднання від моменту запуску |
rxErrors | число | Помилки отримання через усі з’єднання від моменту запуску |
txErrors | число | Помилки передавання через усі з’єднання від моменту запуску |
exceptionResp | число | Відповідей Modbus Exception надіслано від моменту запуску |
rxBytes | число | Отримано байтів через усі з’єднання від моменту запуску |
txBytes | число | Надіслано байтів через усі з’єднання від моменту запуску |
rxPerSec | число | Поточна сумарна швидкість отримання, packets/s |
txPerSec | число | Поточна сумарна швидкість передавання, packets/s |
connections | масив | Активні TCP-з’єднання |
connections[].ip | рядок | IP-адреса клієнта |
connections[].port | число | TCP-порт клієнта |
connections[].uptimeSec | число | Час роботи з’єднання, секунд |
connections[].unlocked | логічний | Захищені операції розблоковано для з’єднання |
connections[].rxPackets | число | Отримано пакетів через з’єднання |
connections[].txPackets | число | Надіслано пакетів через з’єднання |
connections[].rxErrors | число | Помилки отримання через з’єднання |
connections[].txErrors | число | Помилки передавання через з’єднання |
connections[].exceptionResp | число | Відповідей Modbus Exception надіслано через з’єднання |
connections[].rxBytes | число | Отримано байтів через з’єднання |
connections[].txBytes | число | Надіслано байтів через з’єднання |
connections[].rxPerSec | число | Поточна швидкість отримання через з’єднання, packets/s |
connections[].txPerSec | число | Поточна швидкість передавання через з’єднання, packets/s |
wireguard| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | WG увімкнено в налаштуваннях |
mode | рядок | Режим конфігурації: "auto" або "static" |
status | об’єкт | Стислий робочий стан WireGuard |
endpoint | об’єкт | Кінцева точка віддаленого вузла |
interface | об’єкт | Відповідність налаштованого та фактичного інтерфейсів |
wireguard.status| Поле | Тип | Опис |
|---|---|---|
link | рядок | Стан з’єднання: "disabled", "netif", "configured", "connected", "up" |
config | рядок | Стан конфігурації: "disabled", "staticInvalid", "pause", "serverResolving", "serverConnecting", "discoverWait", "connectWait", "peerResolving", "ready" |
lastPeerUpUtc | рядок|null | Час UTC останньої доступності вузла; null якщо ніколи |
lastHandshakeAgeSec | число|null | Час від останнього handshake/keepalive вузла у секундах; null якщо немає |
lastActivityAgeSec | число|null | Час від останньої активності вузла (handshake/keepalive, RX, або TX) у секундах; null якщо немає |
rxPackets | число | Отримано пакетів через тунель WG |
txPackets | число | Надіслано пакетів через тунель WG |
wireguard.endpoint| Поле | Тип | Опис |
|---|---|---|
hostname | рядок|null | Ім’я вузла кінцевої точки |
address | рядок|null | Визначена IP-адреса кінцевої точки |
port | число|null | Порт кінцевої точки |
keepaliveSec | число|null | Поточний інтервал keepalive вузла у секундах |
peerPublicKey | рядок|null | Відкритий ключ вузла |
allowedIps | масив | Дозволені мережі вузла у форматі IPv4 CIDR |
wireguard.interface| Поле | Тип | Опис |
|---|---|---|
configured | рядок|null | Налаштована адреса інтерфейсу у нотації CIDR |
runtime | рядок|null | Фактична активна адреса інтерфейсу у нотації CIDR |
devicePublicKey | рядок|null | Відкритий ключ пристрою |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/settings/get/?meta&general&dateTime&display&access&recorder&network&ntp&web&modbus&vpnWireguard&channels&protectionОтримує одну або кілька груп верхнього рівня з постійними налаштуваннями. Авторизація: Bearer.
Параметри запитуSection titled “Параметри запиту”Кожен ключ запиту є прапорцем, що запитує відповідну групу. Допустимі ключі:
Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
sequence | число | Порядковий номер збереження налаштувань |
fwVersion | рядок | Версія прошивки, яка створила знімок |
isDefault | логічний | Налаштування за замовчуванням |
savedAt | рядок | Час останнього збереження (ISO 8601 UTC) |
dataLength | число | Довжина даних |
dataCrc32 | рядок | CRC32 даних (шістнадцяткове число, 8 символів) |
headerCrc32 | рядок | CRC32 заголовка (шістнадцяткове число, 8 символів) |
general| Поле | Тип | Опис |
|---|---|---|
language | рядок | Мова інтерфейсу |
logDebugMask | число | Бітова маска модулів журналу налагодження (bit0 = WireGuard) |
dateTime| Поле | Тип | Опис |
|---|---|---|
timezoneOffset | число | Зміщення часового поясу у хвилинах |
dst | об’єкт | Налаштування сезонного переведення годинника |
dst.mode | число | Режим DST |
dst.deltaMin | число | Величина зміщення у хвилинах |
dst.startLocal | рядок | Початок DST (місцевий час) |
dst.endLocal | рядок | Завершення DST (місцевий час) |
display| Поле | Тип | Опис |
|---|---|---|
contrast | число | Контрастність |
activeBacklightPercent | число | Яскравість активного підсвічування, % |
idleBacklightEnable | логічний | Чи зменшується яскравість підсвічування під час бездіяльності |
idleBacklightPercent | число | Яскравість підсвічування під час бездіяльності, % |
idleTimeoutSec | число | Час бездіяльності до зменшення яскравості, секунд |
access| Поле | Тип | Опис |
|---|---|---|
devPasswordEnable | логічний | Вимагати пароль під час входу до локального меню |
webUserPassEnable | логічний | Вимагати пароль Web-доступу рівня user |
webPwrPassEnable | логічний | Вимагати пароль Web-доступу рівня powerUser |
modbusPasswordEnable | логічний | Вимагати пароль для розблокування захищених операцій Modbus TCP |
Поля devPassword, webUserPass, webPwrPass і modbusPassword навмисно вилучено з відповіді. API не розкриває ані збережені паролі, ані факт установлення власного значення. Клієнти мають визначати стан захисту лише за прапорцями ...PasswordEnable. На рівні user ці прапорці повертаються зі значенням null; їхні значення доступні для powerUser.
recorder| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Реєстрацію температури увімкнено |
periodSec | число | Період записування у секундах |
network| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Ethernet увімкнено |
dhcpEnable | логічний | DHCP увімкнено |
dns | масив рядків | DNS-сервери |
ipAddress | рядок | Статична IP-адреса |
subnetMask | рядок | Маска підмережі |
gateway | рядок | Шлюз |
ntp| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | NTP увімкнено |
syncPeriodSec | число | Період синхронізації (секунди) |
server1 | рядок | Основний NTP-сервер |
server2 | рядок | Резервний NTP-сервер |
web| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Web-сервер увімкнено |
port | число | Порт HTTP |
vpnTrusted | логічний | Довіряти Web-доступу через VPN |
vpnAccessLevel | число | Доступ через VPN: 0 = стандартна авторизація за паролем, 1 = user, 2 = powerUser |
modbus| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Modbus TCP увімкнено |
unitId | число | Ідентифікатор пристрою |
port | число | Порт TCP |
timeoutSec | число | Час очікування (секунди) |
protectMode | число | Режим захисту: 0 = немає, 1 = захист від запису, 2 = захист від читання та запису |
vpnAccessLevel | число | Доступ через VPN: 0 = вимкнено, 1 = використовує загальний захист, 2 = лише читання, 3 = читання й запис |
vpnWireguard| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | WireGuard увімкнено |
autoConfigEnable | логічний | Режим автоматичної конфігурації Overvis (параметри отримуються з хмари за ідентифікатором пристрою) |
autoConfigUrl | рядок | URL сервера автоматичної конфігурації |
privateKey | рядок | Статичний закритий ключ WireGuard у форматі base64 |
address | рядок | Адреса локального інтерфейсу у нотації CIDR, наприклад 10.0.0.2/24 |
peerPublicKey | рядок | Статичний відкритий ключ вузла WireGuard у форматі base64 |
peerHostname | рядок | Ім’я вузла |
peerPort | число | Порт вузла |
allowedIps | масив рядків | Рівно 2 маршрути вузла у форматі CIDR |
keepaliveSec | число | Постійний інтервал keepalive у секундах |
autoConfigEnable = false, використовуються всі статичні поля vpnWireguard, зокрема ключі та кінцева точка.autoConfigEnable = true, статичні поля vpnWireguard під час роботи ігноруються; WireGuard/Overvis отримує параметри через API службової ідентифікації для автоматичної конфігурації.channels| Поле | Тип | Опис |
|---|---|---|
filterLevel | число | Рівень фільтра |
items | масив | Масив із 4 каналів |
channels.items[]| Поле | Тип | Опис |
|---|---|---|
enabled | логічний | Канал увімкнено |
sensorTypeId | число | Ідентифікатор типу датчика (see /api/reference/sensor-types/) |
userOffset | число | Користувацьке зміщення |
ptcMinikaNominal | число | Номінальне значення PTC Minika |
linked | число | Належність до спільної групи порогів і гістерезису TRIP/ALARM/FAN: 0 = незалежний, 1 = пов’язаний |
protectionprotection.trip / protection.alarm| Поле | Тип | Опис |
|---|---|---|
delaySec | число | Затримка спрацювання (секунди) |
channels | масив | Уставки для кожного каналу (4 elements) |
protection.trip.channels[] / protection.alarm.channels[]| Поле | Тип | Опис |
|---|---|---|
threshold | число | Уставка температури |
hysteresis | число | Гістерезис |
protection.fan| Поле | Тип | Опис |
|---|---|---|
mode | число | Режим роботи |
delaySec | число | Затримка спрацювання (секунди) |
channels | масив | Уставки для кожного каналу (4 elements) |
protection.fault| Поле | Тип | Опис |
|---|---|---|
delaySec | число | Затримка спрацювання (секунди) |
Наведені нижче діапазони відповідають обмеженням прошивки в Application/User/settings.h.
general.language: en | pl | ua | ru.general.logDebugMask: 0..65535 (бітова маска).dateTime.timezoneOffset: -720..840 хвилин.dateTime.dst.mode: 0..3 (OFF, EU, US, MANUAL).dateTime.dst.deltaMin: 0..180 хвилин.display.contrast: 0..64.display.activeBacklightPercent: 0..100.display.idleBacklightEnable: true | false.display.idleBacklightPercent: 0..100.display.idleTimeoutSec: 30..3600 секунд.access.devPasswordEnable, access.webUserPassEnable, access.webPwrPassEnable, access.modbusPasswordEnable: true | false.access; обмеження щодо їх запису описано в POST /api/settings/set/.recorder.enabled: true | false.recorder.periodSec: 5..3600 секунд.ntp.syncPeriodSec: 300..86400 секунд.ntp.server1, ntp.server2: до 31 символів кожен.web.port: 1..65535.web.vpnTrusted: true | false.web.vpnAccessLevel: 0..2 (password, user, powerUser); 0 використовує стандартну авторизацію за паролем.modbus.unitId: 0..247; 0 — приймати запити з будь-яким Unit ID.modbus.port: 1..65535.modbus.timeoutSec: 1..3600 секунд.modbus.protectMode: 0..2 (none, write-protect, read-write-protect).modbus.vpnAccessLevel: 0..3 (disabled, password, read-only, read-write).vpnWireguard.peerPort: 1..65535.vpnWireguard.keepaliveSec: 1..300 секунд.channels.filterLevel: 1..10.channels.items[].sensorTypeId: 0..MSR_SENSOR_COUNT-1; допустимі значення опубліковано через GET /api/reference/sensor-types/.channels.items[].userOffset: -10.0..10.0 °C.channels.items[].ptcMinikaNominal: 60.0..180.0 °C.channels.items[].linked: 0..1.protection.trip.delaySec, protection.alarm.delaySec, protection.fan.delaySec, protection.fault.delaySec: 0..60 секунд.protection.trip.channels[].threshold, protection.alarm.channels[].threshold, protection.fan.channels[].threshold: -40.0..240.0 °C.protection.trip.channels[].hysteresis, protection.alarm.channels[].hysteresis, protection.fan.channels[].hysteresis: 0.0..100.0 °C.protection.fan.mode: 0..3.| |
|---|
POST /api/settings/set/Частково оновлює збережені налаштування (семантика злиття). Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
ПеревіркаSection titled “Перевірка”
Обмеження полів, доступних для записуSection titled “Обмеження полів, доступних для запису”Наведені нижче обмеження відповідають перевірці у прошивці в
Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/reference/sensor-types/Отримує список підтримуваних типів датчиків. Авторизація: Bearer. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
items | масив | так | Список типів |
items[].id | число | так | Числовий ідентифікатор |
items[].shortName | рядок | так | Коротка назва датчика |
items[].description | рядок | так | Опис датчика |
| | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/history/temperature/info/Отримує метадані вікна оперативної історії без масиву вибірок. Авторизація: Bearer. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
capacity | число | так | Максимальна місткість кільцевого буфера для кожного каналу |
periodSec | число | так | Інтервал записування вибірок у секундах |
total | число | так | Поточна кількість коректних вибірок |
lastSequence | число | так | Порядковий номер найновішої вибірки |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/history/temperature/samples/?page=1&pageSize=2&direct=descОтримує сторінку синхронізованих вибірок історії для всіх чотирьох каналів. Авторизація: Bearer. Параметри запитуSection titled “Параметри запиту”
*Потрібно вказати Section titled “cursor” |
| Поле | Тип | Опис |
|---|---|---|
nextCursor | число|null | Курсор для наступного запиту. null, якщо досягнуто кінця запиту. |
periodSec | число | Інтервал записування історії в секундах. |
lastSequence | число | Поточний монотонний порядковий номер на момент запиту. |
samples | масив | Вибірки в порядку direct (елементів: 0..pageSize). |
sampleCount | число | Кількість вибірок у поточному наборі результатів. |
Якщо доступних даних більше немає, відповідь містить sampleCount: 0, samples: []
і nextCursor: null. Це не є помилкою.
samples[]| Поле | Тип | Опис |
|---|---|---|
sequence | число | Порядковий номер цієї вибірки. |
channels | масив | 4 елементи (CH1..CH4). |
samples[].channels[]| Поле | Тип | Опис |
|---|---|---|
state | рядок | "normal", "open", "short", "invalid" |
temperature | число|null | Температура (null, якщо значення некоректне) |
GET /api/history/temperature/samples/?page=1&pageSize=20&direct=desc→ { "nextCursor": 1216, "sampleCount": 20, "samples": [...] }
GET /api/history/temperature/samples/?cursor=1216&pageSize=20&direct=desc→ { "nextCursor": 1196, "sampleCount": 20, "samples": [...] }
GET /api/history/temperature/samples/?cursor=1196&pageSize=20&direct=desc→ { "nextCursor": null, "sampleCount": 20, "samples": [...] }У першому запиті використовується page=1; у наступних — cursor із попередньої відповіді.
| | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/recorder/info/Отримує метадані реєстратора без масиву записів. Авторизація: Bearer. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
capacity | число | так | Максимальна місткість кільцевого буфера |
total | число | так | Кількість доступних архівних записів |
oldestSequence | число | так | Порядковий номер найстарішого запису |
lastSequence | число | так | Порядковий номер найновішого запису |
period | число | так | Налаштований інтервал записування в секундах (1..3600); записування вмикається окремо параметром tempRecordEnable |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/recorder/records/?page=1&pageSize=2&direct=descОтримує сторінку архівних записів реєстратора. Авторизація: Bearer. Параметри запитуSection titled “Параметри запиту”
*Потрібно вказати Section titled “cursor” |
| Поле | Тип | Опис |
|---|---|---|
nextCursor | число|null | Курсор для наступного запиту. null, якщо досягнуто кінця запиту. |
recordCount | число | Кількість записів у поточному наборі результатів (0..pageSize). |
records | масив | Записи в порядку direct. |
Якщо доступних даних більше немає, відповідь містить recordCount: 0, records: []
і nextCursor: null. Це не є помилкою.
records[]| Поле | Тип | Опис |
|---|---|---|
sequence | число | Порядковий номер запису |
timestamp | рядок | ISO 8601 UTC |
channels | масив | 4 елементи (CH1..CH4) |
records[].channels[]| Поле | Тип | Опис |
|---|---|---|
state | рядок | "normal", "open", "short", "invalid" |
temperature | число|null | Температура (null, якщо стан не "normal") |
enabled | логічний | Чи ввімкнено канал |
trip | логічний | Стан реле «Перегрів» |
alarm | логічний | Стан реле «Тривога» |
fan | логічний | Стан реле «Вентиляція» |
GET /api/recorder/records/?page=1&pageSize=5&direct=desc→ { "nextCursor": 1529, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1529&pageSize=5&direct=desc→ { "nextCursor": 1524, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1524&pageSize=5&direct=desc→ { "nextCursor": 1519, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1519&pageSize=5&direct=desc→ { "nextCursor": 1514, "recordCount": 5, "records": [...] }
GET /api/recorder/records/?cursor=1514&pageSize=5&direct=desc→ { "nextCursor": null, "recordCount": 5, "records": [...] }У першому запиті використовується page=1; у наступних — cursor із попередньої відповіді.
| |
|---|
GET /api/recorder/export.csv/Експортує дані реєстратора у форматі CSV. Авторизація: Bearer. Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/recorder/clear/Очищає реєстратор. Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
Порожнє або синтаксично некоректне тіло JSON → Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/log/info/Отримує зведені відомості про журнал подій. Авторизація: Bearer. Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
capacity | число | так | Максимальна місткість кільцевого буфера |
total | число | так | Кількість доступних подій |
pending | число | так | Кількість непідтверджених подій у поточному сеансі живлення |
oldestSequence | число | так | Порядковий номер найстарішої доступної події в кільцевому буфері. Для сторінок інтерфейсу, що відображають oldest події, це основна ознака того, що старий край вікна справді змістився через витіснення подій. |
lastSequence | число | так | Порядковий номер найновішої події. Інтерфейс використовує це поле для виявлення нових подій: якщо значення зросло порівняно з попередньо збереженим, до журналу додано N = lastSequence_new - lastSequence_old нових подій. Отримувати ці N подій доречно, лише якщо поточна сторінка інтерфейсу містить попередньо збережений lastSequence (тобто користувач перебуває на останній сторінці, де з’являються нові записи); на інших сторінках оновлення не потрібне. |
totalBySeverity | об’єкт | так | Розподіл total за рівнем важливості |
pendingBySeverity | об’єкт | так | Розподіл pending за рівнем важливості |
totalBySeverity| Поле | Тип | Опис |
|---|---|---|
debug | число | Кількість доступних подій DEBUG |
info | число | Кількість доступних подій INFO |
warning | число | Кількість доступних подій WARNING |
error | число | Кількість доступних подій ERROR |
fault | число | Кількість доступних подій FAULT |
pendingBySeverity| Поле | Тип | Опис |
|---|---|---|
debug | число | Кількість непідтверджених подій DEBUG |
info | число | Кількість непідтверджених подій INFO |
warning | число | Кількість непідтверджених подій WARNING |
error | число | Кількість непідтверджених подій ERROR |
fault | число | Кількість непідтверджених подій FAULT |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/log/events/?page=1&pageSize=1&direct=descОтримує сторінку подій журналу зі стабільною пагінацією. Авторизація: Bearer. Параметри запитуSection titled “Параметри запиту”
*Потрібно вказати Section titled “cursor” |
| Поле | Тип | Опис |
|---|---|---|
nextCursor | число|null | Курсор для наступного запиту. null, якщо досягнуто кінця запиту. |
eventCount | число | Кількість подій у поточному наборі результатів (0..pageSize). |
events | масив | Події в порядку direct. |
Якщо доступних даних більше немає, відповідь містить eventCount: 0, events: []
і nextCursor: null. Це не є помилкою.
events[]| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
sequence | число | так | Порядковий номер події |
timestamp | рядок | так | ISO 8601 UTC |
errorCode | число | так | Код помилки |
pending | логічний | так | true, якщо подію ще не підтверджено в поточному сеансі живлення |
severity | рядок | так | "DEBUG", "INFO", "WARNING", "ERROR", "FAULT" |
dataType | рядок | так | "GENERIC", "FAULT", "NETWORK" |
generic | об’єкт | ні | Наявне, якщо dataType = "GENERIC" |
fault | об’єкт | ні | Наявне, якщо dataType = "FAULT" |
network | об’єкт | ні | Наявне, якщо dataType = "NETWORK" |
generic| Поле | Тип | Опис |
|---|---|---|
message | рядок | Текст події |
| Поле | Тип | Опис |
|---|---|---|
taskName | рядок | Назва завдання |
registers | рядок | Один рядок у форматі PC=... LR=... SP=... CFSR=... HFSR=... MMFAR=... BFAR=... R0=... R1=... R2=... R3=... R12=... xPSR=... |
network| Поле | Тип | Опис |
|---|---|---|
message | рядок | Текст |
remoteIp | рядок | Віддалена IP-адреса |
remotePort | число | Віддалений порт |
localPort | число | Локальний порт |
lwipError | число | Код помилки lwIP |
GET /api/log/events/?page=1&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 245, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=245&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 240, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=240&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 235, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=235&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": 230, "eventCount": 5, "events": [...] }
GET /api/log/events/?cursor=230&pageSize=5&direct=desc&severityMask=31→ { "nextCursor": null, "eventCount": 5, "events": [...] }У першому запиті використовується page=1; у наступних — cursor із попередньої відповіді.
Завдяки cursor сервер не сканує повторно вже прочитані записи,
що особливо важливо під час фільтрування за severityMask.
| |
|---|
GET /api/log/export.log/Експортує журнал у текстовому форматі. Авторизація: Bearer. Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/log/acknowledge/Скидає ознаку непідтверджених подій. Авторизація: Bearer. Поля запитуSection titled “Поля запиту”
Порожнє тіло або некоректний JSON → Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/log/clear/Очищає журнал подій. Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
Порожнє тіло або некоректний JSON → Відповідь Section titled “Відповідь 200” |
| |
|---|
Сервіс калібруванняЗаводське калібрування виконується в межах одного спільного для всього пристрою сеансу. Сеанс монопольно використовує вимірювальний тракт, завершується після 30 секунд бездіяльності та зберігає чернетку в оперативній пам’яті до операції АвторизаціяSection titled “Авторизація”
Модель данихSection titled “Модель даних”Передбачено шість незалежних комірок: Кожен збережений знімок містить застосований абсолютний допуск і необроблені значення АЦП для чотирьох каналів. Поточні значення опору та перевірки для вибраної комірки обчислюються лише за її еталонним і зчитаним значеннями АЦП: Допуск обчислює інструмент виробника. Під час операції Одразу після зчитування відповідний елемент Вихідні дані завершеного знімка не змінюються, доки ту саму комірку не буде зчитано повторно. Зчитування іншої точки не робить завершені знімки недійсними. GET /api/service/calibration/report/Section titled “GET /api/service/calibration/report/”Формує останній повний звіт про якість зі збережених комірок калібрування. Окрема сутність звіту у Flash-пам’яті не зберігається. Відповідь Section titled “Відповідь 200, звіт недоступний” |
| | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Підтвердження права власності для OvervisЗапит підтверджує фізичний доступ до TR-100E під час підключення пристрою до Overvis за допомогою PIN-коду. Код відображається на пристрої не більше ніж 5 хвилин. Користувач може ввести цей код в Overvis або підтвердити підключення, вибравши Так на TR-100E. Код є частиною поточного стану: він не зберігається у Flash/EEPROM і не повертається API стану. POST /api/service/challenge/set/Section titled “POST /api/service/challenge/set/”Установлює, замінює або очищає запит на підтвердження. Доступ: лише WireGuard, Bearer/неявна авторизація ( УстановленняSection titled “Установлення”Поле Відповідь ОчищенняSection titled “Очищення”Відповідь Порожнє тіло або некоректний JSON повертає GET /api/service/challenge/status/Section titled “GET /api/service/challenge/status/”Отримує узгоджений знімок стану запиту на підтвердження. Доступ: лише WireGuard, Bearer/неявна авторизація ( Відповідь
Значення Після вибору Так TR-100E відображає екран очікування, доки Overvis не прочитає стан Якщо користувач підтверджує право власності, вводячи код в Overvis, хмарний сервіс порівнює його з початковим значенням і після успішної перевірки надсилає |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/firmware/apply/Застосовує раніше завантажений та перевірений образ OTA. Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
Порожнє або синтаксично некоректне тіло JSON → Відповідь Section titled “Відповідь 200” |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Сеанс завантаження прошивкиЗавантаження файлу GET /api/service/firmware/upload/status/Section titled “GET /api/service/firmware/upload/status/”Отримує поточний стан сеансу завантаження та дійсність образу OTA. Авторизація: Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
uploadInProgress | логічний | Триває стирання, отримання або перевірка |
imageValid | логічний | Образ OTA повністю завантажено та перевірено |
receivedBytes | число | Кількість підтверджених байтів |
totalBytes | число | Очікуваний розмір образу |
percent | число | Перебіг у відсотках |
lastError | число | Код помилки (0 = немає) |
lastInstallState | рядок | Останній стан установлення: "idle", "ready", "running", "failed", "unknown" |
meta | об’єкт | Метадані перевіреного образу; наявні лише за умови imageValid: true |
meta.fwVersion | рядок | Версія прошивки з образу OTA, до 15 символів ASCII (наприклад, 1.0 або 1.2.3-rc4) |
meta.buildTimestamp | число | Часова позначка складання у форматі Unix |
meta.deviceStr | рядок | Мітка цільового апаратного забезпечення; для цього пристрою — TR-100E (48) |
meta.description | рядок | Опис образу |
Відкриває сеанс завантаження, задає розмір образу та готує розділ OTA.
Авторизація: Bearer (powerUser).
{ "size": 524288}| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
size | число | так | Ціле число: розмір образу OTA в байтах (> 0 і ≤ розміру розділу OTA) |
erase/verify → 503 ERROR_NOT_READY.200{ "acceptedOffset": 0}Записує фрагмент образу OTA.
Авторизація: Bearer (powerUser).
Content-Type: application/octet-streamoffset: зміщення фрагмента в повному образі.1024 байти).| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
offset | число | так | Ціле число: невід’ємне зміщення в повному образі OTA |
offset має відповідати очікуваному зміщенню або вказувати на вже підтверджений фрагмент (ідемпотентна повторна спроба).400 ERROR_INVALID_VALUE.400 ERROR_INVALID_VALUE.200{ "acceptedOffset": 1024}Завершує сеанс завантаження та розпочинає перевірку.
Авторизація: Bearer (powerUser).
{ "confirm": true}400 ERROR_INVALID_VALUE.200{ "uploadInProgress": false, "imageValid": true, "receivedBytes": 524288, "totalBytes": 524288, "percent": 100, "lastError": 0, "lastInstallState": "ready", "meta": { "fwVersion": "1.0", "buildTimestamp": 1785412800, "deviceStr": "TR-100E (48)", "description": "Production firmware" }}Видаляє підготовлений образ OTA та скидає сеанс завантаження.
Авторизація: Bearer (powerUser).
{ "confirm": true}Порожнє або синтаксично некоректне тіло JSON → 400 ERROR_API_PARSING.
Відсутнє поле confirm, значення нелогічного типу або false → 400 ERROR_INVALID_ARGUMENT.
200Повертає повний стан у тому самому форматі, що й GET /api/service/firmware/upload/status/.
| | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/service/identity/get/Повертає службову інформацію пристрою. Авторизація: Bearer ( Тіло запиту не використовується. Параметри запитуSection titled “Параметри запиту”
Приклад: Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
available | логічний | Службові дані пристрою доступні |
donglePresent | логічний | Апаратний сервісний ключ наявний |
hasDevicePrivateKey | логічний | Закритий ключ пристрою задано |
hasDevicePassword | логічний | Пароль пристрою задано; значення пароля не розкривається |
uuid | рядок | null | Повний унікальний ідентифікатор мікроконтролера у форматі XXXXXXXX-XXXXXXXX-XXXXXXXX |
devicePublicKey | рядок | null | Відкритий ключ пристрою у форматі WireGuard base64 |
macAddress | рядок | Фактична MAC-адреса у форматі XX:XX:XX:XX:XX:XX, зокрема резервне значення |
isUnique | логічний | true, якщо MAC-адресу прочитано з мікросхеми EUI-48; false, якщо використовується резервне значення, отримане з UUID мікроконтролера |
urlAutoConfig | рядок | null | URL автоматичної конфігурації |
manufacturer | рядок | null | Рядок виробника |
pinCode | рядок | null | PIN-код |
devicePassword | рядок | null | Пароль пристрою. Наявний лише в разі запиту з ?includePassword=1 |
Якщо службові дані пристрою ще не готові, API повертає 503 ERROR_NOT_READY.
| | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/service/identity/set/Оновлює ідентифікаційні поля, крім закритого ключа пристрою, та зберігає їх в EEPROM. Авторизація: Bearer ( Тіло запиту має бути об’єктом JSON без додаткової обгортки Поля запитуSection titled “Поля запиту”
Обмеження довжини:
Порожнє тіло → Тіло, що не є об’єктом → Якщо не надано жодного підтримуваного поля → Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/reboot/Запускає відкладене перезавантаження. Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/settings/reset/Скидає налаштування до заводських значень за замовчуванням. Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
Порожнє або синтаксично некоректне тіло JSON → Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/time/set/Установлює системний час (RTC) вручну. Авторизація: Bearer ( Поля запитуSection titled “Поля запиту”
ПеревіркаSection titled “Перевірка”
Відповідь Section titled “Відповідь 200” |
| | ||||||||
|---|---|---|---|---|---|---|---|---|
POST /api/service/time/sync/Запускає примусову синхронізацію часу через SNTP. Авторизація: Bearer. Поля запитуSection titled “Поля запиту”
Порожнє тіло → Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/adc/, POST /api/debug/adc/start/, POST /api/debug/adc/stop/Необроблені дані АЦП і проміжні результати вимірювань для кожного каналу. Призначено для калібрування та діагностики. Авторизація: токен Bearer ( Для Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
diagnostic.active | логічний | Чи активна тимчасова конфігурація каналів |
diagnostic.ready | логічний | Чи отримано свіжі дані зі стабільними станами для всіх каналів |
diagnostic.sensorTypeId | число | Тимчасово вибраний тип датчика з GET /api/reference/sensor-types/; наявне, коли active=true |
diagnostic.gain | рядок | Розрахований коефіцієнт підсилення; наявне, коли active=true |
mcuTemperature | число|null | Температура внутрішнього датчика мікроконтролера (°C) або null, якщо значення некоректне |
channels | масив | 4 елементи (CH1..CH4) |
channels[].filteredAdc | число | Відфільтроване необроблене значення АЦП |
channels[].resistance | число | Розрахований опір (Ом) |
channels[].temperature | число|null | Розрахована температура (°C) або null, якщо значення некоректне |
channels[].gain | рядок | Коефіцієнт підсилення: "x2" або "x24" |
channels[].circuitState | рядок | Стан кола |
circuitState"NORMAL""OPEN_CIRCUIT""SHORT_CIRCUIT""UNDER_RANGE""OVER_RANGE""DISABLED""UNKNOWN"Тимчасово вмикає всі чотири канали із зазначеним типом датчика. Прошивка вибирає коефіцієнт підсилення. Налаштування та флешпам’ять не змінюються.
Значення sensorTypeId потрібно взяти з поля items[].id у відповіді
GET /api/reference/sensor-types/.
{ "sensorTypeId": 0 }Повторний виклик цієї кінцевої точки перезапускає накопичення та фільтрування. Відповідь містить об’єкт diagnostic; значення ready=false зберігається, доки не стануть доступними свіжі стабільні дані.
Завершує тестування та відновлює конфігурацію каналів із Налаштувань. Тіло запиту ігнорується. Режим також завершується через 30 секунд без запиту GET /api/debug/adc/ або після виходу з діагностичного режиму.
| | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/display/start/ and POST /api/debug/display/stop/Тест дисплея, що тимчасово перевизначає звичайне зображення, контрастність і підсвічування. Авторизація: токен Bearer ( POST /api/debug/display/start/Section titled “POST /api/debug/display/start/”Вмикає перевизначення параметрів дисплея.
РежимиSection titled “Режими”
Повторний виклик Відповідь Section titled “Відповідь 200” |
| |
|---|
GET /api/debug/external-storage/dump/Потоково передає доступний лише для читання дамп кожного байта встановленого зовнішнього сховища. Прошивка зчитує фрагменти обмеженого розміру й не виділяє в оперативній пам’яті місце для повного дампа. Авторизація: токен Bearer ( Для завершення потоку використовується закриття з’єднання. Для успішної діагностики
потрібно отримати рівно стільки байтів, скільки зазначено в |
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/external-storage/Відомості про зовнішнє сховище: встановлена мікросхема, місткість і повна карта областей. Авторизація: токен Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
jedecId | рядок | Шестисимвольний шістнадцятковий рядок (виробник + тип + місткість) |
chipType | рядок | Зрозуміла для користувача назва мікросхеми |
sizeBytes | число | Загальна місткість зовнішнього сховища (байти) |
sectorSize | число | Розмір сектора (байти) |
regions.logger.startAddress | рядок | Початкова адреса (шістнадцяткова) |
regions.logger.sizeBytes | число | Розмір області (байти) |
regions.logger.usedEntries | число | Кількість використаних записів |
regions.logger.maxEntries | число | Максимальна кількість записів |
regions.recorder.startAddress | рядок | Початкова адреса (шістнадцяткова) |
regions.recorder.sizeBytes | число | Розмір області (байти) |
regions.recorder.usedEntries | число | Кількість використаних записів |
regions.recorder.maxEntries | число | Максимальна кількість записів |
regions.ota.startAddress | рядок | Початкова адреса (шістнадцяткова) |
regions.ota.sizeBytes | число | Розмір слота OTA (байти) |
regions.ota.imagePresent | логічний | Чи наявний образ із коректним заголовком |
regions.ota.imageSize | число | Розмір корисного навантаження із заголовка (0, якщо образ відсутній) |
regions.reserved.startAddress | рядок | Початкова адреса зарезервованої області (шістнадцяткова) |
regions.reserved.sizeBytes | число | Розмір зарезервованої області (байти) |
| | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/heap/Стан динамічної пам’яті FreeRTOS і lwIP. Авторизація: токен Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
rtos.totalBytes | число | Загальний розмір динамічної пам’яті FreeRTOS (configTOTAL_HEAP_SIZE) |
rtos.freeBytes | число | Поточний обсяг вільного простору (сума всіх вільних блоків) |
rtos.minEverFreeBytes | число | Мінімальний обсяг вільного простору за весь час роботи (мінімальна позначка) |
rtos.largestFreeBlockBytes | число | Розмір найбільшого вільного блока (показник фрагментації) |
rtos.smallestFreeBlockBytes | число | Розмір найменшого вільного блока |
rtos.freeBlockCount | число | Кількість вільних блоків |
rtos.allocCount | число | Кількість успішних викликів pvPortMalloc після запуску |
rtos.freeCount | число | Кількість успішних викликів vPortFree після запуску |
lwip.totalBytes | число | Загальний розмір динамічної пам’яті lwIP |
lwip.freeBytes | число | Поточний обсяг вільного простору в динамічній пам’яті lwIP |
lwip.minEverFreeBytes | число | Мінімальний обсяг вільного простору в динамічній пам’яті lwIP за весь час роботи |
Коли
freeBytes > 0, показник фрагментації динамічної пам’яті FreeRTOS дорівнює1 - largestFreeBlockBytes / freeBytes. ЯкщоlargestFreeBlockBytesзначно менше заfreeBytes, виділення великого блока може завершитися невдало попри достатній загальний обсяг вільної пам’яті. КолиfreeBytes == 0, вебінтерфейс показує0%без обчислення за цією формулою.
| | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/keyget/Поточний стан фізичних кнопок лицьової панелі. Авторизація: токен Bearer ( Стани зчитуються безпосередньо з апаратних входів. Віртуальні події, надіслані через Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
up | логічний | Натиснуто кнопку «Вгору» |
down | логічний | Натиснуто кнопку «Вниз» |
menu | логічний | Натиснуто кнопку «Меню» |
set | логічний | Натиснуто кнопку «Ввід» |
test | логічний | Натиснуто кнопку «Тест» |
| | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/keypress/Імітує подію віртуальної кнопки для автоматизованого тестування інтерфейсу та меню. Авторизація: токен Bearer ( Діагностичний режим має бути активним. Інакше кінцева точка повертає Поля запитуSection titled “Поля запиту”
Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/led/start/ and POST /api/debug/led/stop/Сервісний тест світлодіодних індикаторів. Авторизація: токен Bearer ( Діагностичний режим має бути активним. Інакше кінцеві точки повертають POST /api/debug/led/start/Section titled “POST /api/debug/led/start/”Примусово переводить світлодіодні індикатори в тестові стани.
Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/lwip-stats/Знімок внутрішніх лічильників стека lwIP: статистика за протоколами та стан пулів memp. Джерелом даних є глобальна структура Авторизація: токен Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
recv | число | Кількість отриманих пакетів |
xmit | число | Кількість переданих пакетів |
drop | число | Кількість відкинутих пакетів |
chkerr | число | Помилки контрольної суми |
lenerr | число | Помилки довжини |
memerr | число | Невдалі операції виділення пам’яті |
rterr | число | Помилки маршрутизації |
proterr | число | Помилки протоколу |
opterr | число | Помилки параметрів |
err | число | Інші помилки |
cachehit | число | Лише для etharp: кількість влучань у кеш ARP |
Можливі ключі proto: link, etharp, ip, icmp, udp і tcp. (Вони відповідають прапорцям LINK_STATS, ETHARP_STATS, IP_STATS, ICMP_STATS, UDP_STATS і TCP_STATS.)
memp[] (структура stats_mem)Масив, що містить по одному елементу для кожного пулу memp. Поле name містить короткий ідентифікатор пулу з переліку memp_t без префікса MEMP_.
| Поле | Тип | Опис |
|---|---|---|
name | рядок | Назва пулу (наприклад, TCP_PCB або PBUF_POOL) |
avail | число | Місткість пулу (кількість елементів) |
used | число | Поточна кількість використовуваних елементів |
max | число | Максимальне значення used за час роботи |
err | число | Кількість невдалих виділень пам’яті з пулу |
Цей блок наявний, лише коли MEMP_STATS = 1.
| | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/menu/Поточний стан меню інтерфейсу для автоматизованих тестів навігації. Авторизація: токен Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
isActive | число | Ознака активності меню: 1 — активне, 0 — неактивне |
depth | число | Поточна глибина вкладеності |
selectedIndex | число | Індекс вибраного пункту |
itemCount | число | Кількість пунктів у поточній групі |
groupId | число | Ідентифікатор поточної групи меню |
mode | число | Режим: 0 = NAV, 1 = EDIT |
| | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/network/Низькорівнева діагностика мережевого стека: фізичний рівень PHY і MAC-адреса.
Авторизація: Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
phy.linkUp | логічний | Чи встановлено з’єднання Ethernet |
phy.speed | число | Швидкість з’єднання (Мбіт/с): 10 або 100 |
phy.fullDuplex | логічний | Чи активний повнодуплексний режим |
phy.autoNegComplete | логічний | Чи завершено автоматичне узгодження |
phy.mac | рядок | MAC-адреса інтерфейсу (AA:BB:CC:DD:EE:FF) |
phy.macSource | рядок | "EUI48" (із флешпам’яті) або "FALLBACK" (із прошивки) |
| | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST /api/debug/relay/start/ and POST /api/debug/relay/stop/Службова перевірка реле. Авторизація: Bearer ( Діагностичний режим має бути активним. Інакше кінцеві точки повертають POST /api/debug/relay/start/Section titled “POST /api/debug/relay/start/”Примусово переводить реле в тестові стани.
Відповідь Section titled “Відповідь 200” |
| | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/settings/Отримує стан обох банків постійних налаштувань незалежно від джерела поточних налаштувань під час роботи. Авторизація: Bearer ( Діагностичний режим не потрібен. У діагностичному режимі неявний доступ Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
runtimeSource | рядок | Джерело поточних налаштувань під час роботи: builtIn, bank1 або bank2 |
bootBank | число | null | Банк, вибраний під час звичайного завантаження: 1, 2 або null, якщо обидва банки недійсні |
banks | масив | Стан двох фізичних банків налаштувань |
banks[].bank | число | Номер банку: 1 або 2 |
banks[].valid | логічний | Результат повної перевірки заголовка, версії прошивки, довжини та CRC даних |
banks[].sequence | число | Порядковий номер запису; наявний лише для дійсного банку |
banks[].isDefault | логічний | Чи відповідають корисні дані чинним заводським налаштуванням; наявне лише для дійсного банку |
banks[].savedAt | рядок | null | Час збереження у форматі ISO 8601 UTC; наявний лише для дійсного банку |
banks[].dataLength | число | Довжина корисних даних; наявна лише для дійсного банку |
banks[].dataCrc32 | рядок | CRC32 корисних даних у вигляді восьми шістнадцяткових символів; наявне лише для дійсного банку |
banks[].headerCrc32 | рядок | CRC32 заголовка у вигляді восьми шістнадцяткових символів; наявне лише для дійсного банку |
Значення runtimeSource і bootBank можуть відрізнятися. Наприклад, у діагностичному режимі під час роботи використовуються налаштування builtIn, тоді як під час звичайного завантаження вибирається останній дійсний банк флешпам’яті.
Якщо обидва банки дійсні, bootBank визначає банк із новішим значенням sequence з урахуванням переповнення uint32_t. Якщо значення sequence однакові, вибирається банк 1.
Поля заголовка для недійсного банку не повертаються, оскільки їхні значення не вважаються достовірними.
Збережені налаштування вважаються заводськими, якщо bootBank не дорівнює null, а вказаний банк має valid: true та isDefault: true. Інший, старіший банк може містити користувацькі налаштування й не впливає на результат.
| | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/system/Загальна системна діагностика: тактування RTC, причина скидання та стан підсистем. Авторизація: Bearer ( Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
core | рядок | Архітектура ядра: "ARM32" |
uptimeSec | число | Час роботи від моменту ввімкнення живлення (секунди) |
cpuFreqMHz | число | Частота ядра (SystemCoreClock / 1000000) |
resetReason | рядок | Причина останнього скидання |
rtcSource | рядок | Джерело тактування RTC: "LSE", "LSI" або "UNKNOWN" |
rtcTime | рядок | Поточний час RTC у форматі UTC (UTC+0) |
rtcSync | рядок | Джерело, з якого востаннє встановлено час RTC: "NONE", "BACKUP", "NTP" або "MANUAL" |
readyFlags | об’єкт | Логічні прапорці ініціалізації підсистем |
resetReason| Значення | Прапорець RCC_CSR | Опис |
|---|---|---|
"Power on" | RCC_CSR_PORRSTF | Скидання під час увімкнення живлення |
"Reset pin" | RCC_CSR_PADRSTF | Зовнішнє скидання (кнопка RESET) |
"Watchdog" | RCC_CSR_WDGRSTF | Скидання сторожовим таймером |
"Software" | RCC_CSR_SFTRSTF | Програмне скидання (NVIC_SystemReset()) |
"Low power" | RCC_CSR_LPWRRSTF | Скидання в режимі низького енергоспоживання |
"Unknown" | — | Невідома причина |
rtcSource"LSE" — зовнішній кварцовий резонатор 32.768 кГц (висока точність)."LSI" — внутрішній RC-генератор (відхилення ±5%)."UNKNOWN" — джерело не визначено.rtcSync"NONE" — RTC запущено зі стандартним часом; синхронізація або відновлення не виконувалися."BACKUP" — час відновлено з резервного домену під час запуску."NTP" — час установлено внаслідок синхронізації SNTP/NTP."MANUAL" — час установлено вручну через інтерфейс користувача, API або Modbus.readyFlagssettings, calibration, rtc, button, led, lcd, extmem, identity, logger, temprec, temphistory, msr, random, eth, lwip, httpd, sntp, wireguard, modbus
| | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET /api/debug/tasks/Діагностичний знімок поточних завдань RTOS та мінімальних залишків їхніх стеків. Авторизація: токен Bearer із рівнем доступу Відповідь Section titled “Відповідь 200” |
| Поле | Тип | Опис |
|---|---|---|
tasks | масив | Список завдань |
tasks[].number | число | RTOS xTaskNumber |
tasks[].name | рядок | Назва завдання |
tasks[].priority | число | Пріоритет RTOS |
tasks[].stackMinFreeByte | число | Мінімальний обсяг вільного простору стека за весь час роботи, у байтах |
tasks[].stackSizeByte | число | Загальний розмір стека, у байтах |
Якщо не вдалося виділити пам’ять → 507 ERROR_NO_MEMORY.