Seit dem Update auf die Version 2.0.0 mehrere Skripte eingebunden und abhängig vom Ereignis ausgeführt werden.
Das auszuführende Skript muss in einer ausführbaren Datei liegen. Ob das Skript ausführbar ist sollten Sie vorher testen!
Skript per Drag & Drop ins Terminal-Fenster ziehen und Enter drücken, bspw.
/Users/ich/Desktop/script.sh |
Falls das Skript nicht ausführbar ist (Fehler permission denied), können Sie es wiefolgt ausführbar machen
chmod +x /Users/ich/Desktop/script.sh |
Hierfür gehen Sie in der Menüleiste auf den Punkt "Einstellungen öffnen" und dann auf den Reiter "Skripte".
Nun können Sie aussuchen zu welchem Zeitpunkt das Skript gestartet werden soll oder noch weitere Skripte hinzufügen. Sie können auch ein einzelnes Skript zu mehreren Zeitpunkten aktiveren lassen.
Über den Play-Button neben dem jeweiligen Skript, kann es getestet werden. Alternativ können Sie auch die Option "Änderungen" aktivieren und einen bestehenden Einsatz jeweils bearbeiten, um die Skript-Auslösung zu simulieren.
Aktuell unterstützt Windows nur .Bat-Skripte während Linux wie gewohnt auch .sh-Skripte ausführen kann.
Um in den Skripten dynamisch vom erhaltenen Alarm Aktionen auszuführen, wird der vollständige Datensatz wie in der API-Dokumentation beschrieben als JSON in die Umgebungsvariable ALARM_PAYLOAD übergeben.
Mit dem folgenden Beispiel kann das gesamte JSON in eine Datei geschrieben werden, um die Eigenschaften zu testen.
|
|
Um fehlgeschlagene Ausführungen auch im Nachgang überprüfen zu können, muss im Tab Fehleranalyse der Detailgrad auf Ereignisse gesetzt sein und "Logs als Datei speichern" aktiviert werden.
Dann findet sich im Log examplarisch folgende Ausgabe nach jeder Ausführung, um mögliche Probleme zu debuggen:
2024-05-14 14:33:06 [Monitor - App] info: [ScriptService] Execute script successfully: /Users/ich/Desktop/script.sh [ { stdout: '\n', stderr: '/Users/ich/Desktop/script.sh: line 5: jq: command not found\n' exit_code: 0 } ] |
#!/bin/bash set -e ALARM_NUMBER=`echo "$ALARM_PAYLOAD" | jq '.number'` ALARM_TITLE=`echo "$ALARM_PAYLOAD" | jq '.title'` echo "$ALARM_NUMBER $ALARM_TITLE" >> ~/Desktop/script.log |