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:", " }}