Что это
TLF_server-int — внутренний пульт-приёмник. Объектовые приборы (ОУ) и сервисы
tlf-client сами подключаются к нему; сервер ничего не инициирует.
События от ОУ ретранслируются клиентам, команды клиентов — на ОУ.
Порты
| 949 | плечо tlf-client (логин из реестра, ответ 1011 … R) |
| 950 | плечо ОУ — GSM TSC (RT4-5GP/4) или SurGard/Contact ID, автоопределение |
| 951 | канал охранной компании, RP4000dm, ACK 06h |
| 9490 | текстовая консоль (только внутренняя сеть) |
| 9491 | эта web-консоль (только внутренняя сеть / VPN) |
Разделы консоли
- Подключённые клиенты — кто сейчас на 949; «буфер» — сколько строк ждёт доставки.
- Реестр клиентов — разрешённые логины и реальная картина по ним: статус, время и адрес последнего входа (история хранится в config.json), сколько объектов назначено логину, сколько строк ждёт в буфере. «не подключался» — логин заведён, но этот клиент к серверу ещё ни разу не приходил (например, ещё смотрит на старый сервер). «выкл» временно запрещает вход без удаления. Пустой реестр = dev-режим, принимается любое имя.
- Объекты — аккаунт, линия, OnLine ID (IMEI), период теста. Колонка Клиент: кому доставлять события этого объекта (пусто = всем). Экспорт CSV скачивает реестр (
account;line;online_id;test_period;client, открывается в Excel); Импорт CSV загружает такой же файл: объекты добавляются/обновляются по аккаунту, с галочкой «заменить реестр» — реестр заменяется целиком. Заголовок в файле необязателен, разделитель ; или ,. GSM — уровень сигнала CSQ 0–31 (опрашивается автоматически).
- Настройки · событие — период
systime; вброс тестового события клиентам, формат QEEEPPZZZ, например E13002008.
- Команда на ОУ — отправить команду прибору по OnLine ID (
1.001 — арм/дизарм).
- Канал ОК — соединения на 951 и счётчик кадров.
Адреса подключения к этому серверу
| tlf-client | — | логин из реестра |
| приборы RT4 / SurGard | — | GSM TSC или Contact ID |
| канал охранной компании | — | RP4000dm |
Адрес берётся из TLF_PUBLIC_HOST, иначе из адреса, по которому открыта консоль.
Подключить tlf-client
В docker-compose.yml системы у сервиса tlf-client-*:
- TLF_SERVER_HOST=<адрес этого сервера>
- TLF_CLIENT_NAME=<логин из реестра>
затем docker compose up -d tlf-client-…. Логин (TLF_CLIENT_NAME) должен быть в реестре, совпадение побуквенно.
Перевести прибор RT4 на этот пульт
99.DI<адрес сервера>
99.P950
После переподключения объект появится в таблице как online.
Проверить снаружи
nc <адрес> 949 → IP-Server V1.0
222 → 1011 0000 R 51
Текстовая консоль (на хосте)
printf 'LIST\r\nOBJ\r\nQUIT\r\n' | nc localhost 9490
Команды: LIST, OBJ, EVENT <acc> <QEEEPPZZZ>, HELP, QUIT.
Обслуживание
docker compose logs -f
git pull && docker compose up -d --build
Пароль консоли — в .env (TLF_WEB_PASSWORD); после смены docker compose up -d.
Сервер на хосте партнёра (замена внешнего TLF)
Партнёр ставит этот сервер у себя и переводит приборы на свой IP (99.DI<IP партнёра>, 99.P950);
в его реестре заводится логин нашего tlf-client; у нас у tlf-client-<партнёр> меняется
TLF_SERVER_HOST на IP партнёра. Внешний сервер отключать только после проверки. Подробно — раздел 8 инструкции ниже.
Документация