System Script

Aus REV Plus Handbuch
Wechseln zu: Navigation, Suche

System Scripts ermöglichen den Anwendern im REV Plus Server Visual Basic Scripts auszuführen und damit Benutzer-spezifische Probleme zu lösen. So kann beispielsweise bei Eingang einer E-Mail automatisch ein Einsatz mit den entsprechenden Feldern angelegt werden.

Events

Die Script werden in der REV Plus Verwaltung angelegt. Jedem Script muss ein Event zugewiesen werden, bei dessen Eintritt das Script ausgeführt wird.

Aktuell werden folgende Events unterstützt:

Eventname Beschreibung Parameter
onEmail Wird ausgelöst sobald eine E-Mail im REV System eingegangen ist. datAbsender, datEmpfaenger, datBetreff, datText
onZVEI Wird ausgelöst sobald eine 5-Ton Alarmierung empfangen wurde. datKennung
onFmsStatus Wird ausgelöst sobald ein FMS Status empfangen wurde. datKennung, datStatus, datRichtung
onFmsText Wird ausgelöst sobald eine FMS Textnachricht empfangen wurde. datKennung, datText
onHardwareState Wird ausgelöst sobald ein Hardwareeingang oder -ausgang seinen Status geändert hat. datIO, datState
onPocsag Wird ausgelöst sobald eine POCSAG Alarmierung empfangen wurde. datKennung, datSubRic, datText
onSDSStatus Wird ausgelöst sobald ein SDS Status empfangen wurde. datTSI, datStatus
onTimer Wird ausgelöst sobald die konfigurierte Zeit für das Script vergangen ist.
onNeueDatei Wird ausgelöst sobald in dem konfigurierten Verzeichnis eine neue Datei erstellt wurde. datFileName
onInit Wird ausgelöst sobald der REV Server gestartet wurde.
onNewEinsatz Wird ausgelöst sobald ein neuer Einsatz angelegt wurde. datEinsatz = Einsatznummer des neuen Einsatzes
onTetraReport Wird ausgelöst sobald sich der Übertragungsstatus einer TETRA Nachricht geändert hat. datID = interne ID der gesendeten Nachricht
datTSI = TSI des Empfängers
datStatus = Status der Übertragung ("Error", "Received", "Consumed")
onAsteriskVariableChanged Wird ausgelöst wenn im Commander Server eine Asterisk Variable geändert wurde. datName = Name der Variable
datValue = Wert der Variable
(ab Serverversion 2.1.4)
onWebRequest Wird ausgelöst wenn eine HTTP Anfrage an den internen Webserver unter der URL http://<Serveradresse>/scripts gestellt wurde. datURL = Aufgerufene URL
datParameter = Parameterstring (nach dem ?)
(ab Serverversion 2.1.44)
onSMS Wird ausgelöst wenn eine SMS empfangen wurde. datRufnummer = Absender der SMS
datText = Textinhalt der SMS
(ab Serverversion 2.1.59)
onNewExternEinsatz Wird ausgelöst wenn ein Einsatz extern angelegt wurde. (Über Schnittstellen oder Plugins) datEinsatz = EinsatzID
(ab Serverversion 2.2.10)
onUpdateExternEinsatz Wird ausgelöst wenn ein Einsatz extern aktualisiert wurde. (Über Schnittstellen oder Plugins) datEinsatz = EinsatzID
(ab Serverversion 2.2.10)
onEinsatzStatusChange Wird ausgelöst sobald der Status eines Einsatzes gewechselt wird. datEinsatz = EinsatzID
datStatus = Neuer Status des Einsatzes
(ab Serverversion 2.2.65)
onSDSText Wird ausgelöst sobald ein SDS Text empfangen wurde. datTSI = TSI des Absenders
datText = Gesendeter Text
(ab Serverversion 2.2.65)
onEinsatzmittelStatus Wird ausgelöst sobald der Status eines Einsatzmittels geändert wurde. (Unabhängig von der technischen Quelle) datEinsatzmittel = ID des Einsatzmittels
datStatus = Neuer Status des Einsatzmittels
(ab Serverversion 2.3.2)
onCalloutAlert Wird ausgelöst sobald ein TETRA Callout Alert empfangen wurde. datSender = TSI des Absenders
datReceiver = TSI des Empfängers
datSeverity = Severity Level
datCalloutNumber = Nummer des Callouts
datText = Übermittelter Text
datPreCodedStatus = Übermittelter Status
(ab Serverversion 2.6.13)
onCalloutTest Wird ausgelöst sobald ein TETRA CalloutTest empfangen wurde. datSender = TSI des Absenders
datReceiver = TSI des Empfängers
datCalloutNumber = Nummer des Callouts
datText = Übermittelter Text
datPreCodedStatus = Übermittelter Status
(ab Serverversion 2.6.13)
onCalloutAlertSubaddress Wird ausgelöst sobald ein TETRA Callout Alert mit Subadressen empfangen wurde. (z.B. Airbus P8gr oder Subadressierung nach BDBOS) datSender = TSI des Absenders
datReceiver = TSI des Empfängers
datSeverity = Severity Level
datCalloutNumber = Nummer des Callouts
datText = Übermittelter Text
datPreCodedStatus = Übermittelter Status
datSubadressen = Array mit allen Subadressen
(ab Serverversion 2.6.13)

