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:

Liest das Stichwort der Alarmierung vor.
{{ alarm.title }}
Liest die Adresse der Alarmierung vor.
{{ alarm.address }}
Liest die Meldung der Alarmierung vor.
{{ 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:


Liest die Fahrzeuge der Alarmierung vor.
{{ vehicles[0].shortname }}

Jedes Fahrzeug besteht dabei aus folgendem Objekt:

Eigenschaften von Fahrzeugen
{ 
  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:

Kurznamen aller Fahrzeuge vorlesen
{{ 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

Eigenschaften von Gruppen
{ 
  id: 42,
  cluster_id: 666,
  name: "Drohnengruppe",
}
Kurznamen aller Gruppen vorlesen
{{ 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!

Eigenschaften von Einheiten
{ 
  id: 42,
  name: "Feuerwehr Musterstadt",
  shortname: "FW M"
}
Kurznamen aller Einheiten vorlesen
{{ 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.

Es wird der Standard-Gong ausgegeben.
{% 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

Es wird ein definierter Gong ausgegeben.
{% 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.

Die TTS - Ausgabe wird unterbrochen.
{% 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.

Nur Fahrzeuge im Status 2 vorlesen
{{ 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.


Nur Fahrzeuge im Status 2 vorlesen
{{ vehicles | filterFmsStatus:1,2 | map:"shortname" | join:", " }}


filterOwnCluster/filterOtherCluster

Über

Nur Fahrzeuge der eigenen Einheit vorlesen
Es rücken aus: {{ vehicles | filterOwnCluster | map:"shortname" | join:", " }}
Weitere Fahrzeuge: {{ vehicles | filterOtherCluster | map:"shortname" | join:", " }}



  • Keine Stichwörter