«На связи» — не значит «работает»: почему трекер молчит о том, что ослеп

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

Вы едете по городу. Открываете карту — машина стоит во дворе, где вы её оставили утром. Статус зелёный, «на связи». Время последнего обновления — минуту назад. Ошибок нет.

Прибор при этом исправен, SIM работает, данные идут непрерывно. Он просто последние два часа не видел ни одного спутника и ни разу об этом не сообщил.

Мы держим сервер мониторинга и разбираем то, что приходит от приборов, на уровне отдельных пакетов. Ниже — механизм, из-за которого «на связи» и «работает» оказываются разными вещами, и единственный признак, по которому это можно поймать снаружи.

Проверьте за минуту, ваш ли это случай

  • Точка стоит, когда машина едет — вы в дороге, а на карте автомобиль замер, и время обновления при этом свежее. Это ваш случай, читайте дальше.
  • Точка движется, когда машина стоит — скачет по двору, уезжает в сторону, рисует зигзаг на парковке. Это другая беда, с другой причиной, и ей посвящён отдельный разбор. Идите туда, эта статья вам не поможет.

Коротко

  • Потеряв спутники, прибор не замолкает. Он продолжает слать телеметрию датчиков каждые 20–60 секунд и просто не включает в пакет навигационную часть.
  • Признака «координаты недостоверны» в этих данных нет: за неделю ноль таких записей из 42 547.
  • Сервер, получив пакет без координат, подставляет последние известные — вместе со временем определения, признаком достоверности и скоростью.
  • В результате карта показывает правильное место, свежую отметку и статус «на связи». Ни одной ошибки нигде.
  • 77 % пакетов от датчиков несут скопированные координаты. Разрыв между временем определения и временем приёма доходит до часов.
  • Единственный признак снаружи — разница между двумя отметками времени: когда определены координаты и когда получен пакет.

Что происходит, когда прибор теряет спутники

Здравый смысл подсказывает: потерял сигнал — перестал слать. На деле наоборот.

Современный трекер отправляет не одну сущность, а пакет из нескольких частей. В нём может быть навигационная часть — координаты, время определения, скорость, признак достоверности. И отдельно части от датчиков: зажигание, двери, уровень топлива, напряжение бортовой сети, температура.

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

Он просто перестаёт класть в пакет навигационную часть. Не помечает её как ненадёжную, не отправляет нули, не выставляет флаг — её в пакете нет вовсе.

С точки зрения протокола это корректное поведение: сообщать нечего, значит поле отсутствует. Проблема начинается дальше, когда эту тишину надо как-то показать человеку.

Ноль из 42 547: признака недостоверности не существует

Мы предполагали, что у части записей будет стоять отметка «координаты получены, но им нельзя доверять». Такой признак есть и в ЕГТС, и в модели данных сервера — то есть место, куда его записать, предусмотрено.

Проверили за неделю по одному прибору.

42 547 записей телеметрии. Записей с признаком «координаты недостоверны» — ноль.

Не мало. Не единицы. Ровно ноль.

Флаг существует в описании протокола, но на практике прибор ставит его всегда в положение «достоверно» — потому что отправляет координаты только тогда, когда они у него есть. А когда их нет, он не отправляет запись с плохим флагом; он не отправляет навигационную часть вообще.

Отсюда следует неприятное: искать в данных пометку «здесь координаты плохие» бесполезно. Её не будет. Плохих координат не бывает — бывает их отсутствие, и оно ничем себя не обозначает.

Что делает сервер: копирует последнюю точку целиком

Дальше пакет приходит на сервер, и тому надо сохранить запись. Запись без координат неудобна почти всем: карте нечего рисовать, отчёту нечего считать, истории некуда поставить метку.

Traccar, на котором работает наш сервис, подставляет последнее известное положение. Решение разумное: событие «открылась дверь» лучше показать примерно там, где машина была, чем не показать нигде. Другие системы вполне могут поступать так же — но мы этого не проверяли и утверждать не будем.

Тонкость в том, что именно копируется.

Пакет без координат: что подставляется из прошлой записи широта, долготакопия время определениякопия признак достоверностикопия скоростькопия показания датчиковновые время приёма пакетановое Копируется всё, что относится к положению, включая отметку «данные достоверны». Новыми остаются только показания датчиков и момент получения. Разбор потока одного прибора за неделю, сентябрь 2026.
Признак достоверности копируется вместе с координатами — поэтому старая точка выглядит проверенной.

Копируются широта и долгота — это ожидаемо. Но вместе с ними копируются время определения координат, признак достоверности и скорость.

И вот тут получается ловушка. Запись, у которой координаты часовой давности, несёт отметку «данные достоверны». Формально это правда: та точка действительно была достоверной — час назад. Практически это означает, что система не может отличить свежую позицию от скопированной, потому что все признаки у них одинаковые.

Почему это хуже, чем просто отсутствие данных

Если бы прибор при потере сигнала замолкал, всё было бы честно: связи нет, статус красный, человек видит проблему и идёт разбираться.

Вместо этого он получает картину полного благополучия:

  • машина на карте — в правильном месте (там, где её видели последний раз);
  • отметка «данные достоверны» — стоит;
  • статус — «на связи», и это чистая правда: пакеты идут каждые 20–60 секунд;
  • время последнего обновления — свежее;
  • в журналах — ни одной ошибки, потому что ошибки не было.

Ни один индикатор не показывает проблему, потому что проблемы с точки зрения системы нет. Прибор работает, связь есть, данные приходят. Отсутствует только то, чего никто не проверяет: свежесть координат.

