# Детектор нештатного перемещения объекта ## Описание решения Готовое решение для платформы Rightech IoT Core, предназначенное для выявления ситуаций, когда объект изменяет местоположение на значимое расстояние при нулевой или близкой к нулю скорости. Решение помогает обнаруживать нештатные перемещения объектов: буксировку, эвакуацию, ручное перемещение, перемещение арендного объекта вне штатного сценария, перемещение оборудования без признаков движения или другие ситуации, когда координаты объекта изменяются, но скорость при этом не фиксируется. ## Состав решения В состав решения входят: * модель устройства для RIC; * обработчик детектора нештатного перемещения; * сценарий контроля нештатного перемещения. Модель содержит базовые параметры для приема телеметрии от MQTT-устройства: координаты, скорость и служебные данные последней публикации. Дополнительно в модель добавлен отдельный блок параметров детектора нештатного перемещения. Обработчик анализирует входящие координаты и скорость объекта, сравнивает текущую позицию со стартовой точкой окна наблюдения и определяет, было ли значимое смещение объекта при отсутствии штатного движения. Сценарий контроля нештатного перемещения использует результат работы обработчика и переводит объект между состояниями: перемещение зафиксировано или перемещение не зафиксировано. При срабатывании сценарий может показывать уведомления и использоваться как основа для дальнейшей бизнес-логики проекта. ## Логика работы Решение использует окно наблюдения. В начале окна фиксируется стартовая координата объекта. Далее обработчик сравнивает новые координаты со стартовой точкой и рассчитывает расстояние между ними. Если объект сместился дальше заданного радиуса, но скорость при этом равна нулю или близка к нулевой, система устанавливает флаг обнаружения нештатного перемещения. Если после срабатывания у объекта появляется штатная скорость, флаг нештатного перемещения сбрасывается, а окно наблюдения начинается заново от текущей координаты. ## Возможности Решение позволяет: * выявлять нештатное перемещение объекта при отсутствии скорости; * фиксировать факт подозрительного смещения объекта; * хранить стартовую и последнюю координату окна наблюдения; * фиксировать время начала окна наблюдения; * фиксировать время срабатывания детектора; * сбрасывать флаг срабатывания при появлении штатной скорости; * настраивать радиус срабатывания, длительность окна наблюдения и порог нулевой скорости; * использовать результат детектора в сценариях, уведомлениях, дашбордах и другой бизнес-логике проекта. ## Сценарии применения Решение может использоваться в проектах, где важно контролировать перемещение объектов вне штатного сценария эксплуатации: * шеринг и аренда техники; * аренда прицепов и мобильного оборудования; * контроль спецтехники на площадках; * мониторинг контейнеров и перемещаемых активов; * контроль велосипедов, самокатов и другого легкого транспорта; * отслеживание эвакуации или буксировки объекта; * выявление аномалий телеметрии, когда координаты меняются без признаков движения. ## Инструкция по настройке 1. Импортируйте решение в ваш проект RIC. 2. Создайте объект на базе импортированной модели. 3. Настройте передачу координат и скорости от устройства в платформу. 4. Проверьте привязку обработчика к модели. 5. При необходимости измените настройки детектора в обработчике. Настройки по умолчанию задаются в коде обработчика: const DEFAULT_RADIUS_M = 200; const DEFAULT_WINDOW_MIN = 10; const DEFAULT_SPEED_ZERO_THRESHOLD = 0.5; Также настройки могут передаваться через параметры модели: const speedThreshold = Number.isFinite(speedThresholdRaw) ? speedThresholdRaw : DEFAULT_SPEED_ZERO_THRESHOLD; const windowMin = Number.isFinite(windowMinRaw) && windowMinRaw > 0 ? windowMinRaw : DEFAULT_WINDOW_MIN; const radiusM = Number.isFinite(radiusRaw) && radiusRaw > 0 ? radiusRaw : DEFAULT_RADIUS_M; 6. Запустите сценарий контроля нештатного перемещения. 7. Настройте сценарий под свой проект: добавьте необходимые условия переходов, команды управления, информационные уведомления или интеграции. 8. При необходимости добавьте дополнительные оповещения для оператора, диспетчера или ответственного пользователя. 9. Проверьте работу решения на тестовом объекте, изменив координаты при нулевой или близкой к нулю скорости. ## Требования Для корректной работы решения необходимо: * устройство или внешний сервис, передающий данные в платформу; * передача координат объекта: широта и долгота; * передача скорости объекта; * настроенная модель в RIC; * подключенный обработчик детектора нештатного перемещения; * активированный сценарий контроля состояния объекта; * настроенный под ваш проект сценарий контроля состояния объекта. ## Ограничения и рекомендации Решение не определяет причину перемещения объекта, а фиксирует сам факт нештатного изменения координат при отсутствии скорости. Для разных типов объектов рекомендуется отдельно подбирать радиус срабатывания и длительность окна наблюдения. Например, для компактных объектов радиус можно уменьшить, а для крупной техники или объектов с нестабильной GPS-точностью - увеличить. Сценарий из состава решения является базовым шаблоном. Перед использованием в промышленной эксплуатации его рекомендуется адаптировать под конкретный проект: настроить условия переходов, действия при срабатывании, команды, уведомления и интеграции. Перед запуском на реальных объектах рекомендуется протестировать решение на контрольных данных, чтобы исключить ложные срабатывания из-за особенностей GPS, качества связи или формата передаваемой телеметрии. ## Документация - Rightech: [www.rightech.io](https://rightech.io/ru/catalog)
Использование этого шаблона и его компонентов допускается только в платформе Rightech IoT. Лицензия автора шаблона распространяется только на его собственный код и не влияет на сторонние библиотеки и компоненты, используемые в шаблоне, и не может противоречить их лицензиям и лицензии Rightech IoT.

