Skip to content

Example for an alert rules defintion file

The following example will provide a rule set to define rules for the following entities:

  1. Temperature with simple operator comparison
  2. Humidity in a certain range of values over a specific duration

The Farmers perspective would look like this:

Configuration of rules

# yaml-language-server: $schema='none'
---
schema: !!float 1.1
criterias:
  temperature:
    # Display name of the attribute in different languages
    displayName:
      en: Temperature
      es: Temperatura
      de: Temperatur
    # Description of the attribute in different languages
    description:
      en: Temperature of the device
      es: Temperatura del dispositivo
      de: Temperatur des Geräts
    # Parts of the criteria (to build UI components for the rule builder)
    parts:
      operator:
        # type of the part (select = dropdown)
        field: select
        # Display name of the part in different languages
        title:
          en: Operator
          es: Operador
          de: Operator
        # Possible values for the part (in different languages - the key is the value that is used in the rule)
        values:
          eq:
            en: Equals
            es: Igual
            de: Gleich
          gt:
            en: Greater than
            es: Mayor que
            de: Größer als
          lt:
            en: Less than
            es: Menor que
            de: Kleiner als
          ne:
            en: Not equal
            es: No igual
            de: Nicht gleich

      value:
        # type of the part (text = input field)
        field: text
        # Display name of the part in different languages
        title:
          en: Value
          es: Valor
          de: Wert
        # Type of the input field (number = number input, text = text input)
        type: number

  # Criteria for humidity
  humidity:
    # Display name of the attribute in different languages
    displayName:
      en: Humidity
      es: Humedad
      de: Luftfeuchtigkeit
    # Description of the attribute in different languages
    description:
      en: Humidity of the device
      es: Humedad del dispositivo
      de: Luftfeuchtigkeit des Geräts
    # Parts of the criteria (to build UI components for the rule builder)
    parts:
      label1:
        # type of the part (label = text that is displayed but not editable)
        field: label
        # Display name of the part in different languages
        title:
          en: between
          es: entre
          de: zwischen

      value1:
        field: text
        title:
          en: Value 1
          es: Valor 1
          de: Wert 1
        type: number

      label2:
        field: label
        title:
          en: and
          es: y
          de: und

      value2:
        field: text
        title:
          en: Value 2
          es: Valor 2
          de: Wert 2
        type: number

      duration:
        field: select
        title:
          en: Duration in hours
          es: Duración en horas
          de: Dauer in Stunden
        values:
          1:
            en: in the last hour
            es: en la última hora
            de: in der letzten Stunde
          2:
            en: in the last 2 hours
            es: en las últimas 2 horas
            de: in den letzten 2 Stunden
          5:
            en: in the last 5 hours
            es: en las últimas 5 horas
            de: in den letzten 5 Stunden