iobroker.waip-web 0.7.27 → 0.7.29
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 +91 -11
- package/README.md +120 -14
- package/admin/i18n/de.json +19 -4
- package/admin/i18n/en.json +19 -4
- package/admin/i18n/es.json +19 -4
- package/admin/i18n/fr.json +19 -4
- package/admin/i18n/it.json +19 -4
- package/admin/i18n/nl.json +19 -4
- package/admin/i18n/pl.json +19 -4
- package/admin/i18n/pt.json +19 -4
- package/admin/i18n/ru.json +19 -4
- package/admin/i18n/uk.json +19 -4
- package/admin/i18n/zh-cn.json +19 -4
- package/admin/jsonConfig.json +95 -2
- package/io-package.json +36 -3
- package/main.js +629 -21
- 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,25 @@ 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 PNG, lokal aus OpenStreetMap-Kacheln zusammengesetzt, mit
|
|
184
|
+
dem von WAIP-Web gesendeten Einsatzgebiet als Umriss in
|
|
185
|
+
konfigurierbarer Farbe/Stärke eingezeichnet (Rückfall auf
|
|
186
|
+
Punkt-Markierung), zoomt bei Bedarf automatisch so heraus, dass das
|
|
187
|
+
gesamte Gebiet sichtbar bleibt, Dateipfad als State bereitgestellt -
|
|
188
|
+
siehe [Einsatzkarte](#einsatzkarte)
|
|
178
189
|
|
|
179
190
|
## Konfiguration
|
|
180
191
|
|
|
181
192
|
In der Admin-Oberfläche der Adapterinstanz sind die Einstellungen auf
|
|
182
|
-
|
|
183
|
-
**Stichwort-Stammdaten** – alle
|
|
193
|
+
vier Tabs verteilt: **Verbindung**, **Rettungsdienst**,
|
|
194
|
+
**Stichwort-Stammdaten** und **Einsatzkarte** – alle vier unten näher
|
|
195
|
+
beschrieben.
|
|
184
196
|
|
|
185
197
|
### Verbindung
|
|
186
198
|
|
|
@@ -214,7 +226,21 @@ Laufzeit, mindestens 55 Sekunden, höchstens die konfigurierte Obergrenze) –
|
|
|
214
226
|
genau die gleiche Klammerung, die auch `/js/session_keepalive.js` der
|
|
215
227
|
Website selbst verwendet.
|
|
216
228
|
|
|
217
|
-
### Rettungsdienst
|
|
229
|
+
### Rettungsdienst
|
|
230
|
+
|
|
231
|
+
**Rettungsdienst-Einsätze verarbeiten** (Admin-Checkbox, standardmäßig
|
|
232
|
+
**an**): Einsätze, deren `einsatzart` auf einen Rettungsdienst-Einsatz
|
|
233
|
+
hindeutet (enthält "Rettung" oder "Krankentransport", ohne
|
|
234
|
+
Berücksichtigung von Groß-/Kleinschreibung - siehe die
|
|
235
|
+
`einsatzart`-Beispiele unter [einsatz](#einsatz)), werden standardmäßig
|
|
236
|
+
ganz normal verarbeitet, wie in jeder früheren Adapter-Version. Wird die
|
|
237
|
+
Checkbox deaktiviert, ignoriert der Adapter solche Einsätze stattdessen
|
|
238
|
+
**komplett**: keine `einsatz.*`-States werden aktualisiert, kein
|
|
239
|
+
History-Eintrag geschrieben, keine TTS-Ansage ausgelöst - als wäre der
|
|
240
|
+
Einsatz nie eingegangen. Hintergrund: Rettungsdienst-Einsätze werden
|
|
241
|
+
über WAIP Berichten zufolge nur in manchen Regionen/Leitstellen
|
|
242
|
+
überhaupt alarmiert/signalisiert - wo das nicht der Fall ist oder nicht
|
|
243
|
+
gewünscht wird, schaltet diese Checkbox das Rauschen ab.
|
|
218
244
|
|
|
219
245
|
`einsatz.stichwort` wird unverändert vom Server als bloßer Code
|
|
220
246
|
übernommen (z.B. `B2`, `H:VU mit P`) – WAIP-Web selbst erklärt nicht,
|
|
@@ -225,7 +251,7 @@ werden dabei keine Daten irgendwohin gesendet. Dieser Tab ist die erste
|
|
|
225
251
|
von zwei Quellen, die der Reihe nach geprüft werden (die zweite steht
|
|
226
252
|
unter [Stichwort-Stammdaten](#stichwort-stammdaten)):
|
|
227
253
|
|
|
228
|
-
**Rettungsdienst-Dekodierung** (Admin-Checkbox, standardmäßig
|
|
254
|
+
**Rettungsdienst-Dekodierung** (Admin-Checkbox, standardmäßig an):
|
|
229
255
|
passt das Stichwort auf das Muster `R<Anzahl RTW>N<Anzahl NEF>[p][f][-NT]`
|
|
230
256
|
(z.B. `R1N0` → "Rettungswagen: 1, Notfalleinsatzfahrzeug: 0"), wird
|
|
231
257
|
automatisch eine Beschreibung erzeugt. Zwei Schreibweisen des
|
|
@@ -235,8 +261,9 @@ vor `NT` (z.B. `R1N1p`, `R1N0-NT`, siehe
|
|
|
235
261
|
dazu) sowie mit Leerzeichen und ohne Bindestrich (z.B. `R1N1 p`,
|
|
236
262
|
`R1N0 nt`, wie von der IRLS Brandenburg verwendet) – dieses Schema
|
|
237
263
|
(in beiden Schreibweisen) wird von mehreren Leitstellen verwendet,
|
|
238
|
-
nicht nur diesen beiden –
|
|
239
|
-
dieser Muster
|
|
264
|
+
nicht nur diesen beiden – hat keine Auswirkung, falls eure Leitstelle
|
|
265
|
+
keines dieser Muster verwendet, da das Stichwort dann einfach nicht
|
|
266
|
+
passt. Der Text für jeden Teil ist
|
|
240
267
|
selbst konfigurierbar (5 zusätzliche Textfelder erscheinen, sobald
|
|
241
268
|
die Checkbox aktiviert ist), da der Adapter mehrsprachig ist und
|
|
242
269
|
diese Bezeichnungen nicht automatisch übersetzt werden:
|
|
@@ -252,7 +279,7 @@ diese Bezeichnungen nicht automatisch übersetzt werden:
|
|
|
252
279
|
### Stichwort-Stammdaten
|
|
253
280
|
|
|
254
281
|
Wird nur geprüft, falls der Dekoder auf dem Tab
|
|
255
|
-
[Rettungsdienst
|
|
282
|
+
[Rettungsdienst](#rettungsdienst) nicht gegriffen
|
|
256
283
|
hat: eine Liste von `{Stichwort-Muster, Beschreibung, Abgleich-Typ}`-Zeilen
|
|
257
284
|
– Abgleich-Typ ist `beginnt mit` oder `enthält`, der Vergleich ist
|
|
258
285
|
case-insensitiv und behandelt Leerzeichen und Bindestriche als
|
|
@@ -278,6 +305,58 @@ etwas, das dieser Adapter beeinflussen kann).
|
|
|
278
305
|
Passt weder diese Tabelle noch der Dekoder oben, bleibt
|
|
279
306
|
`einsatz.beschreibung` einfach `null` – kein Fehler.
|
|
280
307
|
|
|
308
|
+
### Einsatzkarte
|
|
309
|
+
|
|
310
|
+
**Kartenbild für jeden Einsatz erzeugen** (Admin-Checkbox, standardmäßig
|
|
311
|
+
aus): ist die Checkbox aktiv und liegen für einen Einsatz gültige
|
|
312
|
+
Koordinaten vor, lädt der Adapter die dafür nötigen Kacheln vom
|
|
313
|
+
öffentlichen Server `tile.openstreetmap.org` herunter, setzt sie zu
|
|
314
|
+
einem einzigen PNG zusammen, zentriert auf den Einsatzort, und stempelt
|
|
315
|
+
die von der ODbL-Lizenz vorgeschriebene OpenStreetMap-Attribution unten
|
|
316
|
+
links auf. Das Einsatzgebiet, das WAIP-Web im `geometry`-Feld des
|
|
317
|
+
Events sendet (meist ein kreisförmiges Polygon um den Einsatzort, nicht
|
|
318
|
+
nur dessen Mittelpunkt), wird als Umriss in konfigurierbarer Farbe und
|
|
319
|
+
Strichstärke ins Bild eingezeichnet - also die vom Server original
|
|
320
|
+
gesendete Form, keine Markierung an deren
|
|
321
|
+
Mittelpunkt. Nur falls kein solches Polygon vorliegt (z.B. enthält das
|
|
322
|
+
Event nur einen Punkt), fällt der Adapter auf eine einfache
|
|
323
|
+
Punkt-Markierung in der Mitte zurück. Das Einsatzgebiet bleibt dabei
|
|
324
|
+
immer vollständig sichtbar: passt es bei der konfigurierten Zoomstufe
|
|
325
|
+
nicht ins Bild, zoomt der Adapter automatisch so weit heraus (nie
|
|
326
|
+
hinein), wie nötig, damit das gesamte Gebiet hineinpasst, statt es am
|
|
327
|
+
Rand abzuschneiden. Der Dateipfad wird in
|
|
328
|
+
`einsatz.kartenbildPfad` geschrieben
|
|
329
|
+
(siehe [einsatz](#einsatz)) – typische Verwendung ist der Versand dieser
|
|
330
|
+
Datei aus einem Blockly-/JavaScript-Skript heraus, z.B. als
|
|
331
|
+
Pushover-Benachrichtigungsanhang. Es werden nur die 10 zuletzt erzeugten
|
|
332
|
+
Bilder aufgehoben, ältere werden automatisch gelöscht, sobald ein neues
|
|
333
|
+
geschrieben wird. Die Bilderzeugung läuft im Hintergrund und verzögert
|
|
334
|
+
die Alarmverarbeitung nie – ein langsamer oder fehlschlagender
|
|
335
|
+
Kachel-Download führt höchstens zu einem fehlenden/verspäteten Bild,
|
|
336
|
+
sonst bleibt nichts betroffen.
|
|
337
|
+
|
|
338
|
+
| Feld | Beschreibung | Default |
|
|
339
|
+
| --- | --- | --- |
|
|
340
|
+
| Bildbreite (px) | Breite des erzeugten PNGs | `600` |
|
|
341
|
+
| Bildhöhe (px) | Höhe des erzeugten PNGs | `400` |
|
|
342
|
+
| Zoomstufe | OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene) - ein Maximalwert, wird bei Bedarf automatisch reduziert, damit das Einsatzgebiet vollständig sichtbar bleibt | `16` |
|
|
343
|
+
| Umrissfarbe | Farbe des Einsatzgebiet-Umrisses (und des Kerns der Fallback-Punkt-Markierung) | `#DD2020` |
|
|
344
|
+
| Umriss-Strichstärke (px) | Linienstärke des Umrisses in Pixeln (1-12) | `3` |
|
|
345
|
+
|
|
346
|
+
Die Bilder liegen im eigenen Datenverzeichnis dieser Adapterinstanz
|
|
347
|
+
(`iobroker-data/<instance>/maps/`), nicht als ioBroker-Dateiobjekte –
|
|
348
|
+
`einsatz.kartenbildPfad` ist deshalb ein echter, absoluter
|
|
349
|
+
Dateisystempfad, den ein auf demselben Host laufendes Skript direkt
|
|
350
|
+
lesen kann.
|
|
351
|
+
|
|
352
|
+
> **Hinweis:** Genutzt wird der offizielle, kostenlose Server
|
|
353
|
+
> `tile.openstreetmap.org`, der für gelegentliche/geringe Nutzung
|
|
354
|
+
> gedacht ist (siehe die
|
|
355
|
+
> [OSM Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/)).
|
|
356
|
+
> Ein Bild pro Einsatz bleibt deutlich darunter – die Zoomstufe nicht
|
|
357
|
+
> so weit reduzieren, dass riesige Gebiete abgedeckt werden, und das
|
|
358
|
+
> Ganze nicht zu einem Massen-Kachel-Abruf ausbauen.
|
|
359
|
+
|
|
281
360
|
## States (unter `waip-web.0.*`)
|
|
282
361
|
|
|
283
362
|
Rückmeldungen und Routen sind pro Einsatz Listen (1:n). Sie liegen als
|
|
@@ -339,13 +418,14 @@ stehen. Der zuletzt abgeschlossene Einsatz bleibt trotzdem über
|
|
|
339
418
|
| `uuid` | string | Eindeutige Einsatz-UUID (dient auch der Zuordnung von Rückmeldungen) |
|
|
340
419
|
| `einsatzart` | string | z. B. „Brandeinsatz", „Hilfeleistungseinsatz", „Rettungseinsatz", „Krankentransport" |
|
|
341
420
|
| `stichwort` | string | Alarmstichwort |
|
|
342
|
-
| `beschreibung` | string | Beschreibung zu `stichwort`, lokal ermittelt (wird nicht vom Server gesendet) - siehe [Rettungsdienst
|
|
421
|
+
| `beschreibung` | string | Beschreibung zu `stichwort`, lokal ermittelt (wird nicht vom Server gesendet) - siehe [Rettungsdienst](#rettungsdienst)/[Stichwort-Stammdaten](#stichwort-stammdaten) unten. `null` falls nichts passte |
|
|
343
422
|
| `ort` | string | Ort |
|
|
344
423
|
| `ortsteil` | string | Ortsteil (falls abweichend vom Ort) |
|
|
345
424
|
| `zeitstempel` | string (date) | Alarmzeit |
|
|
346
425
|
| `ablaufzeit` | string (date) | Ende der Standby-Anzeigedauer, Basis für `restzeit` |
|
|
347
426
|
| `sondersignal` | number | `1` = Sondersignal, sonst kein Sondersignal |
|
|
348
427
|
| `latitude` / `longitude` | number | Position des Einsatzortes (normalisiert aus wgs84-Feldern oder GeoJSON-Mittelpunkt) |
|
|
428
|
+
| `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 |
|
|
349
429
|
| `routenGesamt` | number | Anzahl Routen im aktuellen Einsatz |
|
|
350
430
|
| `rueckmeldungGesamt` | number | Rückmeldungen gesamt im aktuellen Einsatz |
|
|
351
431
|
| `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,22 @@ 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, composed locally from OpenStreetMap tiles, with the
|
|
186
|
+
incident area WAIP-Web sends drawn as an outline in a configurable
|
|
187
|
+
color/thickness (falls back to a marker dot), automatically zoomed
|
|
188
|
+
out as needed to keep the whole area visible, file path exposed as a
|
|
189
|
+
state - see [Incident map image](#incident-map-image)
|
|
180
190
|
|
|
181
191
|
## Configuration
|
|
182
192
|
|
|
183
193
|
In the admin UI of the adapter instance, settings are grouped across
|
|
184
|
-
|
|
185
|
-
|
|
194
|
+
four tabs: **Connection**, **Rescue service**, **Keyword descriptions**
|
|
195
|
+
and **Incident map image** – see below for all four.
|
|
186
196
|
|
|
187
197
|
### Connection
|
|
188
198
|
|
|
@@ -216,7 +226,20 @@ observed lifetime, at least 55 seconds, at most a fixed 5-minute ceiling)
|
|
|
216
226
|
– the exact same clamping that `/js/session_keepalive.js` on the site
|
|
217
227
|
itself uses.
|
|
218
228
|
|
|
219
|
-
### Rescue
|
|
229
|
+
### Rescue service
|
|
230
|
+
|
|
231
|
+
**Process rescue-service incidents** (admin checkbox, **on** by
|
|
232
|
+
default): incidents whose `einsatzart` identifies them as a
|
|
233
|
+
rescue-service call (contains "Rettung" or "Krankentransport",
|
|
234
|
+
case-insensitive - see the `einsatzart` examples in
|
|
235
|
+
[einsatz](#einsatz)) are processed normally by default, matching every
|
|
236
|
+
prior version of the adapter. Unchecking this box makes the adapter
|
|
237
|
+
**completely ignore** such incidents instead: no `einsatz.*` states are
|
|
238
|
+
updated, no history entry is written, no TTS announcement is triggered
|
|
239
|
+
- as if the incident had never arrived. This exists because
|
|
240
|
+
rescue-service incidents reportedly only get alarmed/signaled via WAIP
|
|
241
|
+
in some regions/dispatch centers at all - where they don't, or aren't
|
|
242
|
+
wanted, this box turns the noise off.
|
|
220
243
|
|
|
221
244
|
`einsatz.stichwort` is passed through unchanged from the server as a
|
|
222
245
|
bare code (e.g. `B2`, `H:VU mit P`) – WAIP-Web itself doesn't explain
|
|
@@ -226,7 +249,7 @@ gap **entirely locally**, no data is sent anywhere. This tab is the
|
|
|
226
249
|
first of two sources checked, in order (see
|
|
227
250
|
[Keyword descriptions](#keyword-descriptions) for the second):
|
|
228
251
|
|
|
229
|
-
**Rescue-service decoding** (admin checkbox,
|
|
252
|
+
**Rescue-service decoding** (admin checkbox, on by default): if the
|
|
230
253
|
keyword matches the pattern `R<RTW-count>N<NEF-count>[p][f][-NT]`
|
|
231
254
|
(e.g. `R1N0` → "Rettungswagen: 1, Notfalleinsatzfahrzeug: 0"), a
|
|
232
255
|
description is generated automatically. Two spellings of the `p`/`f`/`NT`
|
|
@@ -235,9 +258,9 @@ part are recognized: without a space and with a hyphen before `NT`
|
|
|
235
258
|
[Leitstelle Lausitz's documented explanation](https://www.leitstelle-lausitz.de/anpassung-der-einsatzstichworte-rettungsdienst/)
|
|
236
259
|
of it), and with a space and without a hyphen (e.g. `R1N1 p`, `R1N0 nt`,
|
|
237
260
|
as used by the IRLS Brandenburg) – this scheme (in either spelling) is
|
|
238
|
-
used by several German dispatch centers, not just these two –
|
|
239
|
-
|
|
240
|
-
The text for each part is itself configurable (5 additional text
|
|
261
|
+
used by several German dispatch centers, not just these two – has no
|
|
262
|
+
effect if your dispatch center doesn't use one of these patterns, since
|
|
263
|
+
the keyword just won't match. The text for each part is itself configurable (5 additional text
|
|
241
264
|
fields appear once the checkbox is enabled), since the adapter is
|
|
242
265
|
multi-language and these labels aren't translated automatically:
|
|
243
266
|
|
|
@@ -251,7 +274,7 @@ multi-language and these labels aren't translated automatically:
|
|
|
251
274
|
|
|
252
275
|
### Keyword descriptions
|
|
253
276
|
|
|
254
|
-
Checked only if the decoder on the [Rescue
|
|
277
|
+
Checked only if the decoder on the [Rescue service](#rescue-service)
|
|
255
278
|
tab didn't match: a list of `{keyword pattern, description, match type}`
|
|
256
279
|
rows – match type is `starts with` or `contains`, comparison is
|
|
257
280
|
case-insensitive and treats spaces and hyphens as equivalent (any run
|
|
@@ -274,6 +297,53 @@ itself, not something this adapter controls).
|
|
|
274
297
|
If neither this table nor the decoder above match, `einsatz.beschreibung`
|
|
275
298
|
is simply `null` - not an error.
|
|
276
299
|
|
|
300
|
+
### Incident map image
|
|
301
|
+
|
|
302
|
+
**Generate a map image for each incident** (admin checkbox, off by
|
|
303
|
+
default): when enabled and an incident carries valid coordinates, the
|
|
304
|
+
adapter downloads the tiles it needs from the public
|
|
305
|
+
`tile.openstreetmap.org` server, composites them into a single PNG
|
|
306
|
+
centered on the incident's location, and stamps the OpenStreetMap
|
|
307
|
+
attribution (required by its ODbL license) into the bottom-left corner.
|
|
308
|
+
The incident area WAIP-Web sends in the `geometry` field of the event
|
|
309
|
+
(usually a circle-shaped polygon around the location, not just its
|
|
310
|
+
center) is drawn onto the image as an outline in a configurable color
|
|
311
|
+
and thickness - the original shape the server sent, not a marker at
|
|
312
|
+
its centroid. Only if no such polygon
|
|
313
|
+
is available (e.g. the event carries just a point) does the adapter
|
|
314
|
+
fall back to a simple marker dot at the center. The incident area is
|
|
315
|
+
always kept fully visible: if it wouldn't fit into the image at the
|
|
316
|
+
configured zoom level, the adapter automatically zooms out (never in)
|
|
317
|
+
just enough for the whole area to fit, instead of clipping it at the
|
|
318
|
+
edge. The file
|
|
319
|
+
path is written to `einsatz.kartenbildPfad` (see [einsatz](#einsatz)) –
|
|
320
|
+
typical use is attaching that file from a Blockly/JavaScript script,
|
|
321
|
+
e.g. as a Pushover notification attachment. Only the 10 most recently
|
|
322
|
+
generated images are kept on disk; older ones are deleted automatically
|
|
323
|
+
whenever a new one is written. Image generation runs in the background
|
|
324
|
+
and never delays alarm processing – a slow or failing tile download
|
|
325
|
+
just means a missing/delayed image, nothing else is affected.
|
|
326
|
+
|
|
327
|
+
| Field | Description | Default |
|
|
328
|
+
| --- | --- | --- |
|
|
329
|
+
| Image width (px) | Width of the generated PNG | `600` |
|
|
330
|
+
| Image height (px) | Height of the generated PNG | `400` |
|
|
331
|
+
| Zoom level | OpenStreetMap zoom level (1 = whole world, 19 = building level) - a maximum, automatically reduced if needed to keep the incident area fully visible | `16` |
|
|
332
|
+
| Outline color | Color of the incident-area outline (and the fallback marker dot's core) | `#DD2020` |
|
|
333
|
+
| Outline thickness (px) | Line thickness of the outline, in pixels (1-12) | `3` |
|
|
334
|
+
|
|
335
|
+
Images are stored under this adapter instance's own data directory
|
|
336
|
+
(`iobroker-data/<instance>/maps/`), not as ioBroker file objects –
|
|
337
|
+
`einsatz.kartenbildPfad` is therefore a real, absolute filesystem path
|
|
338
|
+
that a script running on the same host can read directly.
|
|
339
|
+
|
|
340
|
+
> **Note:** This uses the official, free `tile.openstreetmap.org`
|
|
341
|
+
> server, which is intended for occasional/low-volume use (see the
|
|
342
|
+
> [OSM Tile Usage Policy](https://operations.osmfoundation.org/policies/tiles/)).
|
|
343
|
+
> One image per incident stays well within that – don't lower the zoom
|
|
344
|
+
> level to cover huge areas or otherwise turn this into bulk tile
|
|
345
|
+
> fetching.
|
|
346
|
+
|
|
277
347
|
## States (under `waip-web.0.*`)
|
|
278
348
|
|
|
279
349
|
Feedback and routes are 1:n lists per incident. They are stored as
|
|
@@ -334,13 +404,14 @@ The most recently finished incident remains available via
|
|
|
334
404
|
| `uuid` | string | Unique incident UUID (also used to associate feedback) |
|
|
335
405
|
| `einsatzart` | string | e.g. "Brandeinsatz" (fire), "Hilfeleistungseinsatz" (technical assistance), "Rettungseinsatz" (rescue/EMS), "Krankentransport" (patient transport) |
|
|
336
406
|
| `stichwort` | string | Alarm keyword |
|
|
337
|
-
| `beschreibung` | string | Description for `stichwort`, resolved locally (not sent by the server) - see [Rescue
|
|
407
|
+
| `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 |
|
|
338
408
|
| `ort` | string | Location/town |
|
|
339
409
|
| `ortsteil` | string | District (if different from `ort`) |
|
|
340
410
|
| `zeitstempel` | string (date) | Alarm time |
|
|
341
411
|
| `ablaufzeit` | string (date) | End of the standby display duration, basis for `restzeit` |
|
|
342
412
|
| `sondersignal` | number | `1` = special signal (lights & siren), otherwise none |
|
|
343
413
|
| `latitude` / `longitude` | number | Incident location (normalized from wgs84 fields or GeoJSON centroid) |
|
|
414
|
+
| `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 |
|
|
344
415
|
| `routenGesamt` | number | Number of routes in the current incident |
|
|
345
416
|
| `rueckmeldungGesamt` | number | Total feedback count for the current incident |
|
|
346
417
|
| `rueckmeldungAnzahl.ek` | number | Feedback count as team member ("Einsatzkraft") |
|
|
@@ -411,6 +482,41 @@ example.
|
|
|
411
482
|
|
|
412
483
|
## Changelog
|
|
413
484
|
|
|
485
|
+
### 0.7.29 (2026-08-24)
|
|
486
|
+
|
|
487
|
+
- [Incident map image](#incident-map-image): draws the actual incident
|
|
488
|
+
area WAIP-Web sends in the event's `geometry` field (usually a
|
|
489
|
+
circle-shaped polygon around the location) as an outline, instead of
|
|
490
|
+
just a marker dot at its centroid. Falls back to the dot marker if no
|
|
491
|
+
polygon is available (e.g. only a point). The area always stays
|
|
492
|
+
fully visible: the adapter automatically zooms out (never in) past
|
|
493
|
+
the configured zoom level if needed, instead of clipping the area at
|
|
494
|
+
the image edge. Outline color and thickness (1-12 px) are now
|
|
495
|
+
configurable too (also used for the fallback marker dot's core).
|
|
496
|
+
- **Rescue-service decoding** (on the [Rescue service](#rescue-service)
|
|
497
|
+
tab) now defaults to **on** for new installations, matching **Process
|
|
498
|
+
rescue-service incidents** (already on by default) - previously it
|
|
499
|
+
defaulted to off. Already-configured instances keep their stored
|
|
500
|
+
value, this only affects fresh installs.
|
|
501
|
+
- Trimmed the self-justifying "kept the previous behavior" sentence
|
|
502
|
+
from both checkboxes' admin descriptions and reworded the decoding
|
|
503
|
+
checkbox's description ("has no effect if your dispatch center
|
|
504
|
+
doesn't use one of these patterns" instead of "only enable if...").
|
|
505
|
+
|
|
506
|
+
### 0.7.28 (2026-08-24)
|
|
507
|
+
|
|
508
|
+
- New: **Process rescue-service incidents** checkbox on the
|
|
509
|
+
[Rescue service](#rescue-service) tab (on by default) - when
|
|
510
|
+
unchecked, incidents identified as rescue-service calls via
|
|
511
|
+
`einsatzart` are ignored completely (no states, no history, no TTS).
|
|
512
|
+
The tab itself was renamed from "Rescue-service keywords" to "Rescue
|
|
513
|
+
service", with the new checkbox placed first.
|
|
514
|
+
- New: [Incident map image](#incident-map-image) tab - optionally
|
|
515
|
+
generates a PNG map (OpenStreetMap tiles, marked with a dot) centered
|
|
516
|
+
on each incident's coordinates, exposed via the new
|
|
517
|
+
`einsatz.kartenbildPfad` state. Configurable image size and zoom
|
|
518
|
+
level; only the 10 most recent images are kept.
|
|
519
|
+
|
|
414
520
|
### 0.7.27 (2026-08-23)
|
|
415
521
|
|
|
416
522
|
- [Keyword table](#keyword-descriptions) matching now treats spaces
|
|
@@ -432,7 +538,7 @@ example.
|
|
|
432
538
|
|
|
433
539
|
### 0.7.25 (2026-08-23)
|
|
434
540
|
|
|
435
|
-
- Updated the admin UI text for the [rescue-service decoder](#rescue-service
|
|
541
|
+
- Updated the admin UI text for the [rescue-service decoder](#rescue-service)
|
|
436
542
|
to reflect the two supported keyword spellings added in 0.7.23
|
|
437
543
|
(Leitstelle Lausitz `R1N1p`/`R1N0-NT` and IRLS Brandenburg `R1N1 p`/
|
|
438
544
|
`R1N0 nt`) - the checkbox label/help and the NT suffix label/help
|
|
@@ -455,7 +561,7 @@ example.
|
|
|
455
561
|
(v2.7) - previously only the `R<ambulance>N<physician-vehicle>`
|
|
456
562
|
scheme and the Brand/THL (`B:`/`H:`) table were covered, so
|
|
457
563
|
`einsatz.beschreibung` stayed `null` for these.
|
|
458
|
-
- Fixed the [rescue-service keyword](#rescue-service
|
|
564
|
+
- Fixed the [rescue-service keyword](#rescue-service) decoder
|
|
459
565
|
(`decodeRettungsdienstStichwort`): it only accepted the Leitstelle
|
|
460
566
|
Lausitz spelling without a space (`R1N1p`, `R1N0-NT`) and silently
|
|
461
567
|
returned `null` for the IRLS Brandenburg spelling with a space
|
|
@@ -485,7 +591,7 @@ example.
|
|
|
485
591
|
after using it.
|
|
486
592
|
- Split the admin configuration UI into 3 tabs -
|
|
487
593
|
[Connection](#connection), [Rescue-service
|
|
488
|
-
keywords](#rescue-service
|
|
594
|
+
keywords](#rescue-service),
|
|
489
595
|
[Keyword descriptions](#keyword-descriptions) - each with a
|
|
490
596
|
matching icon, replacing the single combined settings page.
|
|
491
597
|
- Documentation: restructured the configuration section of the
|
package/admin/i18n/de.json
CHANGED
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
"Alarm keyword descriptions": "Stichwort-Stammdaten",
|
|
3
3
|
"Automatically decode rescue-service keywords (R<RTW>N<NEF>[p][f][-NT], with or without spaces)": "Rettungsdienst-Stichwörter automatisch dekodieren (R<RTW>N<NEF>[p][f][-NT], mit oder ohne Leerzeichen)",
|
|
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
|
+
"Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Farbe des Einsatzgebiet-Umrisses (und des Kerns der Fallback-Punkt-Markierung, wenn kein Gebiets-Polygon vorliegt).",
|
|
5
6
|
"Connection": "Verbindung",
|
|
7
|
+
"contains": "enthält",
|
|
6
8
|
"Description": "Beschreibung",
|
|
9
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). 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, mit dem von WAIP-Web gesendeten Einsatzgebiet als Umriss eingezeichnet (fällt auf einen Punkt-Marker zurück, falls kein Gebiets-Polygon vorliegt). 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.",
|
|
10
|
+
"Generate a map image for each incident": "Kartenbild für jeden Einsatz erzeugen",
|
|
11
|
+
"Height of the generated map image in pixels.": "Höhe des erzeugten Kartenbilds in Pixeln.",
|
|
7
12
|
"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.",
|
|
13
|
+
"Image height (px)": "Bildhöhe (px)",
|
|
14
|
+
"Image width (px)": "Bildbreite (px)",
|
|
15
|
+
"Incident map image": "Einsatzkarte",
|
|
8
16
|
"Keyword / pattern": "Stichwort / Muster",
|
|
9
17
|
"Keyword descriptions": "Stichwort-Stammdaten",
|
|
10
18
|
"Label for N (emergency vehicle count)": "Bezeichnung für N (Anzahl Notfalleinsatzfahrzeuge)",
|
|
@@ -12,14 +20,20 @@
|
|
|
12
20
|
"Label for suffix -NT / nt (special ambulance transport)": "Bezeichnung für Suffix -NT / nt (Notfalltransport mit Notfallkrankenwagen)",
|
|
13
21
|
"Label for suffix f (first responder)": "Bezeichnung für Suffix f (First Responder)",
|
|
14
22
|
"Label for suffix p (polytrauma)": "Bezeichnung für Suffix p (Polytrauma)",
|
|
23
|
+
"Line thickness of the incident-area outline, in pixels.": "Linienstärke des Einsatzgebiet-Umrisses in Pixeln.",
|
|
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.": "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
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).": "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
26
|
"Match": "Abgleich",
|
|
18
27
|
"Monitor ID": "Monitor-ID",
|
|
28
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.": "OpenStreetMap-Zoomstufe (1 = ganze Welt, 19 = Gebäudeebene). Höhere Werte zeigen einen kleineren Ausschnitt in mehr Detail. Das ist ein Maximalwert, kein fester Wert: Passt das vom Server gesendete Einsatzgebiet bei dieser Zoomstufe nicht vollständig ins Bild, zoomt der Adapter automatisch so weit heraus (nie hinein), wie nötig, um das gesamte Gebiet sichtbar zu halten.",
|
|
29
|
+
"Outline color": "Umrissfarbe",
|
|
30
|
+
"Outline thickness (px)": "Umriss-Strichstärke (px)",
|
|
31
|
+
"Process rescue-service incidents": "Rettungsdienst-Einsätze verarbeiten",
|
|
19
32
|
"Reconnect delay (s)": "Wiederverbindungs-Verzögerung (s)",
|
|
20
33
|
"Registration timeout (s)": "Registrierungs-Timeout (s)",
|
|
21
|
-
"Rescue
|
|
22
|
-
"Rescue-service
|
|
34
|
+
"Rescue service": "Rettungsdienst",
|
|
35
|
+
"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\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. 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\") - hat keine Auswirkung, falls eure Leitstelle keines dieser Muster verwendet, da das Stichwort dann einfach nicht passt. Hat Vorrang vor der Tabelle im Tab Stichwort-Stammdaten, wenn ein Stichwort passt.",
|
|
36
|
+
"starts with": "beginnt mit",
|
|
23
37
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text, der angehängt wird, wenn das Stichwort auf \"-NT\" oder \" nt\" endet.",
|
|
24
38
|
"Text appended when the keyword ends in \"f\".": "Text, der angehängt wird, wenn das Stichwort auf \"f\" endet.",
|
|
25
39
|
"Text appended when the keyword ends in \"p\".": "Text, der angehängt wird, wenn das Stichwort auf \"p\" endet.",
|
|
@@ -27,6 +41,7 @@
|
|
|
27
41
|
"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
42
|
"WAIP server URL": "WAIP-Server-URL",
|
|
29
43
|
"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.",
|
|
30
|
-
"contains": "enthält",
|
|
31
|
-
"
|
|
44
|
+
"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.": "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.",
|
|
45
|
+
"Width of the generated map image in pixels.": "Breite des erzeugten Kartenbilds in Pixeln.",
|
|
46
|
+
"Zoom level": "Zoomstufe"
|
|
32
47
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
"Alarm keyword descriptions": "Alarm keyword descriptions",
|
|
3
3
|
"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
4
|
"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
|
+
"Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).",
|
|
5
6
|
"Connection": "Connection",
|
|
7
|
+
"contains": "contains",
|
|
6
8
|
"Description": "Description",
|
|
9
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). 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, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). 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.",
|
|
10
|
+
"Generate a map image for each incident": "Generate a map image for each incident",
|
|
11
|
+
"Height of the generated map image in pixels.": "Height of the generated map image in pixels.",
|
|
7
12
|
"How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.": "How long to wait for the server to confirm the monitor registration before logging a warning; the connection itself keeps running either way.",
|
|
13
|
+
"Image height (px)": "Image height (px)",
|
|
14
|
+
"Image width (px)": "Image width (px)",
|
|
15
|
+
"Incident map image": "Incident map image",
|
|
8
16
|
"Keyword / pattern": "Keyword / pattern",
|
|
9
17
|
"Keyword descriptions": "Keyword descriptions",
|
|
10
18
|
"Label for N (emergency vehicle count)": "Label for N (emergency vehicle count)",
|
|
@@ -12,14 +20,20 @@
|
|
|
12
20
|
"Label for suffix -NT / nt (special ambulance transport)": "Label for suffix -NT / nt (special ambulance transport)",
|
|
13
21
|
"Label for suffix f (first responder)": "Label for suffix f (first responder)",
|
|
14
22
|
"Label for suffix p (polytrauma)": "Label for suffix p (polytrauma)",
|
|
23
|
+
"Line thickness of the incident-area outline, in pixels.": "Line thickness of the incident-area outline, in pixels.",
|
|
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
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
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.": "OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.",
|
|
29
|
+
"Outline color": "Outline color",
|
|
30
|
+
"Outline thickness (px)": "Outline thickness (px)",
|
|
31
|
+
"Process rescue-service incidents": "Process rescue-service incidents",
|
|
19
32
|
"Reconnect delay (s)": "Reconnect delay (s)",
|
|
20
33
|
"Registration timeout (s)": "Registration timeout (s)",
|
|
21
|
-
"Rescue
|
|
22
|
-
"Rescue-service
|
|
34
|
+
"Rescue service": "Rescue service",
|
|
35
|
+
"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\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. 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\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. Takes priority over the table on the Keyword descriptions tab when a keyword matches.",
|
|
36
|
+
"starts with": "starts with",
|
|
23
37
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Text appended when the keyword ends in \"-NT\" or \" nt\".",
|
|
24
38
|
"Text appended when the keyword ends in \"f\".": "Text appended when the keyword ends in \"f\".",
|
|
25
39
|
"Text appended when the keyword ends in \"p\".": "Text appended when the keyword ends in \"p\".",
|
|
@@ -27,6 +41,7 @@
|
|
|
27
41
|
"Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".": "Text used in the generated description for the R<n> part, e.g. \"Rettungswagen: 1\".",
|
|
28
42
|
"WAIP server URL": "WAIP server URL",
|
|
29
43
|
"Wait time before the adapter automatically reconnects after a lost connection or a connection error.": "Wait time before the adapter automatically reconnects after a lost connection or a connection error.",
|
|
30
|
-
"contains": "contains",
|
|
31
|
-
"
|
|
44
|
+
"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.": "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.",
|
|
45
|
+
"Width of the generated map image in pixels.": "Width of the generated map image in pixels.",
|
|
46
|
+
"Zoom level": "Zoom level"
|
|
32
47
|
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
"Alarm keyword descriptions": "Descripciones de palabras clave de alarma",
|
|
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
|
+
"Color of the incident-area outline (and of the fallback marker dot's core, used when no area polygon is available).": "Color del contorno del área del incidente (y del núcleo del punto marcador de reserva, usado cuando no hay ningún polígono de área disponible).",
|
|
5
6
|
"Connection": "Conexión",
|
|
7
|
+
"contains": "contiene",
|
|
6
8
|
"Description": "Descripción",
|
|
9
|
+
"For every incident with valid coordinates, downloads OpenStreetMap tiles and composes a PNG centered on the incident's location, with the incident area WAIP-Web sends drawn as an outline (falls back to a marker dot if no area polygon is available). 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, con el área del incidente enviada por WAIP-Web dibujada como contorno (recurre a un punto marcador si no hay un polígono de área disponible). 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.",
|
|
10
|
+
"Generate a map image for each incident": "Generar una imagen de mapa para cada incidente",
|
|
11
|
+
"Height of the generated map image in pixels.": "Alto de la imagen de mapa generada en píxeles.",
|
|
7
12
|
"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.",
|
|
13
|
+
"Image height (px)": "Alto de la imagen (px)",
|
|
14
|
+
"Image width (px)": "Ancho de la imagen (px)",
|
|
15
|
+
"Incident map image": "Imagen de mapa del incidente",
|
|
8
16
|
"Keyword / pattern": "Palabra clave/patrón",
|
|
9
17
|
"Keyword descriptions": "Descripciones de palabras clave",
|
|
10
18
|
"Label for N (emergency vehicle count)": "Etiqueta para N (recuento de vehículos de emergencia)",
|
|
@@ -12,14 +20,20 @@
|
|
|
12
20
|
"Label for suffix -NT / nt (special ambulance transport)": "Etiqueta para el sufijo -NT / nt (transporte especial en ambulancia)",
|
|
13
21
|
"Label for suffix f (first responder)": "Etiqueta para el sufijo f (primer interviniente)",
|
|
14
22
|
"Label for suffix p (polytrauma)": "Etiqueta para el sufijo p (politraumatismo)",
|
|
23
|
+
"Line thickness of the incident-area outline, in pixels.": "Grosor de línea del contorno del área del incidente, en píxeles.",
|
|
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.": "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
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).": "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
26
|
"Match": "Fósforo",
|
|
18
27
|
"Monitor ID": "Identificador del monitor",
|
|
28
|
+
"OpenStreetMap zoom level (1 = whole world, 19 = building level). Higher values show a smaller area in more detail. This is a maximum, not a fixed value: if the incident area sent by the server wouldn't fully fit in the image at this zoom, the adapter automatically zooms out (never in) just enough to keep the whole area visible.": "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. Este es un valor máximo, no fijo: si el área del incidente enviada por el servidor no cupiera por completo en la imagen con este zoom, el adaptador aleja automáticamente el zoom (nunca lo acerca) lo justo para mantener toda el área visible.",
|
|
29
|
+
"Outline color": "Color del contorno",
|
|
30
|
+
"Outline thickness (px)": "Grosor del contorno (px)",
|
|
31
|
+
"Process rescue-service incidents": "Procesar incidentes del servicio de rescate",
|
|
19
32
|
"Reconnect delay (s)": "Retardo(s) de reconexión",
|
|
20
33
|
"Registration timeout (s)": "Tiempos de espera de registro",
|
|
21
|
-
"Rescue
|
|
22
|
-
"Rescue-service
|
|
34
|
+
"Rescue service": "Servicio de rescate",
|
|
35
|
+
"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\") - has no effect if your dispatch center doesn't use one of these patterns, since the keyword just won't match. 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\") - no tiene efecto si su central de despacho no utiliza ninguno de estos patrones, ya que la palabra clave simplemente no coincidirá. Tiene prioridad sobre la tabla de la pestaña Descripciones de palabras clave cuando una palabra clave coincide.",
|
|
36
|
+
"starts with": "comienza con",
|
|
23
37
|
"Text appended when the keyword ends in \"-NT\" or \" nt\".": "Texto añadido cuando la palabra clave termina en \"-NT\" o \" nt\".",
|
|
24
38
|
"Text appended when the keyword ends in \"f\".": "Texto añadido cuando la palabra clave termina en \"f\".",
|
|
25
39
|
"Text appended when the keyword ends in \"p\".": "Texto añadido cuando la palabra clave termina en \"p\".",
|
|
@@ -27,6 +41,7 @@
|
|
|
27
41
|
"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
42
|
"WAIP server URL": "URL del servidor WAIP",
|
|
29
43
|
"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
|
-
"
|
|
44
|
+
"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.": "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.",
|
|
45
|
+
"Width of the generated map image in pixels.": "Ancho de la imagen de mapa generada en píxeles.",
|
|
46
|
+
"Zoom level": "Nivel de zoom"
|
|
32
47
|
}
|