Техническое описание

Как работает Трекер Хаб

Core — серверная часть хаба. Она разбирает пакеты, сохраняет данные в MySQL и отвечает на запросы API. В кабинете и во внешнем скрипте доступны данные своего аккаунта.

Здесь описана тестовая версия RC2, проверенная 18 октября 2026 года. Публичного адреса API пока нет; конкретное оборудование и нагрузку проверяем отдельно.

Кабинет и API работают в тестовой версии RC2.
Пока показываем на демо. Открытая регистрация ещё не запущена.

Клиентский API

Подключайте источники и управляйте доступом

Кабинет использует те же клиентские методы: вход, создание и пауза каналов, добавление устройств, выпуск и отзыв токенов. Для внешнего приложения можно выдать отдельный токен, который разрешает только чтение данных.

Каналы

Создать канал EGTS, Wialon IPS или Retranslator, дать ему имя, приостановить приём или отправить канал в архив.

Устройства

Добавить ID источника, назвать устройство и управлять приёмом его данных. Для устройства Wialon IPS можно сменить пароль.

Доступ

Выпустить токен для выбранных устройств, установить срок и отозвать доступ. Для замены токена создают новый и отзывают прежний.

Управление требует пользовательской сессии. Read-токен внешнего скрипта не позволяет создавать каналы, менять устройства или выдавать другие токены.

Открыть справочник всех 22 методов ↗
Архитектура доступа

Где хранятся данные и кто проверяет доступ

Источники передают пакеты в Core; Core сохраняет сообщения в MySQL и обслуживает клиентский API. Кабинет использует веб-сессию, система клиента — ограниченный Bearer-токен. Клиент не читает MySQL напрямую.

Схему можно прокрутить по горизонтали.

Core проверяет каждый запрос: кому принадлежит устройство, разрешено ли оно токеном, не истёк ли срок и не отозван ли доступ. Операторские команды недоступны клиентскому скрипту.

Форматы протоколов

Какие пакеты принимает хаб

Профили приёма, реализованные и проверенные в RC2
ПротоколВерсия и транспортГраница профиля
EGTSv1 · TCP / UDPAPPDATA, одна TELE_DATA, одна POS_DATA 21 байт. Без routing/encryption; другие record/subrecord не подразумеваются.
Wialon IPS1.1 / 2.0 · TCPL, P, SD, D, B; login с паролем. Без media/commands, compression и UDP.
Wialon Retranslatorv1.0 · TCPНесколько UID в соединении, posinfo и scalar blocks. JPEG и неизвестные binary types отвергаются. Режим ACK настраивается явно.

Для EGTS/Retranslator выделенный порт канала и зарегистрированный ID определяют принадлежность, но не подтверждают подлинность отправителя. Источник может менять IP. В поддержанном IPS-профиле используется пароль; это не даёт оснований обещать универсальную аутентификацию для остальных протоколов.

Данные и чтение

Что возвращает API

GET/api/v1/devices

Список устройств

Устройства, которые вы выбрали для токена. В ответе — items и next_cursor для следующей страницы.

GET/api/v1/devices/{id}

Карточка устройства

Имя, метаданные и идентификаторы источника. В URL нужно передать UUID из списка устройств, а не IMEI трекера.

GET/api/v1/devices/{id}/telemetry

Последние значения

Последние значения параметров и время последнего поступления данных. У каждого значения есть своё время измерения, message_id и device_seq.

GET/api/v1/devices/{id}/messages

История сообщений

Сообщения за период или новые сообщения после after_seq. В ответе — items, next_cursor и next_after_seq.

Время и свежесть

last_received_at показывает последнее поступление. values содержит отдельные timestamp, timestamp_source, message_id и device_seq для каждого значения. Буфер старых измерений не откатывает новое значение; отсутствующее значение не выдаётся за ноль.

Страницы и период

from/to фильтруют received_at UTC. limit: 1–500, по умолчанию 100. История идёт по убыванию device_seq с зафиксированным upper_seq; incremental after_seq — по возрастанию. device_seq передаётся десятичной строкой.

Cursor и хранение

next_cursor подписан, связан с аккаунтом, правами и параметрами запроса, действует не более часа. При изменении набора прав пагинацию начинают заново. История хранится минимум семь суток; истёкший диапазон возвращает явную ошибку.

Подтверждение и повторы

Успешное подтверждение следует после COMMIT. Для Retranslator ответ 0x11 включается явно; без ACK восстановление потерь источником не гарантируется. Hub dedup использует семантический ключ и окно 604800 секунд, только когда есть надёжный ID и исходное время.

Клиентский токен

Доступ к своим устройствам

Выпуск и отзыв в кабинете

Владелец задаёт набор своих device IDs и срок, максимум 365 суток. Секрет показывается один раз. Утерянный токен заменяют новым и отзывают прежний. Bearer передают только в Authorization header; в URL и примерах действующих секретов нет.

Отказы доступа

401 — токен неизвестен, истёк или отозван; 403 — устройство вне области доступа. Неверный или чужой cursor даёт 400, истёкший диапазон — 410, превышение лимитов — 429, недоступность backend/ёмкости — 503.

Формат ошибки — JSON с полем error и, при наличии, request_id. Read DTO не раскрывает пароли, credential references и операторскую конфигурацию.

Статус проверки

Что было проверено

В RC2 проверены email-подтверждение, самостоятельные каналы и устройства, кабинет, внешнее HTTPS-чтение по Bearer, изоляция аккаунтов и отказы доступа. Это конечный тест кандидата, а не обещание SLA или суточного наблюдения.

Карта мониторинга, сотрудники организаций, биллинг и клиентское управление исходящими потоками вне этапа. Реальное оборудование, нагрузка проекта и длительная эксплуатация требуют отдельных проверок.

Примеры запросов с placeholders
Следующий шаг

Покажем, как это работает.

Расскажите, какой трекер или сервер будет передавать данные и где вы хотите их использовать. Мы покажем, как подключить канал, создать токен и получить данные из своего скрипта.

Напишите тому, кто прислал вам ссылку на проект. Для начала хватит нескольких строк об источнике и вашей системе.

Подготовить запрос на демо
ping@tracker-hub.ruАдрес для будущих обращений.
Пока связываемся в текущей переписке.