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.
Sirenenüberwachung (BETA)
TetraControl2Connect kann Sirenensteuersignale auswerten welche über ein angeschlossenes Datenfunkgerät via SDS oder Status empfangen werden. Die Steuersignale werden ausgewertet und falls eine Aktion erforderlich ist wird eine Mängelmeldung in Connect erstellt.
Aktuell unterstützt werden Steuergeräte der Firma Sirene24 und Sonnenburg.
Sonnenburg
Steuercode | Kurzbeschreibung | Beschreibung | Mängelmeldung |
---|---|---|---|
E000 | Ausgelöst | Die Sirene hat erfolgreich ausgelöst | Nein |
E001 | Nicht ausgelöst | Die Sirene hat auf eine Alarmierung nicht erfolgreich verarbeitet und nicht ausgelöst | Ja |
E002 | Alarmierung: Besetzt und gespeichert | Die Sirene war zum Zeitpunkt der Alarmierung mit einem anderen Auftrag belegt. Die Alarmierung wurde gespeichert | Nein |
E003 | Alarmierung: Besetzt und abgelehnt | Die Sirene war zum Zeitpunkt der Alarmierung mit einem anderen Auftrag belegt. Die Alarmierung wurde nicht gespeichert (nicht erlaubt oder Speicher voll) | Ja |
E004 | Technischer Status OK | Die Sirene funktioniert ordnungsgemäß | Nein |
E005 | Technischer Status Fehler, Sirene nicht für Alarmierung verfügbar | Aufgrund eines technischen Fehlers steht die Sirene nicht für Alarmierungen zur Verfügung | Ja |
E006 | Sirene temporär abgeschaltet | Die Sirene wurde temporär abgeschaltet und steht nicht für Alarmierungen zur Verfügung | Ja |
E007 | Sabotagealarm | Der Sabotagealarm wurde ausgelöst, da der Türkontakt geöffnet wurde | Ja |
E008 | Fehler Netzstromversorgung | Es besteht ein Fehler bei der Netzstromversorgung | Ja |
E009 | Fehler Batteriestromversorgung | Es besteht ein Fehler bei der Batteriestromversorgung | Ja |
E00A | Übertemperatur | Die Sirene hat eine erhöhte Temperatur festgestellt. (Überhitzung, Brand) | Ja |
E00B | Klarmeldung Sabotagealarm | Der Sabotagealarm wurde zurückgesetzt (Türkontakt geschlossen) | Nein |
E00C | Klarmeldung Netzstromversorgung | Der Fehler mit der Netzstromversorgung tritt nicht mehr auf | Nein |
E00D | Klarmeldung Batteriestromversorgung | Der Fehler mit der Batteriestromversorgung tritt nicht mehr auf | Nein |
E00E | Klarmeldung Übertemperatur | Der Fehler mit der Übertemperatur tritt nicht mehr auf | Nein |
Siren24
SDS | Kurzbeschreibung | Mängelmeldung |
---|---|---|
Fehler bei der Alarmauslösung | Nicht ausgelöst, Sirene hat auf eine Alarmierung nicht ausgelöst | Ja |
STATUS=1 | Technischer Status Fehler, Sirene nicht für Alarmierung verfügbar | Ja |
SPRT Sabotage: geöffnet | Sabotagealarm, Türkontakt geöffnet | Ja |
SPRT Fehler Netz, Batteriebetrieb | Fehler Netzstromversorgung | Ja |
SPRT Batteriespannung niedrig | Fehler Batteriestromversorgung | Ja |
PRT Temperatur zu hoch! | Übertemperatur (Überhitzung, Brand) | Ja |
SPRT Sammelstörung | Sammelstörung, nicht näher bezeichnet | Ja |
Download
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 SirenCalloutOptions
Hier wird der Umgang mit den Steuerzeichen von Sirenenalarmierungen gesteuert. (optional)
UseSirenCodeTranslationAsKeyword -> Steuercode-Übersetzung als Stichwort für Fallback-Einsätze verwenden (anstelle von „ALARM“ bzw. der Schweregrad-Übersetzung) (Standard: False)
SirenCodeTranslations -> Da die Steuerzeichen-Texte vom Bundesland abhängig sind, können hier die Übersetzungen der Steuerzeichen eingetragen werden. (Standard: Hessen) Falls keine Übersetzung gefunden wird, wird „ALARM“ bzw. wenn konfiguriert die Schweregrad-Übersetzung genommen
"SirenCalloutOptions": {
"UseSirenCodeTranslationAsKeyword": false,
"SirenCodeTranslations": {
"$2000": "Warnung der Bevölkerung",
"$2001": "Entwarnung",
"$2002": "Feueralarm",
"$2003": "Probealarm"
}
Abschnitt SirenStatusOptions
Hier wird der Umgang mit den Statusmeldungen von Sirenen geregelt. (Sirenenüberwachung)
FailureTranslations -> Übersetzung aller Fehlercodes, die von der Sirene kommen können. Dabei wird sowohl auf den Meldungstext der SDS geschaut (Sirene24) als auch auf den hexadezimalen Statuswert
Bei Sirene24 bitte in der Konfiguration nur die Statuscodes eintragen welche eine Mängelmeldung erzeugen sollen.
"SirenStatusOptions": {
"FailureTranslations": {
"E001": "Nicht ausgelöst, Sirene hat auf eine Alarmierung nicht ausgelöst",
"E003": "Alarmierung: Besetzt und abgelehnt, Sirene war zum Zeitpunkt der Alarmierung mit einem anderen Auftrag belegt.",
"E005": "Technischer Status Fehler, Sirene nicht für Alarmierung verfügbar",
"E006": "Sirene temporär abgeschaltet, Sirene steht nicht für Alarmierungen zur Verfügung",
"E007": "Sabotagealarm, Türkontakt geöffnet",
"E008": "Fehler Netzstromversorgung",
"E009": "Fehler Batteriestromversorgung",
"E00A": "Übertemperatur (Überhitzung, Brand)",
"Fehler bei der Alarmauslösung": "Nicht ausgelöst, Sirene hat auf eine Alarmierung nicht ausgelöst",
"STATUS=1": "Technischer Status Fehler, Sirene nicht für Alarmierung verfügbar",
"SPRT Sabotage: geöffnet": "Sabotagealarm, Türkontakt geöffnet",
"SPRT Fehler Netz, Batteriebetrieb": "Fehler Netzstromversorgung",
"SPRT Batteriespannung niedrig": "Fehler Batteriestromversorgung",
"SPRT Temperatur zu hoch!": "Übertemperatur (Überhitzung, Brand)",
"SPRT Sammelstörung": "Sammelstörung, nicht näher bezeichnet"
}
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": "Standort1",
"Key": "<<STANDORTKEY1>>",
"Sirens": [
{
"Issi": "1234567",
"Name": "Sirene Musterstadt 1"
},
{
"Issi": "1234568",
"Name": "Sirene Musterstadt 2"
}
],
"SubnetAddresses": [
{
"Name": "Schleife1",
"GSSI": "12345678",
"SNA": "&01",
"AlarmDirectly": false
},
{
"Name": "Schleife2",
"GSSI": "12345678",
"SNA": "&01",
"AlarmDirectly": false
}
]
},
{
"Name": "Standort2",
"Key": "<<STANDORTKEY2>>",
"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.