/** * Статический справочник по настройке GPS-трекеров (вкладка «Инструкции»). * Дерево: категории → устройства/протоколы. Порты соответствуют реально * открытым на сервере портам Traccar (5023 GT06, 5027 Teltonika, 5001 GPS103, * 5013 H02, 5036 Suntech, 5055 OsmAnd/HTTP). * * В текстах и SMS-командах плейсхолдер {host} заменяется в UI на * window.location.hostname (для iistwin.ru резолвится в IP сервера). */ export interface TrackerGuideSms { /** Текст SMS-команды (с плейсхолдером {host}) */ command: string; description: string; } export interface TrackerGuideItem { id: string; /** Название устройства/протокола */ name: string; /** Порт сервера Traccar */ port: number; /** Протокол Traccar */ protocol: string; /** Шаги настройки (нумерованный список) */ steps: string[]; /** SMS-команды (опционально) */ sms?: TrackerGuideSms[]; /** Примечания (muted-текст) */ notes?: string[]; } export interface TrackerGuideCategory { id: string; name: string; description?: string; items: TrackerGuideItem[]; } const APN_NOTE = 'APN оператора: internet.mts.ru (МТС), internet.beeline.ru (Билайн), internet.tele2.ru (Tele2), internet.megafon.ru (МегаФон)'; export const TRACKER_GUIDES: TrackerGuideCategory[] = [ { id: 'gt06', name: 'Автомобильные трекеры (GT06)', description: 'Самый массовый протокол китайских трекеров — Concox, Coban, Jimi и клоны', items: [ { id: 'sinotrack-st901l', name: 'SinoTrack ST-901L (4G)', port: 5013, protocol: 'H02 (НЕ GT06!)', steps: [ 'Вставьте в трекер SIM-карту с отключённым PIN-кодом и мобильным интернетом', 'Возьмите ID с наклейки на устройстве (10–11 цифр, например 9171040344) — это логин трекера', 'В CRM создайте объект (/gps → Объекты → Добавить) и укажите этот ID в поле «IMEI / ID трекера»', 'Настройте трекер SMS-командами ниже: APN → сервер с портом 5013 → интервал отправки', 'Проверьте настройки командой 8020000 — в ответе должен быть сервер и порт 5013', 'Выведите трекер на открытое небо — через 1–2 минуты объект появится на карте', ], sms: [ { command: '8030000 {apn}', description: 'Установить APN оператора (например: 8030000 internet.mts.ru)' }, { command: '8040000 {host} 5013', description: 'Сервер и порт — для ST-901L именно 5013 (протокол H02), а не 5023' }, { command: '8090000 0 60', description: 'Интервал отправки координат — 60 сек при выключенном зажигании' }, { command: '8020000', description: 'Проверка настроек: ответ содержит ID, APN, сервер и порт' }, { command: '7100000', description: 'Статус устройства и текущие координаты' }, ], notes: [ '0000 — заводской SMS-пароль SinoTrack (не 123456, как у большинства GT06)', 'Проверено на реальном устройстве (2026-08-25): ST-901L говорит протоколом H02 — порт 5013. На порту 5023 (GT06) пакеты приходят, но не декодируются', 'Встречаются прошивки ST-901L на GT06: если на 5013 данных нет — попробуйте 5023, затем 5001', 'Если объект не становится online: при отсутствии GPS-фикса трекер шлёт устаревшее время — выведите его на открытое небо', 'Домен в команде 8040000 работает (DNS резолвится трекером), но надёжнее IP сервера', APN_NOTE, ], }, { id: 'concox-gt06n', name: 'Concox GT06N / GT06E', port: 5023, protocol: 'GT06', steps: [ 'Вставьте в трекер SIM-карту с отключённым PIN-кодом и включённым мобильным интернетом', 'Узнайте IMEI устройства (наклейка на корпусе или команда check123456)', 'Настройте трекер SMS-командами ниже: APN → сервер → включение GPRS', 'В CRM создайте объект (/gps → Объекты → Добавить) и укажите IMEI в поле «IMEI / ID трекера»', 'Подайте питание на трекер — через 1–2 минуты объект появится на карте', ], sms: [ { command: 'apn123456 {apn}', description: 'Установить APN оператора (например: apn123456 internet.mts.ru)' }, { command: 'adminip123456 {host} 5023', description: 'Сервер и порт (вместо {host} — адрес сервера или IP)' }, { command: 'gprs123456', description: 'Включить передачу по GPRS' }, { command: 'check123456', description: 'Проверка настроек: ответ содержит IMEI, APN, сервер' }, ], notes: [ '123456 — заводской SMS-пароль по умолчанию; если меняли — подставьте свой', APN_NOTE, ], }, { id: 'coban-gps303', name: 'Coban GPS303', port: 5023, protocol: 'GT06', steps: [ 'Вставьте SIM-карту без PIN-кода', 'Отправьте SMS-команды настройки APN и сервера', 'Создайте объект в CRM с IMEI трекера', 'Проверьте статус командой check123456 — в ответе должен быть адрес сервера', ], sms: [ { command: 'apn123456 {apn}', description: 'Установить APN оператора' }, { command: 'adminip123456 {host} 5023', description: 'Сервер и порт' }, { command: 'gprs123456', description: 'Включить GPRS-режим' }, { command: 'check123456', description: 'Проверка текущих настроек' }, ], notes: [ 'У Coban встречаются прошивки с другим набором команд — если apn123456 не принимается, попробуйте формат APN,123456,{apn}#', APN_NOTE, ], }, { id: 'jimi-jm01', name: 'Jimi / Concox JM01', port: 5023, protocol: 'GT06', steps: [ 'Вставьте SIM-карту, включите трекер', 'Настройте APN и сервер SMS-командами', 'Создайте объект в CRM с IMEI трекера', ], sms: [ { command: 'apn123456 {apn}', description: 'Установить APN оператора' }, { command: 'adminip123456 {host} 5023', description: 'Сервер и порт' }, { command: 'gprs123456', description: 'Включить GPRS' }, { command: 'check123456', description: 'Проверка настроек' }, ], notes: ['JM01 — видеотрекер; по GT06 передаются координаты, видео настраивается отдельно', APN_NOTE], }, { id: 'gt06-generic', name: 'Любой GT06-совместимый трекер', port: 5023, protocol: 'GT06', steps: [ 'Узнайте IMEI устройства', 'По инструкции вендора задайте APN и адрес сервера {host}, порт 5023', 'Включите передачу данных по GPRS/TCP', 'Создайте объект в CRM с этим IMEI', ], notes: [ 'GT06 — протокол сотен безымянных китайских трекеров; SMS-команды у каждого вендора свои, смотрите документацию устройства', 'Частые варианты команд сервера: adminip123456, IP123456, pw,123456,ip,...# (формат H02)', APN_NOTE, ], }, ], }, { id: 'teltonika', name: 'Teltonika', description: 'Профессиональные трекеры, настройка через Teltonika Configurator', items: [ { id: 'teltonika-fmb920', name: 'Teltonika FMB920', port: 5027, protocol: 'Teltonika (FMB)', steps: [ 'Подключите трекер к ПК и откройте Teltonika Configurator', 'Перейдите на вкладку GPRS', 'Domain: {host} (или IP сервера), Port: 5027, Protocol: TCP', 'APN: APN вашего оператора (internet.mts.ru / internet.beeline.ru / ...)', 'Сохраните конфигурацию в устройство (Save to device)', 'Создайте объект в CRM с IMEI трекера', ], notes: [APN_NOTE, 'Записи сначала накапливаются во флэш-памяти и выгружаются пачками — первая точка может появиться с задержкой'], }, { id: 'teltonika-fmb125', name: 'Teltonika FMB125', port: 5027, protocol: 'Teltonika (FMB)', steps: [ 'Откройте Teltonika Configurator, вкладка GPRS', 'Domain: {host}, Port: 5027, Protocol: TCP', 'Укажите APN оператора и сохраните в устройство', 'Создайте объект в CRM с IMEI трекера', ], notes: [APN_NOTE], }, { id: 'teltonika-fmc130', name: 'Teltonika FMC130', port: 5027, protocol: 'Teltonika (FMB)', steps: [ 'Откройте Teltonika Configurator, вкладка GPRS', 'Domain: {host}, Port: 5027, Protocol: TCP', 'Укажите APN оператора и сохраните в устройство', 'Создайте объект в CRM с IMEI трекера', ], notes: [APN_NOTE, 'FMC130 — 4G/LTE: убедитесь, что SIM поддерживает LTE-данные'], }, ], }, { id: 'gps103', name: 'GPS103 / TK-серия', description: 'TK-102/103, Xexun и совместимые', items: [ { id: 'tk103', name: 'TK-102 / TK-103', port: 5001, protocol: 'GPS103', steps: [ 'Вставьте SIM-карту без PIN-кода', 'Отправьте SMS-команды: begin → APN → сервер', 'Создайте объект в CRM с IMEI трекера', ], sms: [ { command: 'begin123456', description: 'Сброс к заводским настройкам' }, { command: 'apn123456 {apn}', description: 'Установить APN оператора' }, { command: 'adminip123456 {host} 5001', description: 'Сервер и порт' }, ], notes: ['123456 — пароль по умолчанию', APN_NOTE], }, { id: 'xexun', name: 'Xexun (TK-совместимые)', port: 5001, protocol: 'GPS103', steps: [ 'Настройте APN и сервер SMS-командами', 'Создайте объект в CRM с IMEI трекера', ], sms: [ { command: 'begin123456', description: 'Сброс к заводским настройкам' }, { command: 'apn123456 {apn}', description: 'Установить APN оператора' }, { command: 'adminip123456 {host} 5001', description: 'Сервер и порт' }, ], notes: [APN_NOTE], }, ], }, { id: 'h02', name: 'H02-совместимые', description: 'Китайские трекеры и часы с протоколом H02', items: [ { id: 'h02-generic', name: 'H02-совместимый трекер / часы', port: 5013, protocol: 'H02', steps: [ 'Вставьте SIM-карту с мобильным интернетом', 'Отправьте SMS с адресом сервера в формате ниже', 'Создайте объект в CRM с IMEI устройства', ], sms: [ { command: 'pw,123456,ip,{host},5013#', description: 'Сервер и порт (пароль 123456)' }, ], notes: [ 'Формат SMS зависит от прошивки: у части устройств команда выглядит как pw,123456,ip,{host},5013# — у других иначе, сверяйтесь с документацией', APN_NOTE, ], }, ], }, { id: 'suntech', name: 'Suntech', description: 'ST300/ST310 и совместимые', items: [ { id: 'suntech-st300', name: 'Suntech ST300 / ST310', port: 5036, protocol: 'Suntech', steps: [ 'Откройте Suntech-конфигуратор (или настройте по SMS по документации вендора)', 'Укажите сервер: {host}, порт 5036', 'Укажите APN оператора', 'Создайте объект в CRM с идентификатором устройства', ], notes: [APN_NOTE, 'Идентификатор Suntech — Device ID из конфигуратора (обычно совпадает с IMEI)'], }, ], }, { id: 'smartphone', name: 'Смартфон как трекер', description: 'Приложения, шлющие координаты по HTTP (порт 5055, протокол OsmAnd)', items: [ { id: 'traccar-client', name: 'Traccar Client (Android / iOS)', port: 5055, protocol: 'OsmAnd (HTTP)', steps: [ 'Установите Traccar Client из магазина приложений', 'Server URL: http://{host}:5055', 'Device identifier: IMEI/ID из карточки объекта в CRM (сначала создайте объект и задайте ID)', 'Частота отправки (Frequency): 60 секунд', 'Включите сервис в приложении — точки пойдут на карту', ], notes: [ 'Рекомендуемый способ для смартфона: работает в фоне', 'Device identifier придумываете сами (например, ivan-phone) — он же указывается в поле «IMEI / ID трекера» объекта в CRM', ], }, { id: 'gpslogger', name: 'GPSLogger (Android)', port: 5055, protocol: 'OsmAnd (HTTP)', steps: [ 'Установите GPSLogger, откройте настройки отправки (Logging → Custom URL)', 'Custom URL: http://{host}:5055/?id=&lat=%LAT&lon=%LON&speed=%SPD&bearing=%BRR×tamp=%TIMESTAMP', ' — идентификатор объекта в CRM (поле «IMEI / ID трекера»)', 'Включите запись трека в приложении', ], notes: ['Бесплатный, open source; работает в фоне'], }, { id: 'owntracks', name: 'OwnTracks', port: 5055, protocol: 'OsmAnd (HTTP)', steps: [ 'Переведите OwnTracks в режим HTTP', 'URL: http://{host}:5055/?id=', ' — идентификатор объекта в CRM', ], notes: [ 'Совместим частично (шлёт не все поля OsmAnd-формата) — приоритет у Traccar Client', ], }, ], }, { id: 'pwa', name: 'Без устройства (PWA)', description: 'Встроенный трекинг прямо из браузера/PWA — ничего устанавливать не нужно', items: [ { id: 'pwa-tracking', name: 'Встроенный трекинг (профиль пользователя)', port: 443, protocol: 'Внутренний (HTTPS, POST /api/gps/my-position)', steps: [ 'Откройте свой профиль: /profile → вкладка «GPS»', 'Включите переключатель «Отслеживать мою геолокацию»', 'Разрешите браузеру доступ к геолокации', 'Объект появится на карте автоматически (создаётся сам при первой точке)', ], notes: [ 'Координаты отправляются, пока открыто приложение (не чаще раза в 60 сек)', 'Для фонового отслеживания используйте Traccar Client (раздел «Смартфон как трекер»)', ], }, ], }, ]; /** Подстановка адреса сервера вместо плейсхолдера {host} */ export function resolveGuideHost(text: string): string { const host = typeof window !== 'undefined' ? window.location.hostname : 'iistwin.ru'; return text.replaceAll('{host}', host); }