REV spezifische Funktionen

Neben den Standard VBScript Funktionen und Klassen stehen REV Plus spezifische Klassen zur Verfügung. Mithilfe dieser Funktionen können direkte Eingriffe in das System vorgenommen werden. Daher ist hierbei genau zu Überlegen, welche Funktionen verwendet werden sollten.

Data

Die Klasse Data stellt sonstige Funktionen sowie den Zugriff auf den Scriptspeicher im REV Plus Server zur Verfügung.

Funktionsname Beschreibung Parameter
Data.WriteDebug Schreibt eine Debug Meldung in die Log Datei line
Data.ExecuteURL Ruft eine URL auf und liefert den Inhalt der URL zurück. URL, Parameter, Async
Data.SendSMS Sendet eine SMS. Telefonnummer, Text
Data.WakeOnLAN Weckt einen PC über die WakeOnLan Funktion auf. MACAdresse, IP, SubnetzMaske
Data.Save Speichert einen Datensatz in den Serverspeicher. ID, Value
Data.Load Ruft den Inhalt aus einem Speicherplatz ab. ID
Data.TagebuchAdd Fügt einen Eintrag in das Einsatztagebuch ein. Eintrag
Data.BMAAlarm Löst einen BMA Alarm in der Software aus. Meldernummer, Adresse, Meldung
Data.SendMail Sendet eine E-Mail. Empfängeradresse, Empfängername, Betreff, Nachricht
Data.SendMailHTML Sendet eine E-Mail im HTML Format. Empfängeradresse, Empfängername, Betreff, Nachricht (HTML)
Data.Alarmspeicher Gibt alle Alarmierungen in dem angegebenen Zeitraum zurück Sekunden (Zeitraum in dem Alarmierungen zurückgegeben werden sollen)

Tetra

Die Klasse Tetra stellt Funktionen für die neue TETRA Schnittstelle zur Verfügung.

Funktionsname Beschreibung Parameter
Tetra.SetGroup Ändert die Gruppe eines angeschlossenen TETRA Funkgerätes fugId, groupId
Tetra.SendSDSText Sendet einen SDS Text an eine TSI. tsi, message, reportConsumed, reportReceived
Tetra.SendHMDText Sendet einen HomeModeDisplay Text an eine TSI. tsi, message, reportConsumed, reportReceived
Tetra.SendSDSStatus Sendet einen TETRA Status an eine TSI. tsi, status
Tetra.RCChangeGroup Wechselt ein Endgerät in die angegebene Gruppe. endgeraet (Datenbank ID), gruppe (Datenbank ID) (Ab Server V 2.1.94)

Haustechnik

Die Klasse Haustechnik stellt Funktionen für die Anbindung der Hardwaresteuerung zur Verfügung.

Funktionsname Beschreibung Parameter
Haustechnik.Setzen Setzt den Ausgang auf den Angegebenen Status AnschlussID, Status
Haustechnik.Schalten Schaltet einen Ausgang um AnschlussID
Haustechnik.Status Fragt den Status eines Ausgangs ab AnschlussID

Analog

Die Klasse Analog stellt Funktionen für die Analogfunkschnittstelle zur Verfügung.

Funktionsname Beschreibung Parameter
Analog.AlarmZVEI Löst eine ZVEI Alarmierung aus. zvei, kanal


ELA

Die Klasse ELA stellt Funktionen für die Steuerung der ELA Module zur Verfügung.

Funktionsname Beschreibung Parameter
ELA.NeuAlarm Löst eine automatische Alarmdurchsage auf der ELA aus. Einsatz, elaID, Alarmkreise[]
ELA.Warten Wartet die angegebene Zeit in Sekunden. Zeit
ELA.PlaySound Spielt eine Sounddatei auf der gewählten ELA ab. ElaID, Sounddatei

Commander

Die Klasse Commander stellt Funktionen für die Steuerung des Commander Moduls zur Verfügung.