## Copyright © 2026 Abob Эта программа является свободным программным обеспечением: вы можете распространять её и/или изменять в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation версии 3. Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемой гарантии КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. См. GNU General Public License, <https://www.gnu.org/licenses/>. # GNU Общая Общественная Лицензия (GPL) **Версия 3, 29 июня 2007 г.** Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/> Каждому разрешается копировать и распространять дословные копии этого лицензионного документа, но **не разрешается его изменять**. --- ## Преамбула GNU General Public License — это свободная, копилефтная лицензия для программного обеспечения и других видов работ. Большинство лицензий на программное обеспечение лишают вас свободы делиться и изменять произведения. Напротив, GNU GPL гарантирует вам свободу распространять и изменять все версии программы — чтобы она оставалась свободным ПО для всех её пользователей. Мы, Free Software Foundation, применяем GNU GPL к большей части нашего программного обеспечения, а также к другим работам, если их авторы этого захотят. Вы можете применять её и к своим программам. Когда мы говорим о **свободном ПО**, речь идёт о свободе, а не о цене. Наши лицензии GPL предназначены для того, чтобы вы могли: - распространять копии свободного программного обеспечения (и при желании брать плату за это), - иметь доступ к исходному коду или получить его, - изменять ПО и использовать его части в новых свободных программах, - знать, что вы имеете право на это. Чтобы защитить ваши права, мы должны предотвратить ограничения со стороны других, которые могут попытаться заставить вас отказаться от этих прав. Поэтому вы обязаны соблюдать определённые правила: - передавая копии программы, вы должны сохранять свободу её использования, - предоставлять исходный код, - сохранять уведомления об авторских правах и лицензии. Эти условия распространяются как на изменённые версии программы, так и на неизменённые. Например, если вы распространяете копии такой программы бесплатно или за плату, вы должны передать получателям те же права, что имеете сами. Вы должны обеспечить доступ к исходному коду. Также нельзя навязывать дополнительные ограничения поверх условий GNU GPL. --- ## Условия и положения ### 0. Определения **"Эта Лицензия"** — GNU General Public License, версия 3. **"Программа"** — любая работа, распространяемая по этой Лицензии. **"Вы"** — лицензиат, физическое или юридическое лицо, получившее права по Лицензии. **"Распространение"** — передача копий программы другим лицам любым способом. **"Модификация"** — изменение программы или её части, создание производной работы. ### 1. Исходный код Исходный код — это форма работы, предпочтительная для внесения изменений. Обязательство: при распространении программы вы должны предоставить исходный код или способ его получить. ### 2. Основные права Вы можете: - запускать программу в любых целях, - изучать, как она работает, и изменять её, - распространять копии, - улучшать программу и публиковать улучшения. Эти права не могут быть отозваны, если вы соблюдаете условия лицензии. ### 3. Передача копий Вы можете передавать дословные копии исходного кода на любом носителе при условии: - сохранения уведомлений об авторских правах, - сохранения текста этой Лицензии, - отсутствия дополнительных ограничений. Вы можете взимать плату за передачу копий или предоставление гарантий на них. ### 4. Передача изменённых версий Вы можете передавать изменённые версии Программы при условии: - сохранения уведомлений об авторских правах, - чёткого указания на изменения, - лицензирования всей работы по этой же Лицензии. Это гарантирует, что все производные работы останутся свободными. ### 5. Передача объектного кода Если вы распространяете программу в объектном коде или исполнимой форме, вы обязаны: - предоставить исходный код вместе с ней, - или дать чёткие инструкции, как получить исходный код бесплатно. ### 6. Передача через сети Если вы предлагаете доступ к программе через сеть, вы обязаны предоставить исходный код всем пользователям, которые взаимодействуют с программой удалённо. ### 7. Дополнительные разрешения и условия Вы можете добавлять **дополнительные разрешения**, которые снимают ограничения GNU GPL. Также можно добавлять **дополнительные условия**, но они не должны противоречить этой Лицензии. ### 8. Прекращение действия лицензии Если вы нарушаете условия этой Лицензии, ваши права автоматически прекращаются. Они могут быть восстановлены, если нарушение было исправлено. ### 9. Пересмотр версий Free Software Foundation может публиковать новые версии GNU GPL. Вы можете следовать: - версии, полученной вместе с программой, - или любой более новой версии. ### 10. Отказ от гарантий **Программа распространяется "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ**, включая гарантию работоспособности или пригодности для определённых целей.