Automatisierte Alarme
Funktionsbeschreibung
Die Thingsboard-Software bietet auf Geräte-Ebene Alarme an. Hierüber können Benachrichtigungen ausgelöst werden, wenn ein bestimmter Sensor ein außergewöhnliches Verhalten zeigt. Es gibt aktuell fünf Alarm-Typen, die genutzt werden können, um die Schwere der Abweichung darzustellen. Alle Typen können über B.One element iot gesondert gesteuert werden. In B.One element apps gibt es ein Widget, das einen schnellen Überblick über alle Alarme eines (oder mehrere) Geräte ermöglich. Dies sieht wie folgt aus:

Hier sind alle Alarm-Typen aufgeführt. Die Software macht von Haus aus keine Unterscheidung zwischen der Schwere, dies bleibt dem Nutzer überlassen. Das Profil sollte also so befüllt werden, dass ein kritischer Alarm schwerer wiegt, als ein kleiner. Eine technische Überprüfung findet nicht statt.
B.One element iot Profil
Um die Alarme zu realisieren muss folgendes Profil eingerichtet werden. Dabei sind die Bedingungen unter Voraussetzungen zu beachten.
Profilname: thingsboard_alarms
| Technischer Feldname | Typ |
|---|---|
| rulechain_alarm_active_crit | Boolscher Wert |
| rulechain_alarm_filter_crit | Zeichenkette |
| rulechain_alarm_message_crit | Zeichenkette |
| rulechain_alarm_value_crit | Zeichenkette |
| rulechain_alarm_active_warn | Boolscher Wert |
| rulechain_alarm_filter_warn | Zeichenkette |
| rulechain_alarm_message_warn | Zeichenkette |
| rulechain_alarm_value_warn | Zeichenkette |
| rulechain_alarm_active_major | Boolscher Wert |
| rulechain_alarm_filter_major | Zeichenkette |
| rulechain_alarm_message_major | Zeichenkette |
| rulechain_alarm_value_major | Zeichenkette |
| rulechain_alarm_active_minor | Boolscher Wert |
| rulechain_alarm_filter_minor | Zeichenkette |
| rulechain_alarm_message_minor | Zeichenkette |
| rulechain_alarm_value_minor | Zeichenkette |
| rulechain_alarm_active_intermediate | Boolscher Wert |
| rulechain_alarm_filter_intermediate | Zeichenkette |
| rulechain_alarm_message_intermediate | Zeichenkette |
| rulechain_alarm_value_intermediate | Zeichenkette |
| last_telemetry_1 | Zeichenkette |
| last_telemetry_2 | Zeichenkette |
| general_filter | Zeichenkette |

Auszug des Profils
Benutzung
Felder pro Alarm-Schwere
Die meisten Felder wiederholen sich hier einmal pro Schwere des Alarms. Die Level sind crit, warn, major, minor und indeterminate. Wie oben beschrieben ist die Bezeichnung eine Konvention und macht auf technischer Ebene keinen Unterschied.
Pro Schwere gibt es vier Einstellungsmöglichkeiten:
- Der boolsche Wert active legt fest, ob Alarme dieser Schwere überhaupt ausgelöst werden sollen.
- Das Freitext-Feld filter bestimmt, wann ein Alarm ausgelöst wird. Hier muss eine Formel eingetragen werden. Für Beispiele siehe unten.
- Das Freitext-Feld message legt fest, welchen Type der Alarm in B.One element apps bekommt. Dies kann genutzt werden, um zu beschreiben, was den Alarm ausgelöst hat.
- Das Freitext-Feld value
Zusätzlich zu diesen fünf Gruppen gibt es drei weitere Felder, die im Folgenden beschrieben werden:
last_telemetry_1 & last_telemetry_2
Bei Bedarf können die Felder last_telemetry_1 und last_telemetry_2 befüllt werden. Damit steht hinter msg die vorherigen Messwerte mit dem Namen und dem Präfix last_ zur Verfügung. Beispiel:

Die Zeitstempel sind mit dem Präfix: last_ts_ zu erreichen. Beispiel: last_ts_temperature1-> msg.last_ts_temperature1
general_filter
Je nach Gerät kann es vorkommen, dass Payloads verschickt werden, in denen der überprüfte Messwert nicht mitgeliefert wird. Per default wird ein Alarm dann direkt ausgeschaltet. Wenn das nicht erwünscht ist, kann über das Feld general_filter ein Filter dafür eingebaut werden. Ist dieser nicht erfüllt, wird das Paket für die Alarm-Regelung verworfen. So wird zum Beispiel verhindert, dass Alarme durch regelmäßige Statusmeldungen gelöscht werden.

Hinweis: Wenn das general_filter-Feld deaktiviert werden soll, muss anders als unter Deaktivieren von Steuerungen beschrieben true in das Feld eingetragen werden.
Verknüpfung von Bedingungen
Die Filter sind in Javascript geschrieben. Einzelne Bedingungen können mit && oder || wie gewohnt verknüpft werden. Auch Vergleichsoperatoren wie >, >=, !=, etc. können verwendet werden.
Beispiel

Hier ist zu sehen, wie ein befülltes Profil aussehen kann