Funktionsname Beschreibung Parameter
Commander.SetVar Setzt eine Asteriskvariable auf den angegebenen Wert Name, Wert

Einsatz

Die Klasse Einsatz stellt Funktionen für die Bearbeitung der Einsatzdaten zur Verfügung. Alle Funktionen wirken auf den aktuell im Script bearbeiteten Einsatz. Dieser wird entweder mit Einsatz.Edit geöffnet oder mit Einsatz.Add erstellt und geöffnet.

Funktionsname Beschreibung Parameter
Einsatz.GetID Gibt die ID des aktuell geöffneten Einsatzes zurück
Einsatz.AddTask Fügt dem aktuell geöffneten Einsatz einen Task hinzu. TaskID
Einsatz.AddSchleife Fügt eine Alarmschleife dem aktuellen Einsatz hinzu. SchleifeID
Einsatz.FahrzeugAufWache Setzt alle Fahrzeuge der angegebenen Wache in den Status 2 WacheID
Einsatz.SucheEinsatz Sucht und öffnet einen Einsatz entsprechend dem angegebenen Feldwert Feld, Wert
Einsatz.SucheEinsatzAktiv Sucht und öffnet einen - aktuell aktiven, also nicht beendeten - Einsatz entsprechend dem angegebenen Feldwert. (Ab Serverversion 2.6.35) Feld, Wert
Einsatz.FahrzeugIstEinsatz Gibt zurück ob das angegebenen Einsatzmittel in dem aktuell geöffneten Einsatz ist. EinsatzmittelID
Einsatz.OrganisationIstEinsatz Gibt zurück ob die angegebenen Organisation in dem aktuell geöffneten Einsatz ist. OrganisationID
Einsatz.Mail Sendet den geöffneten Einsatz als E-Mail mit der angegebenen Vorlage VorlageID, ReceiverAdresse, ReceiverName, Anzahl, Vermerk
Einsatz.Drucken Druckt den geöffneten Einsatz mit der angegebenen Vorlage VorlageID, Druckername, Anzahl, Vermerk
Einsatz.Fax Faxt den geöffneten Einsatz mit der angegebenen Vorlage VorlageID, Faxnummer, Anzahl, Vermerk
Einsatz.ZVEI Löst eine ZVEI Alarmierung aus Schleife, Kanal
Einsatz.RunVorschlag Führt den Vorschlag im aktuell geöffneten Einsatz aus
Einsatz.Dispo Fügt das angegebene Einsatzmittel dem aktuell geöffneten Einsatz hinzu EinsatzmittelID
Einsatz.Alarm Führt die Alarmierung für den aktuell geöffneten Einsatz aus
Einsatz.Add Erstellt einen neuen Einsatz und öffnet diesen IgnoreTaskTypen (s.u.)
Einsatz.Edit Öffnet den Einsatz mit der angegebenen ID EinsatzID
Einsatz.SetData Ändert das angegebene Feld auf den neuen Wert im aktuell geöffneten Einsatz Feld, Wert
Einsatz.GetData Gibt den Wert eines Einsatzfeldes zurück Feld
Einsatz.Beenden Beendet den aktuell geöffneten Einsatz
Einsatz.SucheStichwort Sucht ein Stichwort anhand von Einsatzart und Indikation. Wird ein Stichwort gefunden, wird es dem aktuell geöffneten Einsatz hinzugefügt. Einsatzart, Indikation
Einsatz.SucheStichwortKlartext Sucht ein Stichwort anhand des Klartextes. Wird ein Stichwort gefunden, wird es dem aktuell geöffneten Einsatz hinzugefügt. Stichwort
Einsatz.SucheStichwortGruppe Sucht eine Stichwortgruppe anhand des Gruppennames. Wird eine Gruppe gefunden, wird sie dem aktuell geöffneten Einsatz hinzugefügt. StichwortGruppe
Einsatz.SucheObjektName Sucht ein Objekt anhand des Namens und fügt es dem Einsatz hinzu. Objektname
Einsatz.SucheObjekt Sucht ein Objekt anhand der Adresse und fügt es dem Einsatz hinzu. Stadt, Stadtteil, Strasse, HNR, Objektname
Einsatz.SetEinsatzmittelStatus Setzt den Status für ein Einsatzmittel auf den angegebenen Wert. EinsatzmittelID, Status (Nummer)
Einsatz.AddCallout Verknüpft einen eingegangenen Callout Alarm mit dem aktuellen Einsatz. Somit können Rückmeldungen von Personal dem richtigen Einsatz zugeordnet werden. (ab Serverversion 2.6.13) CalloutNumber
Einsatz.StrasseUndHausnummerExtrahieren Versucht Straße und Hausnummer syntaktisch zu trennen und schreibt das Ergebnis in die Datenfelder. (ab Serverversion 2.6.42) StrasseUndHausnummer