Это худший класс неисправностей — тот, который выглядит как исправность. Отказ, который виден, чинят. Отказ, который не виден, живёт годами.

Из нашей практики: мы нашли это не потому, что кто-то пожаловался. Мы искали в потоке совсем другое и обратили внимание, что у части записей время определения координат подозрительно круглое и повторяется. Жалоб при этом не было — и не могло быть: снаружи всё выглядело правильно.

77 % пакетов несут скопированные координаты

Мы посчитали, насколько это частое явление, а не редкий сбой.

77 % пакетов от датчиков приходят со скопированными координатами. Не каждый сотый, не каждый десятый — три четверти.

Разрыв между временем определения координат и временем приёма пакета доходит до часов.

Практическое следствие касается не карты, а событий. Когда прибор сообщает «открылась дверь» или «включилось зажигание», это событие получает координаты, которых уже нет. Тревога рисуется не там, где случилась — иногда за квартал, иногда за десятки километров.

Причём здесь важно не путать с другим механизмом: точка не гуляет и не ошибается на десятки метров, она старая. Разброс приёмника — отдельная история, и ей посвящён свой разбор.

Единственный признак, доступный снаружи

Хорошая новость: признак есть, он один, и для него не нужен доступ к серверу.

Смотрите на разницу между двумя отметками времени:

  • когда определены координаты — момент, в который приёмник в последний раз видел спутники;
  • когда получен пакет — момент, в который сервер принял данные.

У исправно работающего прибора эти отметки расходятся на секунды. Если разрыв растёт — минуты, потом десятки минут, потом часы, — прибор на связи, но слеп.

Проблема в том, что интерфейсы обычно показывают одну колонку «последнее обновление», и она бодро тикает, потому что берётся из времени приёма. Посмотрите, есть ли в вашей системе вторая отметка — в карточке устройства или в подробностях позиции.

Если в вашей системе показывается только одна отметка времени — вы не сможете отличить работающий прибор от ослепшего. Это не придирка к интерфейсу, а прямое следствие того, что описано выше.

Что делать

1. Найдите в своей системе вторую отметку времени. Одна колонка «обновлено» — недостаточно. Нужна пара «когда определены координаты» и «когда пришли данные».

2. Проверьте разрыв прямо сейчас, пока машина стоит на виду. Если автомобиль перед вами, а координаты определены сорок минут назад — вы только что нашли у себя это явление.

3. Не доверяйте координатам событий безоговорочно. Метка «сработала сигнализация» стоит там, где были последние координаты, а не обязательно там, где сработала.

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

5. Не ищите в данных пометку о недостоверности. Её нет. Ноль из 42 547 — не наша особенность, а следствие того, как устроены протоколы.

Чего мы не утверждаем

Наши числа — по одному прибору за одну неделю. 42 547 записей и 77 % — достаточно, чтобы явление не было случайностью у этого устройства, и недостаточно, чтобы объявлять доли универсальными. У прибора с открытой антенной на крыше слепых периодов будет меньше.

Подстановка последней точки — не ошибка разработчиков. Это осознанный размен: показать событие примерно там, где машина была, лучше, чем не показать нигде. Спорна не подстановка, а то, что вместе с координатами копируется признак достоверности.

Разбор сделан на ОДНОМ приборе. Это важнее всех прочих оговорок. По ЕГТС у нас говорит одно устройство, и все 42 547 записей — его. Одна марка, одна прошивка, один экземпляр: это наблюдение, а не выборка. Механизм выглядит общим для протоколов, где навигационная и сенсорная части передаются отдельными блоками, но подтвердить это на других приборах мы пока не можем.

Мы не утверждаем, что все системы мониторинга ведут себя одинаково. Мы описываем то, что видим у себя, и то, что следует из устройства протоколов. Проверить свою систему можно за минуту — пункт 2 выше.

Частые вопросы

Как понять, что трекер потерял спутники, если статус зелёный?

По разрыву между временем определения координат и временем получения данных. Других признаков снаружи нет.

Почему прибор не сообщает, что не видит спутники?

Потому что с его точки зрения сообщать нечего. Он отправляет то, что знает, — показания датчиков. Навигационную часть просто не включает, и отдельного уведомления об этом протоколом не предусмотрено.

Значит, координаты на карте могут быть часовой давности?

Да. И выглядеть они будут точно так же, как свежие, включая отметку «данные достоверны».

Это поломка прибора?

Нет. Прибор, который мы разбирали, ведёт себя именно так, и поведение это укладывается в устройство протокола. Потеря спутников в паркинге или под плотной застройкой — норма; ненормально то, что об этом никак не сообщается.

Помогает ли смена прибора?

Помогает правильное размещение антенны. Прибор, который видит небо, теряет фикс редко, и явление перестаёт быть заметным — хотя механизм остаётся.

Вывод

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

За неделю среди 42 547 записей не нашлось ни одной с признаком «координаты недостоверны». 77 % пакетов от датчиков несли скопированные координаты, а разрыв доходил до часов.

Снаружи это выглядит как исправная работа: правильное место, свежая отметка, зелёный статус, ноль ошибок. Единственное, что выдаёт подмену, — разница между временем определения координат и временем приёма пакета.

Найдите в своей системе эти две отметки. Если показывается только одна — вы не увидите разницы между работающим прибором и ослепшим, и это стоит знать до того, как разница окажется важной.

GPS-мониторингпотеря сигналателеметрияEGTSдостоверность данных

Читайте также