iobroker.waip-web 0.7.26 → 0.7.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +80 -12
- package/README.md +100 -14
- package/admin/i18n/de.json +13 -2
- package/admin/i18n/en.json +13 -2
- package/admin/i18n/es.json +15 -4
- package/admin/i18n/fr.json +15 -4
- package/admin/i18n/it.json +15 -4
- package/admin/i18n/nl.json +15 -4
- package/admin/i18n/pl.json +15 -4
- package/admin/i18n/pt.json +15 -4
- package/admin/i18n/ru.json +15 -4
- package/admin/i18n/uk.json +15 -4
- package/admin/i18n/zh-cn.json +15 -4
- package/admin/jsonConfig.json +71 -2
- package/io-package.json +33 -12
- package/main.js +355 -24
- package/package.json +2 -1
package/README.de.md
CHANGED
|
@@ -19,8 +19,9 @@ ohne dass ein Browser-Tab dauerhaft offen sein muss.
|
|
|
19
19
|
- [Konfiguration](#konfiguration)
|
|
20
20
|
- [Verbindung](#verbindung)
|
|
21
21
|
- [Warum ein Session-Cookie nötig ist](#warum-ein-session-cookie-nötig-ist)
|
|
22
|
-
- [Rettungsdienst
|
|
22
|
+
- [Rettungsdienst](#rettungsdienst)
|
|
23
23
|
- [Stichwort-Stammdaten](#stichwort-stammdaten)
|
|
24
|
+
- [Einsatzkarte](#einsatzkarte)
|
|
24
25
|
- [States (unter `waip-web.0.*`)](#states-unter-waip-web0)
|
|
25
26
|
- [info](#info) · [status](#status) · [einsatz](#einsatz) ·
|
|
26
27
|
[einsatz.json](#einsatzjson) · [einsatz.tts](#einsatztts) ·
|
|
@@ -173,14 +174,22 @@ Rettungsdienst-Wache:
|
|
|
173
174
|
(`einsatz.beschreibung`), lokal ermittelt aus einer selbst pflegbaren
|
|
174
175
|
Stichwort-Tabelle sowie einem optionalen Dekoder für das von
|
|
175
176
|
mehreren Leitstellen verwendete Rettungsdienst-Stichwortschema
|
|
176
|
-
(`R<RTW>N<NEF>`) - siehe
|
|
177
|
-
|
|
177
|
+
(`R<RTW>N<NEF>`) - siehe [Rettungsdienst](#rettungsdienst)
|
|
178
|
+
- Rettungsdienst-Einsätze können komplett ignoriert werden (keine
|
|
179
|
+
States, keine History, kein TTS) - sinnvoll, wenn WAIP sie in der
|
|
180
|
+
eigenen Region ohnehin nur unzuverlässig signalisiert, siehe
|
|
181
|
+
[Rettungsdienst](#rettungsdienst)
|
|
182
|
+
- Optionales Einsatzkarten-Bild: ein auf die Einsatz-Koordinaten
|
|
183
|
+
zentriertes und mit einem Punkt markiertes PNG, lokal aus
|
|
184
|
+
OpenStreetMap-Kacheln zusammengesetzt, dessen Dateipfad als State
|
|
185
|
+
bereitsteht - siehe [Einsatzkarte](#einsatzkarte)
|
|
178
186
|
|
|
179
187
|
## Konfiguration
|
|
180
188
|
|
|
181
189
|
In der Admin-Oberfläche der Adapterinstanz sind die Einstellungen auf
|
|
182
|
-
|
|
183
|
-
**Stichwort-Stammdaten** – alle
|
|
190
|
+
vier Tabs verteilt: **Verbindung**, **Rettungsdienst**,
|
|
191
|
+
**Stichwort-Stammdaten** und **Einsatzkarte** – alle vier unten näher
|
|
192
|
+
beschrieben.
|
|
184
193
|
|
|
185
194
|
### Verbindung
|
|
186
195
|
|
|
@@ -214,7 +223,21 @@ Laufzeit, mindestens 55 Sekunden, höchstens die konfigurierte Obergrenze) –
|
|
|
214
223
|
genau die gleiche Klammerung, die auch `/js/session_keepalive.js` der
|
|
215
224
|
Website selbst verwendet.
|
|
216
225
|
|
|
217
|
-
### Rettungsdienst
|
|
226
|
+
### Rettungsdienst
|
|
227
|
+
|
|
228
|
+
**Rettungsdienst-Einsätze verarbeiten** (Admin-Checkbox, standardmäßig
|
|
229
|
+
**an**): Einsätze, deren `einsatzart` auf einen Rettungsdienst-Einsatz
|
|
230
|
+
hindeutet (enthält "Rettung" oder "Krankentransport", ohne
|
|
231
|
+
Berücksichtigung von Groß-/Kleinschreibung - siehe die
|
|
232
|
+
`einsatzart`-Beispiele unter [einsatz](#einsatz)), werden standardmäßig
|
|
233
|
+
ganz normal verarbeitet, wie in jeder früheren Adapter-Version. Wird die
|
|
234
|
+
Checkbox deaktiviert, ignoriert der Adapter solche Einsätze stattdessen
|
|
235
|
+
**komplett**: keine `einsatz.*`-States werden aktualisiert, kein
|
|
236
|
+
History-Eintrag geschrieben, keine TTS-Ansage ausgelöst - als wäre der
|
|
237
|
+
Einsatz nie eingegangen. Hintergrund: Rettungsdienst-Einsätze werden
|
|
238
|
+
über WAIP Berichten zufolge nur in manchen Regionen/Leitstellen
|
|
239
|
+
überhaupt alarmiert/signalisiert - wo das nicht der Fall ist oder nicht
|
|
240
|
+
gewünscht wird, schaltet diese Checkbox das Rauschen ab.
|
|
218
241
|
|
|
219
242
|
`einsatz.stichwort` wird unverändert vom Server als bloßer Code
|
|
220
243
|
übernommen (z.B. `B2`, `H:VU mit P`) – WAIP-Web selbst erklärt nicht,
|
|
@@ -252,13 +275,18 @@ diese Bezeichnungen nicht automatisch übersetzt werden:
|
|
|
252
275
|
### Stichwort-Stammdaten
|
|
253
276
|
|
|
254
277
|
Wird nur geprüft, falls der Dekoder auf dem Tab
|
|
255
|
-
[Rettungsdienst
|
|
278
|
+
[Rettungsdienst](#rettungsdienst) nicht gegriffen
|
|
256
279
|
hat: eine Liste von `{Stichwort-Muster, Beschreibung, Abgleich-Typ}`-Zeilen
|
|
257
280
|
– Abgleich-Typ ist `beginnt mit` oder `enthält`, der Vergleich ist
|
|
258
|
-
case-insensitiv
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
281
|
+
case-insensitiv und behandelt Leerzeichen und Bindestriche als
|
|
282
|
+
gleichwertig (jede Folge aus beidem wird vor dem Vergleich zu einem
|
|
283
|
+
Leerzeichen zusammengefasst) – z.B. matchen `H:VU mit P`,
|
|
284
|
+
`H:VU-mit-P` und `H:VU - mit - P` dieselbe Zeile, es muss also keine
|
|
285
|
+
eigene Zeile pro Schreibvariante gepflegt werden. Passen mehrere
|
|
286
|
+
Zeilen, gewinnt automatisch das **spezifischste (längste) Muster** –
|
|
287
|
+
die Zeilenreihenfolge hat keinen Einfluss auf den Abgleich, die
|
|
288
|
+
Tabelle kann also gefahrlos nach jeder Spalte sortiert werden (Klick
|
|
289
|
+
auf die Spaltenüberschrift). Die Tabelle ist mit
|
|
262
290
|
einer beispielhaften Feuerwehr-/Rettungsdienst-Stichwortliste
|
|
263
291
|
(`B:...`/`H:...`) als Startpunkt vorbefüllt – das ist **nicht** für
|
|
264
292
|
irgendeine bestimmte Leitstelle bestätigt, bei Bedarf anpassen oder
|
|
@@ -273,6 +301,45 @@ etwas, das dieser Adapter beeinflussen kann).
|
|
|
273
301
|
Passt weder diese Tabelle noch der Dekoder oben, bleibt
|
|
274
302
|
`einsatz.beschreibung` einfach `null` – kein Fehler.
|
|
275
303
|
|
|
304
|
+
### Einsatzkarte
|
|
305
|
+
|
|
306
|
+
**Kartenbild für jeden Einsatz erzeugen** (Admin-Checkbox, standardmäßig
|
|
307
|
+
aus): ist die Checkbox aktiv und liegen für einen Einsatz gültige
|
|
308
|
+
Koordinaten vor, lädt der Adapter die dafür nötigen Kacheln vom
|
|
309
|
+
öffentlichen Server `tile.openstreetmap.org` herunter, setzt sie zu
|
|
310
|
+
einem einzigen PNG zusammen, zentriert auf den Einsatzort, zeichnet eine
|
|
311
|
+
Markierung (roter Punkt, weißer Rand) exakt in die Mitte und stempelt
|
|
312
|
+
die von der ODbL-Lizenz vorgeschriebene OpenStreetMap-Attribution unten
|
|
313
|
+
links auf. Der Dateipfad wird in `einsatz.kartenbildPfad` geschrieben
|
|
314
|
+
(siehe [einsatz](#einsatz)) – typische Verwendung ist der Versand dieser
|
|
315
|
+
Datei aus einem Blockly-/JavaScript-Skript heraus, z.B. als
|
|
316
|
+
Pushover-Benachrichtigungsanhang. Es werden nur die 10 zuletzt erzeugten
|
|
317
|
+
Bilder aufgehoben, ältere werden automatisch gelöscht, sobald ein neues
|
|
318
|
+
geschrieben wird. Die Bilderzeugung läuft im Hintergrund und verzögert
|
|
319
|
+
die Alarmverarbeitung nie – ein langsamer oder fehlschlagender
|
|
320
|
+
Kachel-Download führt höchstens zu einem fehlenden/verspäteten Bild,
|
|
321
|
+
sonst bleibt nichts betroffen.
|
|
322
|
+
|
|
323
|
+
| Feld | Beschreibung | Default |
|
|
324
|
+
| --- | --- | --- |
|
|
325
|
+
| Bildbreite (px) | Breite des erzeugten PNGs | `600` |
|
|
326
|
+
| Bildhöhe (px) | Höhe des erzeugten PNGs | `400` |
|
|
327
|
+
| Zoomstufe | OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene) | `16` |
|
|
328
|
+
|
|
329
|
+
Die Bilder liegen im eigenen Datenverzeichnis dieser Adapterinstanz
|
|
330
|
+
(`iobroker-data/<instance>/maps/`), nicht als ioBroker-Dateiobjekte –
|
|
331
|
+
`einsatz.kartenbildPfad` ist deshalb ein echter, absoluter
|
|
332
|
+
Dateisystempfad, den ein auf demselben Host laufendes Skript direkt
|
|
333
|
+
lesen kann.
|
|
334
|
+
|
|
335
|
+
> **Hinweis:** Genutzt wird der offizielle, kostenlose Server
|
|
336
|
+
> `tile.openstreetmap.org`, der für gelegentliche/geringe Nutzung
|
|
337
|
+
> gedacht ist (siehe die
|
|
338
|
+
> [OSM Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/)).
|
|
339
|
+
> Ein Bild pro Einsatz bleibt deutlich darunter – die Zoomstufe nicht
|
|
340
|
+
> so weit reduzieren, dass riesige Gebiete abgedeckt werden, und das
|
|
341
|
+
> Ganze nicht zu einem Massen-Kachel-Abruf ausbauen.
|
|
342
|
+
|
|
276
343
|
## States (unter `waip-web.0.*`)
|
|
277
344
|
|
|
278
345
|
Rückmeldungen und Routen sind pro Einsatz Listen (1:n). Sie liegen als
|
|
@@ -334,13 +401,14 @@ stehen. Der zuletzt abgeschlossene Einsatz bleibt trotzdem über
|
|
|
334
401
|
| `uuid` | string | Eindeutige Einsatz-UUID (dient auch der Zuordnung von Rückmeldungen) |
|
|
335
402
|
| `einsatzart` | string | z. B. „Brandeinsatz", „Hilfeleistungseinsatz", „Rettungseinsatz", „Krankentransport" |
|
|
336
403
|
| `stichwort` | string | Alarmstichwort |
|
|
337
|
-
| `beschreibung` | string | Beschreibung zu `stichwort`, lokal ermittelt (wird nicht vom Server gesendet) - siehe [Rettungsdienst
|
|
404
|
+
| `beschreibung` | string | Beschreibung zu `stichwort`, lokal ermittelt (wird nicht vom Server gesendet) - siehe [Rettungsdienst](#rettungsdienst)/[Stichwort-Stammdaten](#stichwort-stammdaten) unten. `null` falls nichts passte |
|
|
338
405
|
| `ort` | string | Ort |
|
|
339
406
|
| `ortsteil` | string | Ortsteil (falls abweichend vom Ort) |
|
|
340
407
|
| `zeitstempel` | string (date) | Alarmzeit |
|
|
341
408
|
| `ablaufzeit` | string (date) | Ende der Standby-Anzeigedauer, Basis für `restzeit` |
|
|
342
409
|
| `sondersignal` | number | `1` = Sondersignal, sonst kein Sondersignal |
|
|
343
410
|
| `latitude` / `longitude` | number | Position des Einsatzortes (normalisiert aus wgs84-Feldern oder GeoJSON-Mittelpunkt) |
|
|
411
|
+
| `kartenbildPfad` | string | Pfad zum zuletzt erzeugten Einsatzkarten-Bild (PNG) - siehe [Einsatzkarte](#einsatzkarte). Anders als die Felder oben wird dieser State bei `io.standby` **nicht** geleert (gleiches Muster wie `einsatz.tts.last`), bleibt also auch nach Einsatzende noch verfügbar |
|
|
344
412
|
| `routenGesamt` | number | Anzahl Routen im aktuellen Einsatz |
|
|
345
413
|
| `rueckmeldungGesamt` | number | Rückmeldungen gesamt im aktuellen Einsatz |
|
|
346
414
|
| `rueckmeldungAnzahl.ek` | number | Anzahl Rückmeldungen als Einsatzkraft |
|
package/README.md
CHANGED
|
@@ -28,8 +28,9 @@ open.
|
|
|
28
28
|
- [Configuration](#configuration)
|
|
29
29
|
- [Connection](#connection)
|
|
30
30
|
- [Why a session cookie is needed](#why-a-session-cookie-is-needed)
|
|
31
|
-
- [Rescue
|
|
31
|
+
- [Rescue service](#rescue-service)
|
|
32
32
|
- [Keyword descriptions](#keyword-descriptions)
|
|
33
|
+
- [Incident map image](#incident-map-image)
|
|
33
34
|
- [States (under `waip-web.0.*`)](#states-under-waip-web0)
|
|
34
35
|
- [info](#info) · [status](#status) · [einsatz](#einsatz) ·
|
|
35
36
|
[einsatz.json](#einsatzjson) · [einsatz.tts](#einsatztts) ·
|
|
@@ -176,13 +177,20 @@ adapter provides – typical use in a fire station/EMS environment:
|
|
|
176
177
|
(`einsatz.beschreibung`), resolved locally from a user-maintained
|
|
177
178
|
keyword table plus an optional decoder for the `R<RTW>N<NEF>`
|
|
178
179
|
rescue-service keyword scheme used by several dispatch
|
|
179
|
-
centers - see [Rescue
|
|
180
|
+
centers - see [Rescue service](#rescue-service)
|
|
181
|
+
- Rescue-service incidents can be ignored entirely (no states, no
|
|
182
|
+
history, no TTS) - useful where WAIP only signals them unreliably in
|
|
183
|
+
the first place, see [Rescue service](#rescue-service)
|
|
184
|
+
- Optional incident map image: a PNG centered on the incident's
|
|
185
|
+
coordinates and marked with a dot, composed locally from OpenStreetMap
|
|
186
|
+
tiles, with its file path exposed as a state - see
|
|
187
|
+
[Incident map image](#incident-map-image)
|
|
180
188
|
|
|
181
189
|
## Configuration
|
|
182
190
|
|
|
183
191
|
In the admin UI of the adapter instance, settings are grouped across
|
|
184
|
-
|
|
185
|
-
|
|
192
|
+
four tabs: **Connection**, **Rescue service**, **Keyword descriptions**
|
|
193
|
+
and **Incident map image** – see below for all four.
|
|
186
194
|
|
|
187
195
|
### Connection
|
|
188
196
|
|
|
@@ -216,7 +224,20 @@ observed lifetime, at least 55 seconds, at most a fixed 5-minute ceiling)
|
|
|
216
224
|
– the exact same clamping that `/js/session_keepalive.js` on the site
|
|
217
225
|
itself uses.
|
|
218
226
|
|
|
219
|
-
### Rescue
|
|
227
|
+
### Rescue service
|
|
228
|
+
|
|
229
|
+
**Process rescue-service incidents** (admin checkbox, **on** by
|
|
230
|
+
default): incidents whose `einsatzart` identifies them as a
|
|
231
|
+
rescue-service call (contains "Rettung" or "Krankentransport",
|
|
232
|
+
case-insensitive - see the `einsatzart` examples in
|
|
233
|
+
[einsatz](#einsatz)) are processed normally by default, matching every
|
|
234
|
+
prior version of the adapter. Unchecking this box makes the adapter
|
|
235
|
+
**completely ignore** such incidents instead: no `einsatz.*` states are
|
|
236
|
+
updated, no history entry is written, no TTS announcement is triggered
|
|
237
|
+
- as if the incident had never arrived. This exists because
|
|
238
|
+
rescue-service incidents reportedly only get alarmed/signaled via WAIP
|
|
239
|
+
in some regions/dispatch centers at all - where they don't, or aren't
|
|
240
|
+
wanted, this box turns the noise off.
|
|
220
241
|
|
|
221
242
|
`einsatz.stichwort` is passed through unchanged from the server as a
|
|
222
243
|
bare code (e.g. `B2`, `H:VU mit P`) – WAIP-Web itself doesn't explain
|
|
@@ -251,13 +272,16 @@ multi-language and these labels aren't translated automatically:
|
|
|
251
272
|
|
|
252
273
|
### Keyword descriptions
|
|
253
274
|
|
|
254
|
-
Checked only if the decoder on the [Rescue
|
|
275
|
+
Checked only if the decoder on the [Rescue service](#rescue-service)
|
|
255
276
|
tab didn't match: a list of `{keyword pattern, description, match type}`
|
|
256
277
|
rows – match type is `starts with` or `contains`, comparison is
|
|
257
|
-
case-insensitive
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
278
|
+
case-insensitive and treats spaces and hyphens as equivalent (any run
|
|
279
|
+
of either collapses to one before comparing), so e.g. `H:VU mit P`,
|
|
280
|
+
`H:VU-mit-P` and `H:VU - mit - P` all match the same row – no need to
|
|
281
|
+
add a separate row per spelling variant. If several rows match, the
|
|
282
|
+
**most specific (longest) pattern wins automatically** – row order has
|
|
283
|
+
no effect on matching, so the table can be freely sorted by any column
|
|
284
|
+
(click the column header) without changing behavior. The table is pre-filled
|
|
261
285
|
with an example fire/rescue keyword list (`B:...`/`H:...`) as a
|
|
262
286
|
starting point only – it is **not** confirmed to match any specific
|
|
263
287
|
dispatch center's real catalog, edit or fully replace it as needed.
|
|
@@ -271,6 +295,41 @@ itself, not something this adapter controls).
|
|
|
271
295
|
If neither this table nor the decoder above match, `einsatz.beschreibung`
|
|
272
296
|
is simply `null` - not an error.
|
|
273
297
|
|
|
298
|
+
### Incident map image
|
|
299
|
+
|
|
300
|
+
**Generate a map image for each incident** (admin checkbox, off by
|
|
301
|
+
default): when enabled and an incident carries valid coordinates, the
|
|
302
|
+
adapter downloads the tiles it needs from the public
|
|
303
|
+
`tile.openstreetmap.org` server, composites them into a single PNG
|
|
304
|
+
centered on the incident's location, draws a marker (red dot, white
|
|
305
|
+
ring) at the exact center, and stamps the OpenStreetMap attribution
|
|
306
|
+
(required by its ODbL license) into the bottom-left corner. The file
|
|
307
|
+
path is written to `einsatz.kartenbildPfad` (see [einsatz](#einsatz)) –
|
|
308
|
+
typical use is attaching that file from a Blockly/JavaScript script,
|
|
309
|
+
e.g. as a Pushover notification attachment. Only the 10 most recently
|
|
310
|
+
generated images are kept on disk; older ones are deleted automatically
|
|
311
|
+
whenever a new one is written. Image generation runs in the background
|
|
312
|
+
and never delays alarm processing – a slow or failing tile download
|
|
313
|
+
just means a missing/delayed image, nothing else is affected.
|
|
314
|
+
|
|
315
|
+
| Field | Description | Default |
|
|
316
|
+
| --- | --- | --- |
|
|
317
|
+
| Image width (px) | Width of the generated PNG | `600` |
|
|
318
|
+
| Image height (px) | Height of the generated PNG | `400` |
|
|
319
|
+
| Zoom level | OpenStreetMap zoom level (1 = whole world, 19 = building level) | `16` |
|
|
320
|
+
|
|
321
|
+
Images are stored under this adapter instance's own data directory
|
|
322
|
+
(`iobroker-data/<instance>/maps/`), not as ioBroker file objects –
|
|
323
|
+
`einsatz.kartenbildPfad` is therefore a real, absolute filesystem path
|
|
324
|
+
that a script running on the same host can read directly.
|
|
325
|
+
|
|
326
|
+
> **Note:** This uses the official, free `tile.openstreetmap.org`
|
|
327
|
+
> server, which is intended for occasional/low-volume use (see the
|
|
328
|
+
> [OSM Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/)).
|
|
329
|
+
> One image per incident stays well within that – don't lower the zoom
|
|
330
|
+
> level to cover huge areas or otherwise turn this into bulk tile
|
|
331
|
+
> fetching.
|
|
332
|
+
|
|
274
333
|
## States (under `waip-web.0.*`)
|
|
275
334
|
|
|
276
335
|
Feedback and routes are 1:n lists per incident. They are stored as
|
|
@@ -331,13 +390,14 @@ The most recently finished incident remains available via
|
|
|
331
390
|
| `uuid` | string | Unique incident UUID (also used to associate feedback) |
|
|
332
391
|
| `einsatzart` | string | e.g. "Brandeinsatz" (fire), "Hilfeleistungseinsatz" (technical assistance), "Rettungseinsatz" (rescue/EMS), "Krankentransport" (patient transport) |
|
|
333
392
|
| `stichwort` | string | Alarm keyword |
|
|
334
|
-
| `beschreibung` | string | Description for `stichwort`, resolved locally (not sent by the server) - see [Rescue
|
|
393
|
+
| `beschreibung` | string | Description for `stichwort`, resolved locally (not sent by the server) - see [Rescue service](#rescue-service)/[Keyword descriptions](#keyword-descriptions) below. `null` if nothing matched |
|
|
335
394
|
| `ort` | string | Location/town |
|
|
336
395
|
| `ortsteil` | string | District (if different from `ort`) |
|
|
337
396
|
| `zeitstempel` | string (date) | Alarm time |
|
|
338
397
|
| `ablaufzeit` | string (date) | End of the standby display duration, basis for `restzeit` |
|
|
339
398
|
| `sondersignal` | number | `1` = special signal (lights & siren), otherwise none |
|
|
340
399
|
| `latitude` / `longitude` | number | Incident location (normalized from wgs84 fields or GeoJSON centroid) |
|
|
400
|
+
| `kartenbildPfad` | string | Path to the most recently generated incident map image (PNG) - see [Incident map image](#incident-map-image). Unlike the fields above, **not** cleared on `io.standby` (same pattern as `einsatz.tts.last`), so it stays available to pick up the last incident's map after it ended |
|
|
341
401
|
| `routenGesamt` | number | Number of routes in the current incident |
|
|
342
402
|
| `rueckmeldungGesamt` | number | Total feedback count for the current incident |
|
|
343
403
|
| `rueckmeldungAnzahl.ek` | number | Feedback count as team member ("Einsatzkraft") |
|
|
@@ -408,6 +468,32 @@ example.
|
|
|
408
468
|
|
|
409
469
|
## Changelog
|
|
410
470
|
|
|
471
|
+
### 0.7.28 (2026-08-24)
|
|
472
|
+
|
|
473
|
+
- New: **Process rescue-service incidents** checkbox on the
|
|
474
|
+
[Rescue service](#rescue-service) tab (on by default) - when
|
|
475
|
+
unchecked, incidents identified as rescue-service calls via
|
|
476
|
+
`einsatzart` are ignored completely (no states, no history, no TTS).
|
|
477
|
+
The tab itself was renamed from "Rescue-service keywords" to "Rescue
|
|
478
|
+
service", with the new checkbox placed first.
|
|
479
|
+
- New: [Incident map image](#incident-map-image) tab - optionally
|
|
480
|
+
generates a PNG map (OpenStreetMap tiles, marked with a dot) centered
|
|
481
|
+
on each incident's coordinates, exposed via the new
|
|
482
|
+
`einsatz.kartenbildPfad` state. Configurable image size and zoom
|
|
483
|
+
level; only the 10 most recent images are kept.
|
|
484
|
+
|
|
485
|
+
### 0.7.27 (2026-08-23)
|
|
486
|
+
|
|
487
|
+
- [Keyword table](#keyword-descriptions) matching now treats spaces
|
|
488
|
+
and hyphens as equivalent (any run of either collapses to one
|
|
489
|
+
before comparing) - e.g. `H:VU mit P` and `H:VU-mit-P` now match
|
|
490
|
+
the same row, so dispatch-center spelling variants no longer need a
|
|
491
|
+
separate row each. Removed the now-redundant `B:Gebäude-Groß`/
|
|
492
|
+
`B:Gebäude-Klein` rows added in 0.7.24 (the existing `B:Gebäude
|
|
493
|
+
groß`/`B:Gebäude klein` rows already cover them). Comparison was
|
|
494
|
+
already case-insensitive before this change. Admin UI help text
|
|
495
|
+
updated accordingly.
|
|
496
|
+
|
|
411
497
|
### 0.7.26 (2026-08-23)
|
|
412
498
|
|
|
413
499
|
- [Keyword descriptions](#keyword-descriptions) tab: `Description` and
|
|
@@ -417,7 +503,7 @@ example.
|
|
|
417
503
|
|
|
418
504
|
### 0.7.25 (2026-08-23)
|
|
419
505
|
|
|
420
|
-
- Updated the admin UI text for the [rescue-service decoder](#rescue-service
|
|
506
|
+
- Updated the admin UI text for the [rescue-service decoder](#rescue-service)
|
|
421
507
|
to reflect the two supported keyword spellings added in 0.7.23
|
|
422
508
|
(Leitstelle Lausitz `R1N1p`/`R1N0-NT` and IRLS Brandenburg `R1N1 p`/
|
|
423
509
|
`R1N0 nt`) - the checkbox label/help and the NT suffix label/help
|
|
@@ -440,7 +526,7 @@ example.
|
|
|
440
526
|
(v2.7) - previously only the `R<ambulance>N<physician-vehicle>`
|
|
441
527
|
scheme and the Brand/THL (`B:`/`H:`) table were covered, so
|
|
442
528
|
`einsatz.beschreibung` stayed `null` for these.
|
|
443
|
-
- Fixed the [rescue-service keyword](#rescue-service
|
|
529
|
+
- Fixed the [rescue-service keyword](#rescue-service) decoder
|
|
444
530
|
(`decodeRettungsdienstStichwort`): it only accepted the Leitstelle
|
|
445
531
|
Lausitz spelling without a space (`R1N1p`, `R1N0-NT`) and silently
|
|
446
532
|
returned `null` for the IRLS Brandenburg spelling with a space
|
|
@@ -470,7 +556,7 @@ example.
|
|
|
470
556
|
after using it.
|
|
471
557
|
- Split the admin configuration UI into 3 tabs -
|
|
472
558
|
[Connection](#connection), [Rescue-service
|
|
473
|
-
keywords](#rescue-service
|
|
559
|
+
keywords](#rescue-service),
|
|
474
560
|
[Keyword descriptions](#keyword-descriptions) - each with a
|
|
475
561
|
matching icon, replacing the single combined settings page.
|
|
476
562
|
- Documentation: restructured the configuration section of the
|
package/admin/i18n/de.json
CHANGED
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
"Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Basis-URL des WAIP-Leitstellenservers (Socket.IO-Endpunkt, Namespace /waip wird automatisch angehängt)",
|
|
5
5
|
"Connection": "Verbindung",
|
|
6
6
|
"Description": "Beschreibung",
|
|
7
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, marked with a dot. The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Lädt für jeden Einsatz mit gültigen Koordinaten OpenStreetMap-Kacheln herunter und setzt sie zu einem PNG zusammen, zentriert auf den Einsatzort und mit einem Punkt markiert. Der Dateipfad wird in den State einsatz.kartenbildPfad geschrieben, z.B. um ihn per Blockly/JavaScript-Skript als Pushover-Anhang zu versenden. Es werden nur die 10 neuesten Bilder aufgehoben, ältere werden automatisch gelöscht. Nutzt den öffentlichen Server tile.openstreetmap.org - bitte bei der vorgesehenen Nutzung von einem Bild pro Einsatz bleiben, siehe OSM Tile Usage Policy.",
|
|
8
|
+
"Generate a map image for each incident": "Kartenbild für jeden Einsatz erzeugen",
|
|
9
|
+
"Height of the generated map image in pixels.": "Höhe des erzeugten Kartenbilds in Pixeln.",
|
|
7
10
|
"How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "Wartezeit auf die Bestätigung der Monitor-Registrierung durch den Server, bevor eine Warnung geloggt wird; die Verbindung läuft in jedem Fall weiter.",
|
|
11
|
+
"Image height (px)": "Bildhöhe (px)",
|
|
12
|
+
"Image width (px)": "Bildbreite (px)",
|
|
13
|
+
"Incident map image": "Einsatzkarte",
|
|
8
14
|
"Keyword / pattern": "Stichwort / Muster",
|
|
9
15
|
"Keyword descriptions": "Stichwort-Stammdaten",
|
|
10
16
|
"Label for N (emergency vehicle count)": "Bezeichnung für N (Anzahl Notfalleinsatzfahrzeuge)",
|
|
@@ -13,13 +19,15 @@
|
|
|
13
19
|
"Label for suffix f (first responder)": "Bezeichnung für Suffix f (First Responder)",
|
|
14
20
|
"Label for suffix p (polytrauma)": "Bezeichnung für Suffix p (Polytrauma)",
|
|
15
21
|
"Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Wird live von der /waip/-Übersichtsseite des konfigurierten Servers geladen - Auswahl nach Leitstelle, Kreis, Träger oder Wache, oder 'Alle Wachalarme' (ID 0) für jeden Einsatz. Ist der Server nicht erreichbar, kann die ID weiterhin manuell eingegeben werden.",
|
|
16
|
-
"Maps einsatz.stichwort to einsatz.beschreibung. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Ordnet einsatz.stichwort eine Beschreibung für einsatz.beschreibung zu. Passen mehrere Zeilen, gewinnt automatisch das spezifischste (längste) Muster - die Zeilenreihenfolge hat keinen Einfluss auf den Abgleich, die Tabelle kann also frei nach jeder Spalte sortiert werden. Vorbefüllt mit einer beispielhaften Feuerwehr-/Rettungsdienst-Stichwortliste als Startpunkt - nicht bestätigt für eure eigene Leitstelle, bei Bedarf anpassen/ersetzen. Zum Sichern/Übertragen dieser Tabelle die Standard-Instanzkonfiguration von ioBroker exportieren/importieren (JSON). Nach einem solchen Import die Admin-Seite neu laden, bevor du diese Tabelle prüfst - der offene Konfigurationsdialog aktualisiert sie bei einem externen Import nicht automatisch (eine State-Sync-Einschränkung der Admin-Tabellenkomponente selbst).",
|
|
22
|
+
"Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Ordnet einsatz.stichwort eine Beschreibung für einsatz.beschreibung zu. Der Vergleich ist case-insensitiv und behandelt Leerzeichen/Bindestriche als gleichwertig (jede Folge aus beidem wird vor dem Vergleich zu einem Leerzeichen zusammengefasst), sodass z.B. \"H:VU mit P\" und \"H:VU-mit-P\" dieselbe Zeile matchen - keine eigene Zeile pro Schreibvariante nötig. Passen mehrere Zeilen, gewinnt automatisch das spezifischste (längste) Muster - die Zeilenreihenfolge hat keinen Einfluss auf den Abgleich, die Tabelle kann also frei nach jeder Spalte sortiert werden. Vorbefüllt mit einer beispielhaften Feuerwehr-/Rettungsdienst-Stichwortliste als Startpunkt - nicht bestätigt für eure eigene Leitstelle, bei Bedarf anpassen/ersetzen. Zum Sichern/Übertragen dieser Tabelle die Standard-Instanzkonfiguration von ioBroker exportieren/importieren (JSON). Nach einem solchen Import die Admin-Seite neu laden, bevor du diese Tabelle prüfst - der offene Konfigurationsdialog aktualisiert sie bei einem externen Import nicht automatisch (eine State-Sync-Einschränkung der Admin-Tabellenkomponente selbst).",
|
|
17
23
|
"Match": "Abgleich",
|
|
18
24
|
"Monitor ID": "Monitor-ID",
|
|
25
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail.": "OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene). Höhere Werte zeigen einen kleineren Ausschnitt in mehr Detail.",
|
|
26
|
+
"Process rescue-service incidents": "Rettungsdienst-Einsätze verarbeiten",
|
|
19
27
|
"Reconnect delay (s)": "Wiederverbindungs-Verzögerung (s)",
|
|
20
28
|
"Registration timeout (s)": "Registrierungs-Timeout (s)",
|
|
29
|
+
"Rescue service": "Rettungsdienst",
|
|
21
30
|
"Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - only enable if your dispatch center actually uses one of these patterns. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Rettungsdienst-Stichwortschema R<RTW>N<NEF>, optional gefolgt von einem p/f-Modifikator und/oder einem NT-Suffix (z.B. \"R1N0\" = 1 Rettungswagen, kein Notarzt). Zwei Schreibweisen werden erkannt: ohne Leerzeichen und mit Bindestrich vor NT (Leitstelle Lausitz, z.B. \"R1N1p\", \"R1N0-NT\") sowie mit Leerzeichen und ohne Bindestrich (Leitstelle Brandenburg/IRLS, z.B. \"R1N1 p\", \"R1N0 nt\") - nur aktivieren, wenn eure Leitstelle eines dieser Muster tatsächlich verwendet. Hat Vorrang vor der Tabelle im Tab Stichwort-Stammdaten, wenn ein Stichwort passt.",
|
|
22
|
-
"Rescue-service keywords": "Rettungsdienst-Stichwörter",
|
|
23
31
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text, der angehängt wird, wenn das Stichwort auf \"-NT\" oder \" nt\" endet.",
|
|
24
32
|
"Text appended when the keyword ends in \"f\".": "Text, der angehängt wird, wenn das Stichwort auf \"f\" endet.",
|
|
25
33
|
"Text appended when the keyword ends in \"p\".": "Text, der angehängt wird, wenn das Stichwort auf \"p\" endet.",
|
|
@@ -27,6 +35,9 @@
|
|
|
27
35
|
"Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Text für den R<n>-Teil der erzeugten Beschreibung, z.B. \"Rettungswagen: 1\".",
|
|
28
36
|
"WAIP server URL": "WAIP-Server-URL",
|
|
29
37
|
"Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Wartezeit, bevor der Adapter nach einem Verbindungsabbruch oder -fehler automatisch neu verbindet.",
|
|
38
|
+
"When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all. Enabled by default to match previous behavior.": "Wenn deaktiviert, werden Einsätze, deren einsatzart auf einen Rettungsdienst-Einsatz hindeutet (enthält \"Rettung\" oder \"Krankentransport\", ohne Berücksichtigung von Groß-/Kleinschreibung), komplett ignoriert - keine States werden aktualisiert, kein History-Eintrag geschrieben, keine TTS-Ansage ausgelöst. Sinnvoll, weil manche WAIP-Leitstellen Rettungsdienst-Einsätze nur unzuverlässig oder gar nicht signalisieren. Standardmäßig aktiviert, um das bisherige Verhalten beizubehalten.",
|
|
39
|
+
"Width of the generated map image in pixels.": "Breite des erzeugten Kartenbilds in Pixeln.",
|
|
40
|
+
"Zoom level": "Zoomstufe",
|
|
30
41
|
"contains": "enthält",
|
|
31
42
|
"starts with": "beginnt mit"
|
|
32
43
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Alarm keyword descriptions": "Alarm keyword descriptions",
|
|
3
|
+
"Generate a map image for each incident": "Generate a map image for each incident",
|
|
4
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, marked with a dot. The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, marked with a dot. The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.",
|
|
5
|
+
"Image width (px)": "Image width (px)",
|
|
6
|
+
"Width of the generated map image in pixels.": "Width of the generated map image in pixels.",
|
|
7
|
+
"Image height (px)": "Image height (px)",
|
|
8
|
+
"Height of the generated map image in pixels.": "Height of the generated map image in pixels.",
|
|
9
|
+
"Incident map image": "Incident map image",
|
|
10
|
+
"Zoom level": "Zoom level",
|
|
11
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail.": "OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail.",
|
|
3
12
|
"Automatically decode rescue-service keywords (R<RTW>N<NEF>[p][f][-NT], with or without spaces)": "Automatically decode rescue-service keywords (R<RTW>N<NEF>[p][f][-NT], with or without spaces)",
|
|
4
13
|
"Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)",
|
|
5
14
|
"Connection": "Connection",
|
|
@@ -13,13 +22,15 @@
|
|
|
13
22
|
"Label for suffix f (first responder)": "Label for suffix f (first responder)",
|
|
14
23
|
"Label for suffix p (polytrauma)": "Label for suffix p (polytrauma)",
|
|
15
24
|
"Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.",
|
|
16
|
-
"Maps einsatz.stichwort to einsatz.beschreibung. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Maps einsatz.stichwort to einsatz.beschreibung. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).",
|
|
25
|
+
"Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).",
|
|
17
26
|
"Match": "Match",
|
|
18
27
|
"Monitor ID": "Monitor ID",
|
|
28
|
+
"Process rescue-service incidents": "Process rescue-service incidents",
|
|
29
|
+
"When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all. Enabled by default to match previous behavior.": "When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all. Enabled by default to match previous behavior.",
|
|
19
30
|
"Reconnect delay (s)": "Reconnect delay (s)",
|
|
20
31
|
"Registration timeout (s)": "Registration timeout (s)",
|
|
32
|
+
"Rescue service": "Rescue service",
|
|
21
33
|
"Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - only enable if your dispatch center actually uses one of these patterns. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - only enable if your dispatch center actually uses one of these patterns. Takes priority over the table on the Keyword descriptions tab when a keyword matches.",
|
|
22
|
-
"Rescue-service keywords": "Rescue-service keywords",
|
|
23
34
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text appended when the keyword ends in \"-NT\" or \" nt\".",
|
|
24
35
|
"Text appended when the keyword ends in \"f\".": "Text appended when the keyword ends in \"f\".",
|
|
25
36
|
"Text appended when the keyword ends in \"p\".": "Text appended when the keyword ends in \"p\".",
|
package/admin/i18n/es.json
CHANGED
|
@@ -3,8 +3,15 @@
|
|
|
3
3
|
"Automatically decode rescue-service keywords (R<RTW>N<NEF>[p][f][-NT], with or without spaces)": "Decodificar automáticamente las palabras clave del servicio de rescate (R<RTW>N<NEF>[p][f][-NT], con o sin espacios)",
|
|
4
4
|
"Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "URL base del servidor de envío WAIP (punto final Socket.IO, el espacio de nombres /waip se agrega automáticamente)",
|
|
5
5
|
"Connection": "Conexión",
|
|
6
|
+
"contains": "contiene",
|
|
6
7
|
"Description": "Descripción",
|
|
8
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, marked with a dot. The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Para cada incidente con coordenadas válidas, descarga teselas de OpenStreetMap y compone un PNG centrado en la ubicación del incidente, marcado con un punto. La ruta del archivo se escribe en el estado einsatz.kartenbildPfad, por ejemplo para enviarlo como adjunto de Pushover desde un script de Blockly/JavaScript. Solo se conservan las 10 imágenes más recientes, las más antiguas se eliminan automáticamente. Utiliza el servidor público tile.openstreetmap.org - mantén esto en el uso previsto de una imagen por incidente según la OSM Tile Usage Policy.",
|
|
9
|
+
"Generate a map image for each incident": "Generar una imagen de mapa para cada incidente",
|
|
10
|
+
"Height of the generated map image in pixels.": "Alto de la imagen de mapa generada en píxeles.",
|
|
7
11
|
"How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "Cuánto tiempo esperar para que el servidor confirme el registro del monitor antes de registrar una advertencia; la conexión en sí sigue funcionando en cualquier sentido.",
|
|
12
|
+
"Image height (px)": "Alto de la imagen (px)",
|
|
13
|
+
"Image width (px)": "Ancho de la imagen (px)",
|
|
14
|
+
"Incident map image": "Imagen de mapa del incidente",
|
|
8
15
|
"Keyword / pattern": "Palabra clave/patrón",
|
|
9
16
|
"Keyword descriptions": "Descripciones de palabras clave",
|
|
10
17
|
"Label for N (emergency vehicle count)": "Etiqueta para N (recuento de vehículos de emergencia)",
|
|
@@ -13,13 +20,16 @@
|
|
|
13
20
|
"Label for suffix f (first responder)": "Etiqueta para el sufijo f (primer interviniente)",
|
|
14
21
|
"Label for suffix p (polytrauma)": "Etiqueta para el sufijo p (politraumatismo)",
|
|
15
22
|
"Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Cargado en vivo desde la página de descripción general /waip/ del servidor configurado: elija Leitstelle, Kreis, Träger o Wache, o elija 'Alle Wachalarme' (ID 0) para cada incidente. Si no se puede acceder al servidor, aún se puede ingresar una identificación manualmente.",
|
|
16
|
-
"Maps einsatz.stichwort to einsatz.beschreibung. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Asigna einsatz.stichwort a einsatz.beschreibung. Si varias filas coinciden, el patrón más específico (el más largo) gana automáticamente; el orden de las filas no tiene ningún efecto en la coincidencia, ordene libremente por cualquier columna. Precompletado con una lista de palabras clave de ejemplo de incendio/rescate como punto de partida; no se confirma que coincida con las palabras clave reales de su propio centro de despacho, edite/reemplace según sea necesario. Para hacer una copia de seguridad o transferir esta tabla, utilice la exportación/importación estándar de la configuración de instancia de ioBroker (JSON). Después de usar esa importación estándar, recargue la página de administración antes de comprobar esta tabla - el cuadro de diálogo de configuración abierto no la actualiza automáticamente desde una importación externa (una limitación de sincronización de estado del propio componente de tabla de administración).",
|
|
23
|
+
"Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Asigna einsatz.stichwort a einsatz.beschreibung. La comparación no distingue mayúsculas/minúsculas y trata los espacios/guiones como equivalentes (cualquier secuencia de ambos se reduce a uno antes de comparar), de modo que, por ejemplo, \"H:VU mit P\" y \"H:VU-mit-P\" coinciden con la misma fila - no es necesaria una fila separada por cada variante de escritura. Si varias filas coinciden, el patrón más específico (el más largo) gana automáticamente; el orden de las filas no tiene ningún efecto en la coincidencia, ordene libremente por cualquier columna. Precompletado con una lista de palabras clave de ejemplo de incendio/rescate como punto de partida; no se confirma que coincida con las palabras clave reales de su propio centro de despacho, edite/reemplace según sea necesario. Para hacer una copia de seguridad o transferir esta tabla, utilice la exportación/importación estándar de la configuración de instancia de ioBroker (JSON). Después de usar esa importación estándar, recargue la página de administración antes de comprobar esta tabla - el cuadro de diálogo de configuración abierto no la actualiza automáticamente desde una importación externa (una limitación de sincronización de estado del propio componente de tabla de administración).",
|
|
17
24
|
"Match": "Fósforo",
|
|
18
25
|
"Monitor ID": "Identificador del monitor",
|
|
26
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail.": "Nivel de zoom de OpenStreetMap (1 = todo el mundo, 19 = nivel de edificio). Valores más altos muestran un área más pequeña con más detalle.",
|
|
27
|
+
"Process rescue-service incidents": "Procesar incidentes del servicio de rescate",
|
|
19
28
|
"Reconnect delay (s)": "Retardo(s) de reconexión",
|
|
20
29
|
"Registration timeout (s)": "Tiempos de espera de registro",
|
|
30
|
+
"Rescue service": "Servicio de rescate",
|
|
21
31
|
"Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - only enable if your dispatch center actually uses one of these patterns. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Esquema de palabras clave del servicio de rescate R<RTW>N<NEF>, seguido opcionalmente de un modificador p/f y/o un sufijo NT (p. ej. \"R1N0\" = 1 ambulancia, sin médico de urgencias). Se reconocen dos escrituras: sin espacio y con guion antes de NT (Leitstelle Lausitz, p. ej. \"R1N1p\", \"R1N0-NT\") y con espacio y sin guion (Leitstelle Brandeburgo/IRLS, p. ej. \"R1N1 p\", \"R1N0 nt\") - actívelo solo si su central de despacho utiliza realmente uno de estos patrones. Tiene prioridad sobre la tabla de la pestaña Descripciones de palabras clave cuando una palabra clave coincide.",
|
|
22
|
-
"
|
|
32
|
+
"starts with": "comienza con",
|
|
23
33
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texto añadido cuando la palabra clave termina en \"-NT\" o \" nt\".",
|
|
24
34
|
"Text appended when the keyword ends in \"f\".": "Texto añadido cuando la palabra clave termina en \"f\".",
|
|
25
35
|
"Text appended when the keyword ends in \"p\".": "Texto añadido cuando la palabra clave termina en \"p\".",
|
|
@@ -27,6 +37,7 @@
|
|
|
27
37
|
"Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Texto utilizado en la descripción generada para la parte R<n>, p.e. \"Rettungswagen: 1\".",
|
|
28
38
|
"WAIP server URL": "URL del servidor WAIP",
|
|
29
39
|
"Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Tiempo de espera antes de que el adaptador se vuelva a conectar automáticamente después de una pérdida de conexión o un error de conexión.",
|
|
30
|
-
"contains": "contiene",
|
|
31
|
-
"
|
|
40
|
+
"When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all. Enabled by default to match previous behavior.": "Si se desactiva, los incidentes cuyo einsatzart los identifica como un aviso del servicio de rescate (contiene \"Rettung\" o \"Krankentransport\", sin distinguir mayúsculas/minúsculas) se ignoran por completo - no se actualiza ningún estado, no se escribe ninguna entrada en el historial, no se activa ningún aviso de voz (TTS). Útil porque algunas centrales de despacho de WAIP solo señalan los incidentes del servicio de rescate de forma poco fiable o no lo hacen en absoluto. Activado por defecto para mantener el comportamiento anterior.",
|
|
41
|
+
"Width of the generated map image in pixels.": "Ancho de la imagen de mapa generada en píxeles.",
|
|
42
|
+
"Zoom level": "Nivel de zoom"
|
|
32
43
|
}
|
package/admin/i18n/fr.json
CHANGED
|
@@ -3,8 +3,15 @@
|
|
|
3
3
|
"Automatically decode rescue-service keywords (R<RTW>N<NEF>[p][f][-NT], with or without spaces)": "Décoder automatiquement les mots-clés des services de secours (R<RTW>N<NEF>[p][f][-NT], avec ou sans espaces)",
|
|
4
4
|
"Base URL of the WAIP dispatch server (Socket.IO endpoint, namespace /waip is appended automatically)": "URL de base du serveur de répartition WAIP (point de terminaison Socket.IO, l'espace de noms /waip est ajouté automatiquement)",
|
|
5
5
|
"Connection": "Connexion",
|
|
6
|
+
"contains": "contient",
|
|
6
7
|
"Description": "Description",
|
|
8
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, marked with a dot. The file path is written to the einsatz.kartenbildPfad state, e.g. for sending as a Pushover attachment from a Blockly/JavaScript script. Only the 10 most recent images are kept, older ones are deleted automatically. Uses the public tile.openstreetmap.org server - keep this to the intended one-image-per-incident use per the OSM Tile Usage Policy.": "Pour chaque incident avec des coordonnées valides, télécharge des tuiles OpenStreetMap et compose un PNG centré sur l'emplacement de l'incident, marqué d'un point. Le chemin du fichier est écrit dans l'état einsatz.kartenbildPfad, par exemple pour l'envoyer en pièce jointe Pushover depuis un script Blockly/JavaScript. Seules les 10 images les plus récentes sont conservées, les plus anciennes sont supprimées automatiquement. Utilise le serveur public tile.openstreetmap.org - veillez à respecter l'usage prévu d'une image par incident selon la OSM Tile Usage Policy.",
|
|
9
|
+
"Generate a map image for each incident": "Générer une image de carte pour chaque incident",
|
|
10
|
+
"Height of the generated map image in pixels.": "Hauteur de l'image de carte générée en pixels.",
|
|
7
11
|
"How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "Combien de temps attendre que le serveur confirme l'enregistrement du moniteur avant d'enregistrer un avertissement ; la connexion elle-même continue de fonctionner dans les deux sens.",
|
|
12
|
+
"Image height (px)": "Hauteur de l'image (px)",
|
|
13
|
+
"Image width (px)": "Largeur de l'image (px)",
|
|
14
|
+
"Incident map image": "Image de carte de l'incident",
|
|
8
15
|
"Keyword / pattern": "Mot-clé/modèle",
|
|
9
16
|
"Keyword descriptions": "Descriptions des mots-clés",
|
|
10
17
|
"Label for N (emergency vehicle count)": "Étiquette pour N (nombre de véhicules d'urgence)",
|
|
@@ -13,13 +20,16 @@
|
|
|
13
20
|
"Label for suffix f (first responder)": "Étiquette pour le suffixe f (premier intervenant)",
|
|
14
21
|
"Label for suffix p (polytrauma)": "Étiquette pour le suffixe p (polytraumatisme)",
|
|
15
22
|
"Loaded live from the configured server's /waip/ overview page - choose by Leitstelle, Kreis, Träger or Wache, or pick 'Alle Wachalarme' (ID 0) for every incident. If the server can't be reached, an ID can still be entered manually.": "Chargé en direct depuis la page de présentation /waip/ du serveur configuré - choisissez par Leitstelle, Kreis, Träger ou Wache, ou choisissez 'Alle Wachalarme' (ID 0) pour chaque incident. Si le serveur n'est pas accessible, un identifiant peut toujours être saisi manuellement.",
|
|
16
|
-
"Maps einsatz.stichwort to einsatz.beschreibung. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Mappe einsatz.stichwort à einsatz.beschreibung. Si plusieurs lignes correspondent, le modèle le plus spécifique (le plus long) l'emporte automatiquement - l'ordre des lignes n'a aucun effet sur la correspondance, triez-la librement par n'importe quelle colonne. Pré-rempli avec un exemple de liste de mots-clés d'incendie/sauvetage comme point de départ - il n'est pas confirmé qu'il correspond aux mots-clés réels de votre propre centre de répartition, modifiez/remplacez si nécessaire. Pour sauvegarder ou transférer ce tableau, utilisez l'export/import standard de la configuration d'instance d'ioBroker (JSON). Après avoir utilisé cet import standard, rechargez la page Admin avant de vérifier ce tableau - la boîte de dialogue de configuration ouverte ne l'actualise pas automatiquement après un import externe (une limitation de synchronisation d'état du composant de tableau Admin lui-même).",
|
|
23
|
+
"Maps einsatz.stichwort to einsatz.beschreibung. Comparison is case-insensitive and treats spaces/hyphens as equivalent (any run of either collapses to one before comparing), so e.g. \"H:VU mit P\" and \"H:VU-mit-P\" match the same row - no need for a separate row per spelling. If several rows match, the most specific (longest) pattern wins automatically - row order has no effect on matching, sort by any column freely. Pre-filled with an example fire/rescue keyword list as a starting point - it is not confirmed to match your own dispatch center's actual keywords, edit/replace as needed. To back up or transfer this table, use ioBroker's standard instance configuration export/import (JSON). After using that import, reload the Admin page before checking this table - the open config dialog doesn't refresh it from an external import automatically (a state-sync limitation of the Admin table component itself).": "Mappe einsatz.stichwort à einsatz.beschreibung. La comparaison ne tient pas compte de la casse et traite les espaces/tirets comme équivalents (toute suite de l'un ou l'autre est ramenée à un seul avant la comparaison), de sorte que par exemple \"H:VU mit P\" et \"H:VU-mit-P\" correspondent à la même ligne - pas besoin d'une ligne distincte par variante d'orthographe. Si plusieurs lignes correspondent, le modèle le plus spécifique (le plus long) l'emporte automatiquement - l'ordre des lignes n'a aucun effet sur la correspondance, triez-la librement par n'importe quelle colonne. Pré-rempli avec un exemple de liste de mots-clés d'incendie/sauvetage comme point de départ - il n'est pas confirmé qu'il correspond aux mots-clés réels de votre propre centre de répartition, modifiez/remplacez si nécessaire. Pour sauvegarder ou transférer ce tableau, utilisez l'export/import standard de la configuration d'instance d'ioBroker (JSON). Après avoir utilisé cet import standard, rechargez la page Admin avant de vérifier ce tableau - la boîte de dialogue de configuration ouverte ne l'actualise pas automatiquement après un import externe (une limitation de synchronisation d'état du composant de tableau Admin lui-même).",
|
|
17
24
|
"Match": "Correspondre",
|
|
18
25
|
"Monitor ID": "ID du moniteur",
|
|
26
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail.": "Niveau de zoom OpenStreetMap (1 = monde entier, 19 = niveau du bâtiment). Des valeurs plus élevées affichent une zone plus petite avec plus de détails.",
|
|
27
|
+
"Process rescue-service incidents": "Traiter les incidents du service de secours",
|
|
19
28
|
"Reconnect delay (s)": "Délai(s) de reconnexion",
|
|
20
29
|
"Registration timeout (s)": "Délai(s) d'enregistrement",
|
|
30
|
+
"Rescue service": "Service de secours",
|
|
21
31
|
"Rescue-service keyword scheme R<RTW>N<NEF>, optionally followed by a p/f modifier and/or an NT suffix (e.g. \"R1N0\" = 1 ambulance, no emergency physician). Two spellings are recognized: without a space and with a hyphen before NT (Leitstelle Lausitz, e.g. \"R1N1p\", \"R1N0-NT\") and with a space and without a hyphen (Leitstelle Brandenburg/IRLS, e.g. \"R1N1 p\", \"R1N0 nt\") - only enable if your dispatch center actually uses one of these patterns. Takes priority over the table on the Keyword descriptions tab when a keyword matches.": "Schéma de mots-clés des services de secours R<RTW>N<NEF>, éventuellement suivi d'un modificateur p/f et/ou d'un suffixe NT (par ex. \"R1N0\" = 1 ambulance, pas de médecin urgentiste). Deux orthographes sont reconnues : sans espace et avec un tiret avant NT (Leitstelle Lausitz, par ex. \"R1N1p\", \"R1N0-NT\") et avec un espace et sans tiret (Leitstelle Brandebourg/IRLS, par ex. \"R1N1 p\", \"R1N0 nt\") - à activer uniquement si votre centre de répartition utilise effectivement l'un de ces modèles. Prioritaire sur la table de l'onglet Descriptions de mots-clés lorsqu'un mot-clé correspond.",
|
|
22
|
-
"
|
|
32
|
+
"starts with": "commence par",
|
|
23
33
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texte ajouté lorsque le mot-clé se termine par \"-NT\" ou \" nt\".",
|
|
24
34
|
"Text appended when the keyword ends in \"f\".": "Texte ajouté lorsque le mot clé se termine par \"f\".",
|
|
25
35
|
"Text appended when the keyword ends in \"p\".": "Texte ajouté lorsque le mot clé se termine par \"p\".",
|
|
@@ -27,6 +37,7 @@
|
|
|
27
37
|
"Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Texte utilisé dans la description générée pour la pièce R<n>, par ex. \"Rettungswagen: 1\".",
|
|
28
38
|
"WAIP server URL": "URL du serveur WAIP",
|
|
29
39
|
"Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Temps d'attente avant que l'adaptateur ne se reconnecte automatiquement après une perte de connexion ou une erreur de connexion.",
|
|
30
|
-
"contains": "contient",
|
|
31
|
-
"
|
|
40
|
+
"When unchecked, incidents whose einsatzart identifies them as a rescue-service call (contains \"Rettung\" or \"Krankentransport\", case-insensitive) are ignored completely - no states are updated, no history entry is written, no TTS announcement is triggered. Useful because some WAIP dispatch centers only ever signal rescue-service incidents unreliably or not at all. Enabled by default to match previous behavior.": "Si désactivé, les incidents dont le einsatzart les identifie comme un appel du service de secours (contient \"Rettung\" ou \"Krankentransport\", sans distinction de casse) sont complètement ignorés - aucun état n'est mis à jour, aucune entrée d'historique n'est écrite, aucune annonce TTS n'est déclenchée. Utile car certains centres de répartition WAIP ne signalent les incidents du service de secours que de manière peu fiable, voire pas du tout. Activé par défaut pour conserver le comportement précédent.",
|
|
41
|
+
"Width of the generated map image in pixels.": "Largeur de l'image de carte générée en pixels.",
|
|
42
|
+
"Zoom level": "Niveau de zoom"
|
|
32
43
|
}
|