Einsatz-Task Typen

Es ist möglich beim Alarmieren eines Einsatzes über das Script bestimmte Task-Typen zu ignorieren. So können beispielsweise bei bestimmten Scripten verhindert werden, dass Alarmschleifen ausgelöst werden. Mehrere Scripttypen können, getrennt mittels Komma, angegeben werden. Folgende Scripttypen sind möglich:

       EmittelChangeGroup
       EmittelSchleife
       Deprecated_TabletSichtung 
       WacheELA 
       WacheFax
       OrgaAbschlussMail 
       OrgaAbschlussFax
       OrgaFax
       OrgaDruck 
       ZugSchleife 
       EmittelTablet 
       EmittelFax
       EmittelZVEI 
       EmittelEmail
       EmittelSMS 
       EmittelFMSStatus 
       EmittelFMSText 
       EmittelStatus 
       EmittelSDS 
       EmittelPrint 
       SendMail 
       SendFax 
       PrintDocument 
       RunApplication 
       Call 
       SendSMS 
       SendGroupSMS 
       SendFMSText 
       Cityruf 
       RunLocalFile
       GroupAlarm 
       eBOS
       SDSText
       SDSStatus
       PrintUserPDF 
       IOAusgang 
       RunScript

Beispielbefehl, der das Senden von E-Mails und das Auslösen der Wachen ELA verhindert:

Einsatz.Alarm "WacheELA,SendMail"

BMA

Die Klasse BMA stellt Funktionen für die Auslösung von Brandmeldeanlagen im System zur Verfügung. Diese Klasse wurde in der REV+ Version 2.1.44 eingeführt. Die BMA, Linien und Melder Parameter sind die entsprechenden IDs der Datenbank. Der Parameter Meldung ist ebenfalls die ID der Meldung aus der Datenbank.

Funktionsname Beschreibung Parameter
BMA.AlarmBMA Löst eine BMA aus mit der angegebenen Meldungs ID (Siehe Datenbank) bma, meldung
BMA.AlarmLinie Löst eine BMA Linie aus mit der angegebenen Meldungs ID (Siehe Datenbank) linie, meldung
BMA.AlarmMelder Löst einen BMA Melder aus mit der angegebenen Meldungs ID (Siehe Datenbank) melder, meldung
BMA.ResetBMA Setzt eine BMA zurück (Siehe Datenbank) bma
BMA.ResetLinie Setzt eine BMA Linie zurück (Siehe Datenbank) linie
BMA.ResetMelder Setzt einen BMA Melder zurück (Siehe Datenbank) melder

Beispiele

Dieser Abschnitt enthält Beispielscripts, die für die Erstellung eigener Scripte als Vorlage oder Ideengeber dienen können.

Starten eines PCs bei Status 3

Dieses Script startet einen PC nach empfangen des Status 3 eines Fahrzeuges. (Hier z.B. ein ELW) "67501011" ist dabei die FMS Kennung.

Auszuwählendes Event: onFMSStatus

If datKennung = "67501011" And datStatus = "3" Then
  'PC im ELW Booten bei Status 3
  Data.WakeOnLAN "001E8CC65CB4", "192.168.1.3", "255.255.255.0" 
End If

FMS Text auswerten

Dieses Script wertet einen FMS Text aus und erzeugt daraus einen Einsatz. In diesem Beispiel wird angenommen, dass die Datenfelder mit einem Stern * getrennt sind. z.B. Goethestraße*5*107*Frankfurt

Auszuwählendes Event: onFMSText

if datKennung = "67501000" Then
  EinsatzID = Einsatz.Add()
  Felder = Split(datText, "*")
  Einsatz.SetData "strasse", Felder(0)
  Einsatz.SetData "hnr", Felder(3)
  Einsatz.SetData "eindikation", Felder(1)
  Einsatz.SetData "stadt", Felder(2)
  Einsatz.RunVorschlag 
  Einsatz.Alarm
End If

Alarmspeicher

Das folgende Script fragt den Alarmspeicher ab und gibt alle Alarmierungen der letzten 5 Minuten in der Debug Log aus.

Dim alarme
Set alarme = Data.Alarmspeicher(360)
Data.WriteDebug "Anzahl Alarmierungen: " & alarme.Count

For Each ele in alarme
  Data.WriteDebug "Schleife: " & ele
Next