In den TTS-Optionen der Monitor-App können Sie frei nach Ihren Wünschen die Sprachausgabe gestalten. Dazu kann unter Einstellungen > Sprachausgabe das Template angepasst und getestet werden.

Beispiele

Standard

Folgendes Ausgabeschema ist standardmäßig hinterlegt. Es zeigt gut, wie bestimmte Sätze abhängig von Bedingungen vorgelesen werden können.

In dem Fall wird "Es rücken aus: HLF 10, MTF, TSF W" nur vorgelesen, wenn tatsächlich Fahrzeuge alarmiert sind. 

{% play %} Achtung! {{ alarm.title }} {{ alarm.text }} {{ alarm.address }} {% pause %}
{% if vehicles.size > 0 %} Es rücken aus: {{ vehicles | map:"shortname" | join:", " }} {% endif %}

Texte ersetzen oder abschneiden

Hier wird im Stichwort F01-F03 durch Feuer 01-03 ersetzt. Außerdem wird der Meldungstext nach 30 Wörtern abgeschnitten, um Durchsagen von mehreren Minuten zu verhindern.

Stichwort: {{ alarm.title | replace: "F01", "Feuer 01" | replace: "F02", "Feuer 02" | replace: "F03", "Feuer 03"  }} {% pause %}
Meldung: {{ alarm.text | truncatewords: 30, "..." }}

Gong abhängig vom Stichwort abspielen

{% if alarm.title contains "F0" %}
  {% play file:1 %}
{% else %}
  {% play %}
{% endif %}

Weitere Einheiten vorlesen

{% assign otherClustersCount = clusters | filterOtherCluster | size  %}
{% assign otherVehiclesCount = vehicles | filterOtherCluster | size  %}
{% assign ownVehiclesCount = vehicles | filterOwnCluster | filterFmsStatus:1,2 | size  %} 
 
{% if ownVehiclesCount > 0 %}
  Es rücken aus {{ vehicles | filterOwnCluster | filterFmsStatus:1,2 | map:"shortname" | join:", " }}
{% endif %}
 
{% if otherClustersCount > 0 %}
  Weitere alarmierte Einheiten {{ clusters | filterOtherCluster | map:"name" | join:", " }}
  {% if otherVehiclesCount > 0 %}
    mit folgenden Fahrzeugen {% pause %} {{ vehicles | filterOtherCluster | map:"name" | join:", " }}
  {% endif %}
{% endif %}
{% if vehicles.size > 0 %} Es rücken aus: {{ vehicles | map:"shortname" | join:", " }} {% endif %}

Template / Vorlage anpassen

Für die Sprachausgabe wird die Syntax von LiquidJS verwendet. So kann von einfachen Platzhaltern bis hin zu komplexen Bedingungen alles implementiert werden.

Platzhalter / Variablen

Variablen werden über zwei geschweifte Klammern eingefügt, auf Eigenschaften von Objekten wird über einen Punkt (.) zugegriffen.

Statischer Text: {{ variable.eigenschaft }} und hier geht es weiter mit Text

Eigenschaften der Alarmierung

Der Alarm-Datensatz steht vollständig als Objekt unter alarm zur Verfügung, wie er auch in der API verfügbar ist: https://api.divera247.com/?urls.primaryName=api%2Fv2%2Fpull

Hier ein paar Beispiele:

{{ alarm.title }}
{{ alarm.address }}
{{ alarm.text }}

Eigenschaften der alarmierten Fahrzeuge

Die adressierten Fahrzeuge stehen als Liste/Array unter vehicles zur Verfügung. Auf Arrays kann per Index (beginnend von 0) explizit zugegriffen werden, um bspw. nur das erste Element vorzulesen:


{{ vehicles[0].shortname }}

Jedes Fahrzeug besteht dabei aus folgendem Objekt:

{ 
  id: 42,
  clusterId: 666,
  name: "6-HLF-10-1",
  shortname: "HLF 10",
  fmsStatus: 2
}

Um für alle Fahrzeuge eine bestimmte Eigenschaften vorzulesen, empfiehlt es sich den Filter map in Kombination mit join zu verwenden, z.B. wie folgt:

{{ vehicles | map:"shortname" | join:", " }}

Beispielausgabe: HLF 10, MTF, TSF W

EIgenschaften der alarmierten Gruppen

Analog zu Fahrzeugen sin die Gruppen über groups als Liste/Array abrufbar

{ 
  id: 42,
  cluster_id: 666,
  name: "Drohnengruppe",
}
{{ groups | map:"name" | join:", " }}

Beispielausgabe: Drohnengruppe Musterstadt, Mannschaft

Eigenschaften der alarmierten Einheiten

Über clusters sind die mitalarmierten Einheiten abrufbar.

Hinweis: nur für die PRO-Version relevant!

{ 
  id: 42,
  name: "Feuerwehr Musterstadt",
  shortname: "FW M"
}
{{ clusters | map:"name" | join:", " }}

Beispielausgabe: Feuerwehr Musterstadt, Löschgruppe Musterstadt 1

Funktionen (Tags)

Neben Platzhaltern gibt es auch die Möglichkeiten bestimmte Funktionen auszuführen, sie werden mit wie folgt aufgerufen:

{% funktion parameter1:wert1, parameter2:wert2 %}

Gong/Tondatei abspielen

Über play kann ein Gong bzw. eine zuvor ausgewähltes Soundfile abgespielt werden.

{% play %}

Optional kann dabei über den file Parameter wird eine eigene Datei referenziert, dabei ist 0 der Standardsound und beginnend von 1 die selbst hinzugefügten Sounddateien. Mit folgendem Beispiel lässt sich die Datei Nummer "2" abspielen

{% play file:2 %}

Pause

Über pause kann eine Pause ausgeführt werden. Dabei wird über seconds und minutes die Dauer in Sekunden bzw. Minuten angegeben. Beide Parameter sind optional.

{% pause seconds:1, minutes:0 %}

Filter

Mit Filtern können aus Objekten oder Listen/Arrays bestimmte Daten  Die standardmäßig verfügbaren Filter sind in der Dokumentation aufgelistet: https://liquidjs.com/filters/overview.html 

where_exp

Über where_exp kann ein Array, bspw. die alarmierten Fahrzeuge, nach beliebigem Kriterium gefiltert werden. So könnten nur Fahrzeuge im Status 2 vorgelesen werden.

{{ vehicles | where_exp: "vehicle", "vehicle.fmsStatus == '1' or vehicle.fmsStatus == '2'" | map:"shortname" | join:", " }}

filterFmsStatus

Um das filtern nach FMS-Status zu vereinfachen, gibt es zusätzlich den filter filterFmsStatus.


{{ vehicles | filterFmsStatus:1,2 | map:"shortname" | join:", " }}


filterOwnCluster/filterOtherCluster

Über

Es rücken aus: {{ vehicles | filterOwnCluster | map:"shortname" | join:", " }}
Weitere Fahrzeuge: {{ vehicles | filterOtherCluster | map:"shortname" | join:", " }}