Уведомления о геозонах с дополнительными параметрами

Михаилa year ago

Добрый день!
Сервер Traccar используется в качестве сервера геолокации для семьи. В процессе эксплуатации удалось сконфигурировать и покрыть все основные потребности.
Из оставшихся вопросов:
Фильтрация получаемых уведомлений о входе/выходе в/из геозоны.
Основная проблема, что когда точность снижается или происходит переподключение к базовым станциям, точки начинают скакать, что приводит к ложным срабатываниям. Данные скачки происходят только в квартирах, которые выше земли на десятки метров.
В процессе наладки пришла мысль реализовать следующий функционал:
При отправке события о геозоне производить дополнительную оценку, связанную с высотой. К примеру, Вход в геозону при условии, если высота, поступающая от устройства менее 30 метров. Соответственно, скачки на 50-и и 80-и метрах будут игнорироваться.
Пытался реализовать дополнительную оценку через вычисляемые атрибуты, но к сожалению результатов не добился.
Пример записи вычисляемого атрибута:
Вход в геозону event altitude ? (altitude <30 ? "geofenceEnter" : null) : null string
В уведомлениях стандартно выбран параметр Вход в геозону и уведомления на пуш, почту и т.п.

Сами уведомления приходят стабильно, все связи с устройствами выстроены.

Михаилa year ago

Дополнительно отмечу, что средствами тревоги функционал реализуем, но там свои неудобства.

  1. Сервер отмечает пользователя, который эту тревогу отправил и пока отмечена предыдущая тревога, новое событие не отрабатывает.
  2. Нет возможности разбить шаблоны сообщений по отдельным файлам.
  3. В целом использование тревоги для таких целей выглядит не совсем тем, что необходимо в текущей реализации. Это скорее для опасных зон и т.п.
Anton Tananaeva year ago

Почему просто не увеличить зону на эти же 50-80 метров?

Михаилa year ago

К сожалению скачки не всегда 50, а иной раз и все 200, и 500.

Anton Tananaeva year ago

Тогда вы по расстоянию не отфильтруете скачки. Можете попробовать фильтровать с помощью filter.maxSpeed.

Михаилa year ago

С этими фильтрами я работал, все верно. Мой вопрос заключается в ограничении отправки уведомлений о входе и выходе в геозоны по высоте. Если клиент передает параметр с точкой, где высота выше заданного фильтра, она игнорируется при определении точки,, как покинувшей зону или вернувшейся обратно.
такого рода: event altitude ? (altitude <30 ? "geofenceEnter" : null) : null string
Соответственно, не важно. на какое расстояние скаканет, если высота не проходит проверку, то и действия не произойдет. На тревоге отрабатывает, но настройки функционала по тревоге, я выше отметил, что не совсем смог подружить.

Anton Tananaeva year ago

Атрибутом не получится такое сделать. Нужно в коде менять логику.

Михаилa year ago

Антон понял, спасибо! Тогда пока остается с тревогами попытаться допилить задумку.