События вещи
События являются интересными или критически важными состояниями свойств, которые вещь публикует для подписчиков. События инициируют запуск некоторой функциональности в подписке, которая в основном является инициируемым сервисом. В определении сервиса при двойном щелчке по событию сценарий, необходимый для инициирования события, будет выведен для вас как заготовка кода. Триггеры являются хорошо определенными изменениями состояния актива или системы (вещи) (например, двигатель перегревается). Триггерам часто требуется действие, отвечающее за изменение (например, Отображение цветового сигнала предупреждения, чтобы показать, что трактор перегревается). Сложное прогнозирование на основе аналитических алгоритмов может инициировать события и позволяет разработчику приложения реагировать на такие события с помощью бизнес-логики.
Бизнес-логика и действия в приложении ThingWorx управляются событиями. Событие может быть таким же простым, как новое значение данных для машины, или более сложными событиями со многими точками данных и их зависимостями. Например, после сбора данных в реальном времени ThingWorx Analytics прогнозирует сбой и инициирует событие для обработчика IoT времени выполнения, чтобы вы могли принять меры. События могут инициироваться через API-запросы пользователем в приложении или же устройством на основе локального анализа данных или диагностических процедур.
У события должен быть подписчик. Чтобы инициировать подписку, подписчик отправляет пакет данных.
В ThingWorx существуют стандартные события и связанные пакеты данных (определенные в структурах данных). Наиболее распространенным типом события является изменением данных, связанных со свойством вещи. При определении свойства существует много аспектов конфигурации. Например, с помощью свойства DataChangeEvent можно задать событие, инициируемое в разных ситуациях: когда существуют новые данные для свойства, только если данные изменились, только если данные имеют значения true или false или только если новое значение находится вне определенного порога. Все события изменения данных приводят к отправке пакета данных с одной и той же предопределенной структурой данных.
Вы можете создавать пользовательские события в своей модели. Например, у вас может иметься машина, которая запускает диагностические проверки. Когда диагностическая проверка определяет, что машине требуется калибровка, можно создать пользовательское предупреждение о калибровке для этого класса оборудования (обычно на уровне профиля вещи или шаблона вещи). В определении можно создать структуру данных, которая содержит данные из машины, необходимые для выполнения действия. Можно настроить агент машины, запускающий событие через API-интерфейс ThingWorx, когда обнаружено какое-то условие. В подписке можно применить бизнес-логику для ответа на событие. Можно также инициировать события через стандартный интерфейс ThingWorx REST API, чтобы мэшапы и пользовательские приложения могли запускать события через ThingWorx Analytics.
Событие DynamicSubscriptionInvalidated
Начиная с ThingWorx 9.4 и более поздних версий, добавляется новое событие DynamicSubscriptionInvalidated. Это событие возникает в вещи, когда удаляется другая созданная ей динамическая подписка. Динамические подписки могут быть удалены из-за остановки или перезапуска вещи, из-за удаления свойств или удаления самой вещи.
Это событие в основном используется в мэшапах, когда установлен флажок Автоматически обновлять значения при возможности.
Это позволяет оператору мэшапа получать предупреждения о том, что обновления больше не будут предоставляться из ThingWorx Platform при изменении вещи (например, при обновлении свойства вещи).
Использование ThingWorx Analytics для инициирования событий
Приложение ThingWorx Analytics может исследовать данные и распознавать аномальное поведение, или оно может обучаться с помощью исторических данных. ThingWorx Analytics может использовать данные реального времени из ThingWorx для прогнозирования результатов. Базовым примером является прогнозная аналитика. Можно настроить обработчик аналитики для класса оборудования на основе исторических данных, таких как информация об отказах. Можно отправлять данные времени выполнения в обработчик аналитики из отдельных вещей. Если при этом модуль аналитики обнаруживает картину, которая привела к прошлому сбою, он может запустить событие для этой вещи, что позволит вам принять меры через подписку. Такое действие может, например, создать запрос в службу поддержки или отправить уведомление в отдел обслуживания. Предупреждения или подписки на пользовательские события позволяют связывать конкретное действие и бизнес-логику для ближайших событий в реальном времени.
Было ли это полезно?