374 lines
19 KiB
TypeScript
374 lines
19 KiB
TypeScript
/**
|
||
* Статический справочник по настройке 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=<ID>&lat=%LAT&lon=%LON&speed=%SPD&bearing=%BRR×tamp=%TIMESTAMP',
|
||
'<ID> — идентификатор объекта в CRM (поле «IMEI / ID трекера»)',
|
||
'Включите запись трека в приложении',
|
||
],
|
||
notes: ['Бесплатный, open source; работает в фоне'],
|
||
},
|
||
{
|
||
id: 'owntracks',
|
||
name: 'OwnTracks',
|
||
port: 5055,
|
||
protocol: 'OsmAnd (HTTP)',
|
||
steps: [
|
||
'Переведите OwnTracks в режим HTTP',
|
||
'URL: http://{host}:5055/?id=<ID>',
|
||
'<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);
|
||
}
|