Reguły definiują jakie akcje mają być wykonane w odpowiedzi na zdarzenia związane
z przesyłaniem przez urządzenia
nowych danych. Spełnienie przez dane warunków określonych w regułach powoduje
wygenerowanie w serwisie wiadomości
określonego typu.
Reguły mogą być definiowane dla:
Reguła może być aktywna lub nie.
Regułę analizy danych przychodzących definiuje się dla:
Można ograniczyć analizę do danych nie starszych niż określona liczba minut.
Przy analizie zmian wartości uwzględniana jest histereza.
W przypadku, kiedy dane spełniają warunki reguły system generuje powiadomienie o wybranym poziomie ważności:
Powiadomienie jest kierowane do wybranej listy użytkowników.
Opcjonalnie, w przypadku gdy reguła przestanie być spełniana (wartości danych wrócą do oczekiwanego zakresu), system generuje powiadomienie kierowane do podanej listy użytkowników.
Warunki analizy danych definiowane są poprzez:
Jeżeli na formularzu znacznik skrypt
nie jest zaznaczony, to warunki można zdefiniować poprzez wypełnienie pojawiających się pól formularza i określenie:
Można zdefiniować kilka takich warunków.
Definiując warunki przy użyciu skryptu można sprawdzić więcej zależności niż wybierając opcje z formularza. Na przykład porównać zesobą różne pomiary.
Skrypt musi definiować funkcję checkRule()
zwracającą wynik poprzez wywołanie funkcji conditionsNotMet()
lub conditionsMet()
.
Przykład:
def checkRule():
v1 = getValue("temperature1")
v2 = getValue("temperature2")
if v1 is None or v2 is None:
return conditionsNotMet()
if v2 - v1 > 10:
return conditionsMet("temperature2",v2)
return conditionsNotMet()
Przy tworzeniu treści komunikatów można użyć następujących zmiennych:
{target.eui}
- EUI urządzenia, którego dotyczy reeguła (jeśli dotyczy urzadzenia){target.name}
- nazwa urządzenia, którego dotyczy reeguła{tag.name}
- nazwa znacznika urządzeń, którego dotyczy reguła{tag.value}
- wartość znacznika urządzeń (o nazwie {tag.name}), którego dotyczy reguła{device.eui}
- EUI urządzenia, dla którego reguła zadziałała{device.name}
- nazwa urządzenia, dla którego reguła zadziałała{var}
- nazwa pomiaru, dla którego reguła zadziałała{measurement}
- nazwa pomiaru, dla którego reguła zadziałała{value}
- wartość pomiaru, która spełnia regułę{info}
- jeśli występuje, to służy do oddzielenie tematu wiadomości od jej treści{device.owner}
- login użytkownika będącego właścicielem urządzenia{device.team}
- lista loginów użytkowników wchodzących w skład zespołu urządzenia{device.admins}
- lista loginów użytkowników będących administratoramiurządzeniaPrzykład zastosowana w komunikacie:
To jest temat powiadomienia{info}Uwaga! Wartość {value} parametru {measurement} dla urządzenia
{device.name} ({device.eui}) jest powyżej docelowej.