Wie können wir helfen?
TetraControl2Connect
Allgemeines
TetraControl 2 Connect ist ein einfaches Kommandozeilen Tool zur Verbindung von TetraControl mit mehreren Connect Standorten oder Organisationen. Das Programm verbindet sich über eine Websocket-Verbindung mit dem Webserver von TetraControl und verarbeitet Positionsdaten, Statusdaten und SDS. Funkgespräche werden ignoriert.
Normalerweise werden Status- und Positionsdaten über den EinsatzMonitor in den entsprechenden Connect Standort hochgeladen. Dieses Tool stellt eine Alternative da, für Standorte an denen kein EinsatzMonitor installiert werden soll. Das Tool wird von FeuerSoftware kostenlos zur Verfügung gestellt und stellt die Verknüpfung zwischen der kostenpflichtigen Software „TetraControl“ und der FeuerSoftware Cloud „Connect“ da. Die Daten werden über die Öffentliche Connect API verarbeitet.
Funktionsweise
Positions- und Statusupdates
Bei einem neuen Status oder Position wird das Fahrzeug in den gespeicherten Fahrzeugen gesucht. Wenn wir den Status oder Position einem Fahrzeug zuordnen können, senden wir die Information mit dem endsprechenden Key an Connect.
Rückmeldungen und Verfügbarkeit
Bei einer neuen Rückmeldung zu einem Einsatz oder setzen der Verfügbarkeit am Pager suchen wir den entsprechenden Benutzer anhand der ISSI und senden die Rückmeldung bzw. Verfügbarkeit an Connect.
Sonderfunktion „Einsatzupdate bei Wechselschleifen“
Diese Funktion setzt voraus, dass über einen anderen Weg (z.B. E-Mail, WDX,..) bereits ein Einsatz in Connect angelegt wird. Wenn in dem vorhandenen Einsatz die Informationen fehlen, welche SNA (Subnetzadresse) alarmiert wurde, kann mit dieser Funktion diese hinzugefügt werden. TetraControl2Connect empfängt die Alarm SDS des Pagers und aktualisiert den letzten bereits angelegten Einsatz in Connect um die Informationen der alarmierten SNA (Subnetzadresse) im RIC Feld. Hierbei wird die alarmierte SNA z.B. &01 aus der AlarmSDS ausgelesen und im RIC Feld als „SNA(&01)“ angehangen. Es werden keine weiteren Einsatzinformationen aktualisiert. Durch den Einsatz der Dynamischen AAO in Connect kann nun nach der alarmierten SNA alarmiert werden auch wenn die Informationen im ursprünglichen Einsatz nicht vorhanden waren.
Inbetriebnahme
Voraussetzungen
- TetraControl muss auf durchgehend laufen (am besten auf localhost, Websocket-Verbindung ist nicht verschlüsselt!)
- In TetraControl muss der Webserver aktiviert sein
- In TetraControl muss ein entsprechender Benutzer mit ausreichenden Berechtigungen fü den Webserver angelegt werden.
Hinweise
- Wenn Fahrzeuge oder Benutzer neu angelegt oder geändert wurden, werden diese erst nach 4 Stunden neu eingelesen. Alternativ kann das Programm neu gestartet werden.
- Wir können nur Daten verarbeiten, wenn die ISSIs der Fahrzeuge und Benutzer in Connect korrekt hinterlegt sind.
Konfiguration
Die Konfiguration wird in der Datei appsettings.json
vorgenommen. Diese muss im gleichen Verzeichnis wie die Anwendung selbst liegen.
Abschnitt Serilog
Dies ist die Konfiguration der Protokollierung. Unter MinimumLevel
kann die Protokollierungebene gewählt werden. Gütige Werte sind: Debug
, Information
, Warning
, Error
und Critical
.
Im Unterabschnitt WriteTo
unter „File“ kann der Pfad für die Logdateien und die Anzahl der Logdateien, die aufbewahrt werden sollen, gewählt werden. Im Pfad müssen doppelte \
verwendet werden!
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File", "Serilog.Sinks.Debug" ],
"MinimumLevel": "Debug",
"WriteTo": [
{ "Name": "Console" },
{ "Name": "Debug" },
{
"Name": "File",
"Args": {
"path": "logs\\log.txt",
"rollingInterval": "Day",
"retainedFileCountLimit": 7
}
}
]
}
Abschnitt TetraControlOptions
Dies ist die Konfiguration der Verbindung zu TETRAcontrol.
TetraControlHost
-> Serveradresse des TETRAcontrol Webservers.TetraControlPort
-> Port zur Verbindung des TETRAcontrol Webservers. Standard: 80TetraControlUsername
-> Benutzername zur Authentifizierung am TETRAcontrol WebserverTetraControlPassword
-> Passwort zur Authentifizierung am TETRAcontrol Webserver
"TetraControlOptions": {
"TetraControlHost": "localhost",
"TetraControlPort": 80,
"TetraControlUsername": "Connect",
"TetraControlPassword": "Connect"
}
Abschnitt ProgramOptions
Unter SendVehicleStatus
kann eingestellt werden, ob Fahrzeugstatus übertragen werden (Standard: true)
Unter SendVehiclePositions
kann eingestellt werden, ob Fahrzeugpositionen übertragen werden (Standard: true)
Unter SendUserOperationStatus
kann eingestellt werden, ob Einsatzrückmeldungen von Benutzern übertragen werden (Standard: true)
Unter SendUserAvailability
kann eingestellt werden, ob Benutzer-Verfügbarkeiten (Taktische Verfügbarkeit) übertragen werden (Standard: true)
Unter SendAlarms
kann eingestellt werden, ob Callouts (Alarmierungen) ausgewertet und übertragen werden (Standard: true)
Unter UserAvailabilityLifetimeDays
kann die Anzahl der Tage eingestellt werden, wie lange eine Verfügbarkeit für einen Benutzer gelten soll, bis sie zurückgesetzt wird.
Unter WebSocketReconnectTimeoutMinutes
kann die Zeitspanne in Minuten eingestellt werden, nachdem die WebSocket-Verbindung zu TetraControl neu hergestellt werden soll, nachdem in dieser keine Nachrichten von TetraControl empfangen worden sind. (Standard: 5 Minuten)
Unter PollForActiveOperationBeforeFallbackMaxRetryCount
kann die Anzahl der maximalen Versuche eingestellt werden, um nach einem aktiven Einsatz in Connect zu schauen, bevor ein Fallback-Alarm gegeben wird. (Standard: 4)
Unter PollForActiveOperationBeforeFallbackDelaySeconds
kann die Zeitverzöerung in Sekunden zwischen den Versuchen nach einem aktiven Einsatz in Connect zu schauen eingestellt werden. (Standard: 10 Sekunden)
Unter HeartbeatEndpointUrl
kann die Url angegeben werden, zu der im eingestellen Intervall ein HTTP-GET Request gesendet wird. (z.B. f UptimeRobot, falls leer gelassen wird kein Heartbeat gesendet)
Unter HeartbeatInterval
kann das Intervall eingestellt werden, wie oft der Heartbeat-Aufruf erfolgen soll. (Format HH:mm:ss, wenn kein Wert wird kein Heartbeat gesendet)
Unter IgnoreStatus5
kann eingestellt werden, ob Status 5 (Sprechwunsch) ignoriert werden soll. (True/False, Standard: False)
Unter IgnoreStatus0
kann eingestellt werden, ob Status 0 (Priorisierter Sprechwunsch) ignoriert werden soll. (True/False, Standard: False)
Unter AddPropertyForAlarmTexts
kann eingestellt werden, ob bei einer Einsatz-Aktualisierung nach Alarmeingang auch ein Zusatzfeld mit dem Alarmtext vom Pager erstellt werden soll
Unter UseFullyQualifiedSubnetAddressForConnect
kann eingestellt werden, ob die Darstellung der alarmierten Subnetzadressen ausfürlich oder geküzt erfolgen soll. (Bei True: z.B. „T2C(71234567_&01 – SBI“), bei False (standard): „SNA(&01)“)
Unter IgnoreAlarmWithoutSubnetAddresses
kann eingestellt werden, ob Callouts (Alarme) ohne Subnetzadressen (also an die gesamte GSSI) ignoriert werden sollen (Standard: false)
Unter AcceptCalloutsForSirens
kann eingestellt werden, ob Callouts (Alarme) für Sirenen (beginnend mit Steuerzeichen z.B. $2002) verarbeitet werden sollen (Standard: false)
"ProgramOptions": {
"UserAvailabilityLifetimeDays": 7,
"WebSocketReconnectTimeoutMinutes": 5,
"PollForActiveOperationBeforeFallbackMaxRetryCount": 4,
"PollForActiveOperationBeforeFallbackDelay": "00:00:10",
"HeartbeatEndpointUrl": "",
"HeartbeatInterval": "00:10:00",
"IgnoreStatus5": false,
"IgnoreStatus0": false,
"AddPropertyForAlarmTexts": false,
"UseFullyQualifiedSubnetAddressForConnect": false,
"IgnoreAlarmWithoutSubnetAddresses": false
}
Abschnitt StatusOptions
Hier müssen die Statuswerte (Zahlenwert, nicht der Text) eingestellt werden, die vom Pager für die einzelnen Status gesendet werden. (Bitte Melderkonfiguration beachten!)
AvailableStatus
-> Status „Verfügbar“LimitedAvailableStatus
-> Status „Bedingt verfügbar“NotAvailableStatus
-> Status „nicht verfügbar“ComingStatus
-> Einsatzrückmeldung „komme“NotComingStatus
-> Einsatzrückmeldung „komme nicht“ComingLaterStatus
-> Einsatzrückmeldung „komme später“
Wenn ein Status nicht verwendet wird, kann dort -1 eingetragen werden. Wichtig ist, dass dieser Status nicht an anderen Stellen in der Melderkonfiguration verwendet wird, um Missverständnisse zu vermeiden.
Ab Version 2.1.9 ist es möglich, hier mehrere Statuswerte in folgendem Format einzutragen „123;456;789“. (Nützlich, um z.B. verschiedene Pager-Hersteller gemischt auszuwerten (Motorola/Airbus).
"StatusOptions": {
"AvailableStatus": "15",
"LimitedAvailableStatus": "-1",
"NotAvailableStatus": "0",
"ComingStatus": "32768;57345",
"NotComingStatus": "32769;57344",
"ComingLaterStatus": "-1"
}
Abschnitt SeverityOptions
Hier wird der Umgang mit den Schweregraden von Alarmierungen gesteuert.
UseServerityTranslationAsKeyword
-> Schweregradübersetzung als Stichwort für Fallback-Einsäzte verwenden (anstelle von „ALARM“)SeverityTranslations
-> Da die Schweregrad-Texte von der Melderprogrammierung abhängig sind und nur die Zahl von TetraControl übermittelt wird, können hier die Übersetzungen der Schweregrade eingetragen werden. (Standard: Hessen) Falls keine Übersetzung gefunden wird, wird „ALARM“ genommen
"SeverityOptions": {
"UseServerityTranslationAsKeyword": true,
"SeverityTranslations": {
"1": "Information",
"2": "Einsatzabbruch",
"3": "Bereitschaft",
"4": "Krankentransport",
"5": "Rettungsdienst R-O",
"7": "Hilfeleistung normal",
"8": "Feuer normal",
"9": "Rettungsdienst R-1",
"10": "Rettungsdienst R-2",
"11": "Hilfeleistung dringend",
"12": "Feuer dringend",
"13": "Gro゚alarm",
"15": "KatS-Alarm"
}
Abschnitt ConnectOptions
Hier müssen die API-Keys aus Connect eingetragen werden. Unter Name
kann eine frei wählbare Bezeichnung hinterlegt werden, um die Schlüssel besser zuordnen zu können.
Die Authentifizierungschlüssel können im Connect Portal für jeden Standort unter „Schnittstellen“ -> „Öffentliche Connect-Schnittstelle“ angezeigt und kopiert werden.
Eintragen mehrerer Schlüssel erfolgt nach der JSON-Syntax. (Siehe https://developer.mozilla.org/de/docs/Learn/JavaScript/Objects/JSON#arrays_als_json)
Hinweis: Die SubnetAddresses und GSSI sind aktuell nur für bestimmte Feuerwehren relevant und müssen nicht ausgefüllt werden. (Siehe Sonderfunktion „Einsatzupdate bei Wechselschleifen“)
Unter AlarmDirectly
kann pro Schleife eingestellt werden, ob ein Alarm direkt nach Pagerauswärtung nach Connect hochgeladen werden soll.
Dann wird für diese Schleife nicht versucht, einen vorhandenen Einsatz zu aktualisieren.
"ConnectOptions": {
"Sites": [
{
"Name": "Organisation1",
"Key": "<<KEY1>>",
"SubnetAddresses": [
{
"Name": "Schleife1",
"GSSI": "12345678",
"SNA": "&01",
"AlarmDirectly": false
},
{
"Name": "Schleife2",
"GSSI": "12345678",
"SNA": "&01",
"AlarmDirectly": false
}
]
},
{
"Name": "Organisation2",
"Key": "<<KEY2>>",
"SubnetAddresses": [
{
"Name": "Schleife1",
"GSSI": "12345678",
"SNA": "&01",
"AlarmDirectly": false
},
{
"Name": "Schleife2",
"GSSI": "12345678",
"SNA": "&01",
"AlarmDirectly": false
}
]
}
]
}
Fragen und Probleme
Hier finden Sie den entsprechenden Artikel aus dem Feuersoftware Forum.