Skip to main content

Правила Groovy

Версия: 1.26.0

Правила Groovy написаны на Groovy, языке программирования, который может легко работать вместе с Java. Эти правила способны выполнять любую задачу, которую OpenRemote позволяет выполнять правилам, и предназначены для сценариев, слишком сложных, чтобы их можно было определить с помощью When-Then Rules или Flow Rules. Пользователи с опытом программирования могут предпочесть писать правила в Groovy, независимо от их сложности.

Groovy Rules можно создавать в техническом менеджере и писать вручную. В следующих разделах представлена ​​дополнительная информация о том, как создавать собственные правила Groovy.

Как работают правила Groovy?

Правила Groovy работают с использованием механизма сценариев Groovy. Правила анализируются и привязываются различные объекты. Правила впоследствии регистрируются в порядке сверху вниз в наборе правил.

Список объектов:

  • LOG обеспечивает базовые функции ведения журнала с использованием java.util.logging.Logger.

  • rules обеспечивает доступ к набору правил. Таким образом отдельные правила добавляются в набор правил. Соответствующий класс в исходном коде

  • assets обеспечивает доступ к соответствующим активам. Соответствующий класс в исходном коде

  • users обеспечивает доступ соответствующим пользователям. Соответствующий класс в исходном коде

  • notifications предоставляет возможность отправлять уведомления. Соответствующий класс в исходном коде

Примеры правил Groovy

В этом разделе вы можете найти шаблоны кода и соответствующие примеры использования правил Groovy.

Шаблоны правил Groovy:

  • Правило группового контроля
  • Правило группового суммирования

Пример: групповое управление

Пример группового управления OpenRemote groovy рисунок Пример: групповое управление. Группа активов вместе с атрибутами и элементами конфигурации, используемыми в этом примере.

В этом примере показано, как одновременно управлять несколькими дочерними активами (светами) с помощью родительского актива (контроллера освещения). В демонстрационных целях мы будем использовать общий Thing Asset, но вы можете заменить его своим собственным типом актива. Если у вас уже есть группа активов с конфигурацией Rule state, вы можете пропустить шаги 1–3.

  1. Создайте актив:

    • Перейдите на страницу Assets и щелкните значок +.
    • Выберите Thing Asset и назовите его Контроллер освещения.
    • Нажмите ADD, чтобы создать актив.
  2. Создайте атрибут с состоянием правила:

    – Выберите ресурс Контроллер освещения и нажмите MODIFY.

    • Нажмите + ADD ATTRIBUTE.
    • Создайте атрибут с помощью:
      • Тип: Custom attribute
      • Имя: onOff
      • Тип значения: Boolean.
    • Нажмите ADD.
    • Щелкните значок > вновь созданного атрибута onOff и щелкните + ADD CONFIGURATION ITEMS.
    • Выберите Rule state и нажмите ADD.
    • Нажмите SAVE, чтобы сохранить изменения. – Создайте 2 дополнительных объекта, щелкнув значок копирования , назовите их Light 1 и Light 2.
    • Нажмите VIEW, чтобы вернуться к просмотру активов.
  3. Создайте группу активов:

    – Выберите Свет 1 и Свет 2 в списке ресурсов и перетащите их на Контроллер освещения.

  4. Создайте правило:– Выберите ресурс Контроллер освещения и запишите его идентификатор ресурса (последняя часть URL-адреса, см. рисунок выше).

    • Перейдите на страницу Rules, щелкните значок + и выберите Groovy. В редакторе кода появится базовый пример правила Groovy. Удалите этот пример.
    • Скопируйте Правило группового контроля в редактор кода. – В редакторе кода замените идентификатор ресурса переменной parentAssetId на идентификатор ресурса Lights Controller. – Назовите правило Правило контроллера освещения и нажмите SAVE.

После выполнения вышеуказанных шагов вы сможете одновременно управлять Light 1 и Light 2, нажав кнопку On off на Контроллере освещения. Вы по-прежнему можете управлять освещением по отдельности, но их значение перезаписывается каждый раз, когда используется Контроллер освещения. Вы можете использовать это правило в качестве отправной точки для создания собственных правил настраиваемой группы.

Пример: групповое суммирование

Правило группового суммирования Пример: групповое суммирование. Группа активов вместе с атрибутами и элементами конфигурации, используемыми в этом примере.

В этом примере показано, как суммировать значения атрибутов дочерних активов с родительским активом внутри группы. В демонстрационных целях мы будем использовать общий Thing Asset, но вы можете заменить его своим собственным типом актива. Если у вас уже есть группа активов с конфигурацией Rule state, вы можете пропустить шаги 1–3.

  1. Создайте актив:

    • Перейдите на страницу Assets и щелкните значок +.
    • Выберите Thing Asset и назовите его Солнечная ферма.
    • Нажмите ADD, чтобы создать актив.
  2. Создайте атрибут с состоянием правила:

    – Выберите объект Солнечная ферма и нажмите MODIFY.

    • Нажмите + ADD ATTRIBUTE.
    • Создайте атрибут с помощью:
      • Тип: Custom attribute
      • Имя: solarPower
      • Тип значения: Number.
    • Нажмите ADD.
    • Щелкните значок > вновь созданного атрибута solarPower и щелкните + ADD CONFIGURATION ITEMS.
    • Выберите Rule state и нажмите ADD.
    • Нажмите SAVE, чтобы сохранить изменения. – Создайте 2 дополнительных объекта, щелкнув значок копирования , назовите их Солнечная панель 1 и Солнечная панель 2.
    • Нажмите VIEW, чтобы вернуться к просмотру активов.
  3. Создайте группу активов:

    – Выберите Солнечная панель 1 и Солнечная панель 2 из списка ресурсов и перетащите их в Солнечную ферму.

  4. Создайте правило:

    – Выберите объект Солнечная ферма и запишите его идентификатор актива (последняя часть URL-адреса, см. рисунок выше).

    • Перейдите на страницу Rules, щелкните значок + и выберите Groovy. В редакторе кода появится базовый пример правила Groovy. Удалите этот пример.
    • Скопируйте Правило группового суммирования в редактор кода.
    • В редакторе кода замените идентификатор актива переменной parentAssetId на идентификатор вашего актива Solar Farm. – Назовите правило Правило суммирования солнечной энергии и нажмите SAVE.

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

Дополнительная информация:— По умолчанию будут суммироваться все дочерние атрибуты с конфигурацией Rule state. Если вы хотите суммировать только определенные атрибуты, вы можете указать имена их атрибутов в переменной attributeNames. – По умолчанию тип родительского и дочернего активов должен совпадать. Если вы хотите суммировать атрибуты с одинаковыми именами разных типов активов, вы можете установить для переменной matchParentAssetType значение false.

  • Правило срабатывает, когда в группе обнаруживаются изменения временной метки дочернего атрибута. Если вы перемещаете дочерний актив за пределы группы, сумма не пересчитывается до тех пор, пока метка времени дочернего атрибута не будет обновлена ​​внутри группы.

См. также


Уведомление о лицензии: атрибуция документации OpenRemote